SLUUA65E april   2014  – june 2023 BQ28Z610

 

  1.   1
  2.   Read This First
    1.     About This Manual
    2.     Notational Conventions
    3.     Trademarks
    4.     Glossary
  3. Introduction
  4. Protections
    1. 2.1  Introduction
    2. 2.2  Cell Undervoltage Protection
    3. 2.3  Cell Overvoltage Protection
    4. 2.4  Overcurrent in Charge Protection
    5. 2.5  Overcurrent in Discharge Protection
    6. 2.6  Hardware-Based Protection
      1. 2.6.1 Overload in Discharge Protection
      2. 2.6.2 Short Circuit in Charge Protection
      3. 2.6.3 Short Circuit in Discharge Protection
    7. 2.7  Temperature Protections
    8. 2.8  Overtemperature in Charge Protection
    9. 2.9  Overtemperature in Discharge Protection
    10. 2.10 Undertemperature in Charge Protection
    11. 2.11 Undertemperature in Discharge Protection
    12. 2.12 Precharge Timeout Protection
    13. 2.13 Fast Charge Timeout Protection
  5. Permanent Fail
    1. 3.1 Introduction
    2. 3.2 Safety Cell Overvoltage Permanent Fail
    3. 3.3 Voltage Imbalance at Rest Permanent Fail
    4. 3.4 Voltage Imbalance Active Permanent Fail
    5. 3.5 Charge FET Permanent Failure
      1. 3.5.1 Description
      2. 3.5.2 Feature Enable/Disable
    6. 3.6 Discharge FET Permanent Failure
      1. 3.6.1 Description
      2. 3.6.2 Feature Enable/Disable
    7. 3.7 Instruction Flash (IF) Checksum Permanent Fail
    8. 3.8 Data Flash (DF) Permanent Fail
  6. Advanced Charge Algorithm
    1. 4.1  Introduction
    2. 4.2  Charge Temperature Ranges
    3. 4.3  Voltage Range
    4. 4.4  Charging Current
    5. 4.5  Charging Voltage
    6. 4.6  Valid Charge Termination
    7. 4.7  Charge and Discharge Alarms
    8. 4.8  Terminate Charge and Discharge Alarms
    9. 4.9  Precharge
    10. 4.10 Maintenance Charge
    11. 4.11 BROADCAST Mode
    12. 4.12 Charge Disable and Discharge Disable
    13. 4.13 Charge Inhibit
    14. 4.14 Charge Suspend
  7. Power Modes
    1. 5.1 Introduction
    2. 5.2 NORMAL Mode
    3. 5.3 SLEEP Mode
      1. 5.3.1 Device Sleep
      2. 5.3.2 IN SYSTEM SLEEP Mode
      3. 5.3.3 AltManufacturerAccess() MAC Sleep
      4. 5.3.4 Wake Function
    4. 5.4 SHUTDOWN Mode
      1. 5.4.1 Voltage Based Shutdown
      2. 5.4.2 AltManufacturerAccess() MAC Shutdown
      3. 5.4.3 Time Based Shutdown
      4. 5.4.4 Emergency FET Shutdown
        1. 5.4.4.1 Exiting Emergency FET Shutdown
  8. Gauging
    1. 6.1 Introduction
    2. 6.2 Impedance Track Configuration
    3. 6.3 Gas Gauge Modes
    4. 6.4 QMax and Ra
      1. 6.4.1 QMax Initial Values
      2. 6.4.2 QMax Update Conditions
      3. 6.4.3 Fast QMax Update Conditions
      4. 6.4.4 QMax and Fast QMax Update Boundary Check
      5. 6.4.5 Ra Table Initial Values
      6. 6.4.6 Ra Table Update Conditions
    5. 6.5 FullChargeCapacity (FCC), RemainingCapacity (RemCap), and RelativeStateOfCharge (RSOC)
    6. 6.6 Impedance Track (IT) Configuration Options
    7. 6.7 State-of-Health (SOH)
    8. 6.8 Battery Trip Point (BTP)
  9. Cell Balancing
    1. 7.1 Introduction
    2. 7.2 Cell Balancing Setup
    3. 7.3 Cell Balancing Operation
  10. Lifetime Data Collection
    1. 8.1 Description
  11. Device Security
    1. 9.1 Description
    2. 9.2 SHA-1 Description
    3. 9.3 HMAC Description
    4. 9.4 Authentication
    5. 9.5 Security Modes
      1. 9.5.1 SEALING and UNSEALING Data Flash
      2. 9.5.2 SEALED to UNSEALED
      3. 9.5.3 UNSEALED to FULL ACCESS
  12. 10Manufacture Production
    1. 10.1 Manufacture Testing
    2. 10.2 Calibration
  13. 11Calibration
    1. 11.1 Cell Voltage Calibration
    2. 11.2 VC2 (BAT) Voltage Calibration
    3. 11.3 PACK Voltage Calibration
    4. 11.4 Current Calibration
      1. 11.4.1 CC Offset Calibration
      2. 11.4.2 Board Offset Calibration
      3. 11.4.3 CC Gain/Capacity Gain Calibration
    5. 11.5 Temperature Calibration
      1. 11.5.1 Internal Temperature Sensor Calibration
      2. 11.5.2 TS1 Calibration
  14. 12I2C Commands
    1. 12.1 Standard Data Commands
      1. 12.1.1  0x00/01 ManufacturerAccess() Control
      2. 12.1.2  0x02/03 AtRate()
      3. 12.1.3  0x04/05 AtRateTimeToEmpty()
      4. 12.1.4  0x06/07 Temperature()
      5. 12.1.5  0x08/09 Voltage()
      6. 12.1.6  0x0A/0B BatteryStatus()
      7. 12.1.7  0x0C/0D Current()
      8. 12.1.8  0x0E/0F MaxError()
      9. 12.1.9  0x10/11 RemainingCapacity()
      10. 12.1.10 0x12/13 FullChargeCapacity()
      11. 12.1.11 0x14/15 AverageCurrent()
      12. 12.1.12 0x16/17 AverageTimeToEmpty()
      13. 12.1.13 0x18/19 AverageTimeToFull()
      14. 12.1.14 0x1A/1B StandbyCurrent()
      15. 12.1.15 0x1C/1D StandbyTimeToEmpty()
      16. 12.1.16 0x1E/1F MaxLoadCurrent()
      17. 12.1.17 0x20/21 MaxLoadTimeToEmpty()
      18. 12.1.18 0x22/23 AveragePower()
      19. 12.1.19 0x24/25 BTPDischargeSet()
      20. 12.1.20 0x26/27 BTPChargeSet()
      21. 12.1.21 0x28/29 InternalTemperature()
      22. 12.1.22 0x2A/2B CycleCount()
      23. 12.1.23 0x2C/2D RelativeStateOfCharge()
      24. 12.1.24 0x2E/2F State-of-Health (SOH)
      25. 12.1.25 0x30/31 ChargingVoltage()
      26. 12.1.26 0x32/33 ChargingCurrent()
      27. 12.1.27 0x3C/3D DesignCapacity()
      28. 12.1.28 0x3E/3F AltManufacturerAccess()
      29. 12.1.29 0x40/0x5F MACData()
      30. 12.1.30 0x60 MACDataChecksum()
      31. 12.1.31 0x61 MACDataLength()
    2. 12.2 0x00, 0x01 AltManufacturerAccess() and 0x3E, 0x3F AltManufacturerAccess()
      1. 12.2.1  AltManufacturerAccess() 0x0001 Device Type
      2. 12.2.2  AltManufacturerAccess() 0x0002 Firmware Version
      3. 12.2.3  AltManufacturerAccess() 0x0003 Hardware Version
      4. 12.2.4  AltManufacturerAccess() 0x0004 Instruction Flash Signature
      5. 12.2.5  AltManufacturerAccess() 0x0005 Static DF Signature
      6. 12.2.6  AltManufacturerAccess() 0x0006 Chemical ID
      7. 12.2.7  AltManufacturerAccess() 0x0007 Pre_MACWrite
      8. 12.2.8  AltManufacturerAccess() 0x0008 Static Chem DF Signature
      9. 12.2.9  AltManufacturerAccess() 0x0009 All DF Signature
      10. 12.2.10 AltManufacturerAccess() 0x0010 SHUTDOWN Mode
      11. 12.2.11 AltManufacturerAccess() 0x0011 SLEEP Mode
      12. 12.2.12 AltManufacturerAccess() 0x0012 Device Reset
      13. 12.2.13 AltManufacturerAccess() 0x001F CHG FET
      14. 12.2.14 AltManufacturerAccess() 0x0020 DSG FET
      15. 12.2.15 AltManufacturerAccess() 0x0021 Gauging
      16. 12.2.16 AltManufacturerAccess() 0x0022 FET Control
      17. 12.2.17 AltManufacturerAccess() 0x0023 Lifetime Data Collection
      18. 12.2.18 AltManufacturerAccess() 0x0024 Permanent Failure
      19. 12.2.19 AltManufacturerAccess() 0x0028 Lifetime Data Reset
      20. 12.2.20 AltManufacturerAccess() 0x0029 Permanent Fail Data Reset
      21. 12.2.21 AltManufacturerAccess() 0x002D CALIBRATION Mode
      22. 12.2.22 AltManufacturerAccess() 0x0030 Seal Device
      23. 12.2.23 AltManufacturerAccess() 0x0035 Security Keys
      24. 12.2.24 AltManufacturerAccess() 0x0037 Authentication Key
      25. 12.2.25 AltManufacturerAccess() 0x0041 Device Reset
      26. 12.2.26 AltManufacturerAccess() 0x0050 SafetyAlert
      27. 12.2.27 AltManufacturerAccess() 0x0051 SafetyStatus
      28. 12.2.28 AltManufacturerAccess() 0x0052 PFAlert
      29. 12.2.29 AltManufacturerAccess() 0x0053 PFStatus
      30. 12.2.30 AltManufacturerAccess() 0x0054 OperationStatus
      31. 12.2.31 AltManufacturerAccess() 0x0055 ChargingStatus
      32. 12.2.32 AltManufacturerAccess() 0x0056 GaugingStatus
      33. 12.2.33 AltManufacturerAccess() 0x0057 ManufacturingStatus
      34. 12.2.34 AltManufacturerAccess() 0x0058 AFE Register
      35. 12.2.35 AltManufacturerAccess() 0x0060 Lifetime Data Block 1
      36. 12.2.36 AltManufacturerAccess() 0x0070 ManufacturerInfo
      37. 12.2.37 AltManufacturerAccess() 0x0071 DAStatus1
      38. 12.2.38 AltManufacturerAccess() 0x0072 DAStatus2
      39. 12.2.39 AltManufacturerAccess() 0x0073 ITStatus1
      40. 12.2.40 AltManufacturerAccess() 0x0074 ITStatus2
      41. 12.2.41 AltManufacturerAccess() 0x0075 ITStatus3
      42. 12.2.42 AltManufacturerAccess() 0x0076 CB Status
      43. 12.2.43 AltManufacturerAccess() 0x0077 State-of-Health
      44. 12.2.44 AltManufacturerAccess() 0x0F00 ROM Mode
      45. 12.2.45 Data Flash Access() 0x4000–0x5FFF
      46. 12.2.46 AltManufacturerAccess() 0xF080 Exit Calibration Output Mode
      47. 12.2.47 AltManufacturerAccess() 0xF081 Output CC and ADC for Calibration
      48. 12.2.48 AltManufacturerAccess() 0xF082 Output Shorted CC and ADC for Calibration
  15. 13Data Flash Values
    1. 13.1  Data Formats
      1. 13.1.1 Unsigned Integer
      2. 13.1.2 Integer
      3. 13.1.3 Floating Point
      4. 13.1.4 Hex
      5. 13.1.5 String
    2. 13.2  Calibration
      1. 13.2.1 Voltage
      2. 13.2.2 Current
      3. 13.2.3 Current Offset
      4. 13.2.4 Current Deadband
      5. 13.2.5 Temperature
      6. 13.2.6 Internal Temp Model
      7. 13.2.7 Cell Temp Model
    3. 13.3  Settings
      1. 13.3.1 Configuration
      2. 13.3.2 Charger
      3. 13.3.3 Protection
      4. 13.3.4 Permanent Failure
      5. 13.3.5 AFE
      6. 13.3.6 Manufacturing
    4. 13.4  Advanced Charging Algorithms
      1. 13.4.1  Temperature Ranges
      2. 13.4.2  Low Temp Charging
      3. 13.4.3  Standard Temp Charging
      4. 13.4.4  High Temp Charging
      5. 13.4.5  Rec Temp Charging
      6. 13.4.6  Pre-Charging
      7. 13.4.7  Maintenance Charging
      8. 13.4.8  Voltage Range
      9. 13.4.9  Termination Config
      10. 13.4.10 Cell Balancing Config
    5. 13.5  Power
      1. 13.5.1 Power
      2. 13.5.2 Shutdown
      3. 13.5.3 Sleep
      4. 13.5.4 Ship
    6. 13.6  Gas Gauging
      1. 13.6.1  Standby
      2. 13.6.2  Max Load
      3. 13.6.3  Current Thresholds
      4. 13.6.4  Design
      5. 13.6.5  Cycle
      6. 13.6.6  FD
      7. 13.6.7  FC
      8. 13.6.8  TDA
      9. 13.6.9  TCA
      10. 13.6.10 State
      11. 13.6.11 IT Config
      12. 13.6.12 Condition Flag
      13. 13.6.13 SOH
      14. 13.6.14 Max Error
    7. 13.7  System Data
      1. 13.7.1 Manufacturer Data
      2. 13.7.2 Integrity
    8. 13.8  Configuration
      1. 13.8.1 Data
    9. 13.9  Lifetimes
      1. 13.9.1 Voltage
      2. 13.9.2 Current
      3. 13.9.3 Temperature
    10. 13.10 Protections
      1. 13.10.1  CUV—Cell Undervoltage
      2. 13.10.2  COV—Cell Overvoltage
      3. 13.10.3  OCC—Overcurrent In Charge
      4. 13.10.4  OCD—Overcurrent In Discharge
      5. 13.10.5  AOLD—AFE Over Load In Discharge
      6. 13.10.6  ASCC—AFE Short Circuit in Charge
      7. 13.10.7  ASCD—AFE Short Circuit in Discharge
      8. 13.10.8  OTC—Overtemperature in Charge
      9. 13.10.9  OTD—Overtemperature in Discharge
      10. 13.10.10 UTC—Under Temperature in Charge
      11. 13.10.11 UTD—Under Temperature in Discharge
      12. 13.10.12 PTO—PRECHARGE Mode Time Out
      13. 13.10.13 CTO—FAST CHARGE Mode Time Out
    11. 13.11 Permanent Fail
      1. 13.11.1 SOV—Safety Cell Overvoltage
      2. 13.11.2 VIMR—Voltage Imbalance at Rest
      3. 13.11.3 VIMA—Voltage Imbalance Active
    12. 13.12 PF Status
      1. 13.12.1 Device Status
      2. 13.12.2 275
      3. 13.12.3 Device Voltage Data
      4. 13.12.4 Device Current Data
      5. 13.12.5 Device Temperature Data
      6. 13.12.6 Device Gauging Data
      7. 13.12.7 AFE Registers
    13. 13.13 RA Table
      1. 13.13.1 R_a0
      2. 13.13.2 R_a1
      3. 13.13.3 R_a0x
      4. 13.13.4 R_a1x
  16. 14Data Flash Summary
    1. 14.1 Data Flash Table
  17.   A AFE Threshold and Delay Settings
    1.     A.1 Overload in Discharge Protection (AOLD)
    2.     A.2 Short Circuit in Charge (ASCC)
    3.     A.3 Short Circuit in Discharge (ASCD1 and ASCD2)
  18.   B Revision History

Standard Data Commands

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.

Table 12-1 Standard Commands
NameRegister Code (LSB/MSB)Description
ManufacturerAccess/ControlStatus()CNTL0x00/0x01Control Register (see below)
AtRate()AR0x02/0x03Read/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()ARTTE0x04/0x05This 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()TEMP0x06/0x07This 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()VOLT0x08/0x09This read-only function returns an unsigned integer value of the measured cell pack in mV with a range of 0 12000 mV.
BatteryStatus()FLAGS0x0A/0x0BSee the Flags register.
Current()INSTCURR0x0C/0x0DThis 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()RM0x10/0x11This 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()FCC0x12/0x13This 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.
AverageCurrentAI0x14/0x15This 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.
AverageTimeToEmptyTTE0x16/0x17Uses average current value with a time constant of 15 s for this method. A value of 65535 means the battery is not being discharged.
AverageTimeToFullTTF0x18/0x19This 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.
StandbyCurrentSI0x1A/0x1BThis 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.
StandbyTimeToEmptySTTE0x1C/0x1DThis 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.
MaxLoadCurrentMLI0x1E/0x1FThis 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.
MaxLoadTimeToEmptyMLTTE0x20/0x21This 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.
AveragePowerAP0x22/0x23This 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/0x25This 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/0x27This command clears the OperationStatusA [BTP_INT] and the BTP_INT pin will be deasserted.
InternalTemperatureINT_TEMP0x28/0x29This 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.
CycleCountCC0x2A/0x2BThis 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.
RelativeStateOfChargeSOC0x2C/0x2DThis 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%.
StateOfHealthSOH0x2E/0x2FThis 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.
ChargeVoltageCV0x30/0x31Returns the desired charging voltage in mV to the charger
ChargeCurrentCC0x32/0x33Returns the desired charging current in mA to the charger
DesignCapacity0x3C/0x3DIn 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.
AltManufacturerAccess0x3E/0x3FMAC Data block command
MACData0x40/0x5FMAC Data block
MACDataSum0x60MAC Data block checksum
MACDataLen0x61MAC Data block length