12.1 Standard Data Commands
To enable the system to read and write battery information, the BQ28Z610-R2 uses a series of 2-byte standard
I
2
C commands with a 7-bit device address of 0x55 (8 bits = 0xAA to write and 0xAB to read). Each standard
command has an associated command code pair, as indicated in
Standard Commands
. Each
protocol has specific means to access the data at each command code. Data RAM is updated and read by the
gauge once per second.
Table 12-1. Standard Commands
Name
Register Code
(LSB/MSB)
Description
ManufacturerAccess/ControlStatus()
CNTL
0x00/0x01
Control Register (see below)
AtRate()
AR
0x02/0x03
Read/Write. The value is a signed integer with the negative value indicating a discharge current value. The
default value is 0 and forces
AtRateTimeToEmpty()
to return 65,535.
AtRateTimeToEmpty()
ARTTE
0x04/0x05
This read-only function returns an unsigned integer value to predict remaining operating time based on battery
discharge at the
AtRate()
value in minutes with a range of 0 to 65,534. A value of 65,535 indicates
AtRate()
= 0.
The gas gauge updates the
AtRateTimeToEmpty()
within 1 s after the system sets the
AtRate()
value. The gas
gauge updates these parameters every 1 s. The commands are used in NORMAL mode.
Temperature()
TEMP
0x06/0x07
This read-only function returns an unsigned integer value of temperature in units ( 0.1 k) measured by the
gas gauge, and is used for the gauging algorithm. It reports either
InternalTemperature()
or external thermistor
temperature, depending on the setting of the
[TEMPS]
bit in Pack configuration.
Voltage()
VOLT
0x08/0x09
This read-only function returns an unsigned integer value of the measured cell pack in mV with a range of 0
12000 mV.
BatteryStatus()
FLAGS
0x0A/0x0B
See the Flags register.
Current()
INSTCURR
0x0C/0x0D
This read-only function returns a signed integer value that is the instantaneous current flow through the sense
resistor. The value is updated every 1 s. Units are mA.
RemainingCapacity()
RM
0x10/0x11
This read-only command returns the predicted remaining capacity, based on rate (per configured Load Select),
temperature, present depth-of-discharge, and stored impedance. Values are reported in mAh.
FullChargeCapacity()
FCC
0x12/0x13
This read-only command returns the predicted capacity of the battery at full charge, based on rate (per
configured Load Select), temperature, present depth-of-discharge, and stored impedance. Values are reported in
mAh.
AverageCurrent
AI
0x14/0x15
This read-only function returns a signed integer value that is the average current flow through the sense resistor.
The value is updated every 1 s. Units are mA.
AverageTimeToEmpty
TTE
0x16/0x17
Uses average current value with a time constant of 15 s for this method. A value of 65535 means the battery is
not being discharged.
AverageTimeToFull
TTF
0x18/0x19
This read-only function returns a unsigned integer value, predicting time to reach full charge for the battery in
units of minutes based on
AverageCurrent()
. The computation accounts for the taper current time extension
from linear TTF computation based on a fixed
AverageCurrent()
rate of charge accumulation. A value of 65,535
indicates the battery is not being charged.
StandbyCurrent
SI
0x1A/0x1B
This read-only function returns a signed integer value of measured standby current through the sense resistor.
The
StandbyCurrent()
is an adaptive measurement. Initially it will report the standby current programmed in
initial standby, and after several seconds in standby mode will report the measured standby. The register value is
updated every 1 s when measured current is above the deadband and is less than or equal to 2 × initial standby.
The first and last values that meet these criteria are not averaged in, since they may not be stable values. To
approximate to a 1-min time constant, each new value of
StandbyCurrent()
is computed by taking approximate
93% weight of the last standby current and approximate 7% of the current measured average current.
StandbyTimeToEmpty
STTE
0x1C/0x1D
This read-only function returns a unsigned integer value, predicting remaining battery life at standby rate of
discharge in units of minutes. The computation uses Nominal Available Capacity (NAC) for the calculation. A
value of 65,535 indicates the battery is not being discharged.
MaxLoadCurrent
MLI
0x1E/0x1F
This read-only function returns a signed integer value in units of mA, of maximum load conditions. The
MaxLoadCurrent()
is an adaptive measurement which is initially reported as the maximum load current
programmed in initial Max Load Current register. If the measured current is ever greater than the initial Max Load
Current then the
MaxLoadCurrent()
updates to the new current.
MaxLoadCurrent()
is reduced to the average
of the previous value and initial Max Load Current whenever the battery is charged to full after a previous
discharge to an SOC of less than 50%. This will prevent the reported value from maintaining an unusually high
value.
MaxLoadTimeToEmpty
MLTTE
0x20/0x21
This read-only function returns a unsigned integer value, predicting remaining battery life at the maximum
discharge load current rate in units of minutes. A value of 65,535 indicates that the battery is not being
discharged.
Chapter 12
I2C Commands
I2C Commands
SLUUCO0 – APRIL 2022
BQ28Z610-R2
65
Copyright © 2022 Texas Instruments Incorporated