SLUUA65E april 2014 – june 2023 BQ28Z610
To enable the system to read and write battery information, the BQ28Z610 uses a series of 2-byte standard I2C 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 Table 12-1, 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.
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. |
AveragePower | AP | 0x22/0x23 | This read-only function returns a signed integer value of average power during battery charging and discharging. It is negative during discharge and positive during charge. A value of 0 indicates that the battery is not being discharged. The value is reported in units of cW. |
BTPDischargeSet() | 0x24/0x25 | This command sets the OperationStatusA [BTP_INT] and the BTP_INT pin will be asserted when the RemCap drops below the set threshold in DF register. | |
BTPChargeSet() | 0x26/0x27 | This command clears the OperationStatusA [BTP_INT] and the BTP_INT pin will be deasserted. | |
InternalTemperature | INT_TEMP | 0x28/0x29 | This read-only function returns an unsigned integer value of the measured internal temperature of the device in 0.1-k units measured by the gas gauge. |
CycleCount | CC | 0x2A/0x2B | This read-only function returns an unsigned integer value of the number of cycles the battery has experienced a discharge (range 0 to 65535). One cycle occurs when accumulated discharge greater than or equal to CC threshold. |
RelativeStateOfCharge | SOC | 0x2C/0x2D | This read-only function returns an unsigned integer value of the predicted remaining battery capacity expressed as percentage of FullChargeCapacity() with a range of 0% to 100%. |
StateOfHealth | SOH | 0x2E/0x2F | This read-only function returns an unsigned integer value expressed as a percentage of the ratio of predicted FCC (25C SoH Load Rate) over the DesignCapacity(). The range is 0x00 to 0x64 for 0% to 100%, respectively. |
ChargeVoltage | CV | 0x30/0x31 | Returns the desired charging voltage in mV to the charger |
ChargeCurrent | CC | 0x32/0x33 | Returns the desired charging current in mA to the charger |
DesignCapacity | 0x3C/0x3D | In SEALED and UNSEALED access: This command returns the value stored in Design Capacity and is expressed in mAh. This is intended to be a theoretical or nominal capacity of a new pack, but should have no bearing on the operation of the gas gauge functionality. | |
AltManufacturerAccess | 0x3E/0x3F | MAC Data block command | |
MACData | 0x40/0x5F | MAC Data block | |
MACDataSum | 0x60 | MAC Data block checksum | |
MACDataLen | 0x61 | MAC Data block length |