bq28z610 用户手册
bq28z610 用户手册
bq28z610 用户手册
Technical Reference
Preface ........................................................................................................................................ 8
1 Introduction ......................................................................................................................... 9
2 Protections ........................................................................................................................ 10
2.1 Introduction .................................................................................................................. 10
2.2 Cell Undervoltage Protection ............................................................................................. 10
2.3 Cell Overvoltage Protection ............................................................................................... 10
2.4 Overcurrent in Charge Protection ........................................................................................ 11
2.5 Overcurrent in Discharge Protection ..................................................................................... 12
2.6 Hardware-Based Protection............................................................................................... 12
2.6.1 Overload in Discharge Protection ............................................................................... 12
2.6.2 Short Circuit in Charge Protection .............................................................................. 13
2.6.3 Short Circuit in Discharge Protection ........................................................................... 13
2.7 Temperature Protections .................................................................................................. 13
2.8 Overtemperature in Charge Protection .................................................................................. 13
2.9 Overtemperature in Discharge Protection............................................................................... 14
2.10 Undertemperature in Charge Protection ................................................................................ 14
2.11 Undertemperature in Discharge Protection ............................................................................. 14
2.12 Precharge Timeout Protection ............................................................................................ 15
2.13 Fast Charge Timeout Protection ......................................................................................... 15
3 Permanent Fail ................................................................................................................... 16
3.1 Introduction .................................................................................................................. 16
3.2 Safety Cell Overvoltage Permanent Fail ................................................................................ 16
3.3 Voltage Imbalance at Rest Permanent Fail ............................................................................. 17
3.4 Voltage Imbalance Active Permanent Fail .............................................................................. 17
3.5 Charge FET Permanent Failure .......................................................................................... 17
3.5.1 Description ......................................................................................................... 17
3.5.2 Feature Enable/Disable........................................................................................... 18
3.6 Discharge FET Permanent Failure ....................................................................................... 18
3.6.1 Description ......................................................................................................... 18
3.6.2 Feature Enable/Disable........................................................................................... 18
3.7 Instruction Flash (IF) Checksum Permanent Fail ...................................................................... 18
3.8 Data Flash (DF) Permanent Fail ......................................................................................... 18
4 Advanced Charge Algorithm ................................................................................................ 19
4.1 Introduction .................................................................................................................. 19
4.2 Charge Temperature Ranges............................................................................................. 19
4.3 Voltage Range .............................................................................................................. 20
4.4 Charging Current ........................................................................................................... 21
4.5 Charging Voltage ........................................................................................................... 21
4.6 Valid Charge Termination ................................................................................................. 22
4.7 Charge and Discharge Alarms ........................................................................................... 22
4.8 Terminate Charge and Discharge Alarms............................................................................... 23
4.9 Precharge ................................................................................................................... 24
4.10 Maintenance Charge ....................................................................................................... 24
4.11 BROADCAST Mode ....................................................................................................... 24
Preface
Notational Conventions
The following notation is used if SBS commands and data flash (DF) values are mentioned within a text
block:
• SBS commands: italics with parentheses and no breaking spaces; for example, RemainingCapacity()
• Data flash: italics, bold, and breaking spaces; for example, Design Capacity
• Register bits and flags: italics and brackets; for example, [TDA]
• Data flash bits: italics and bold; for example, [LED1]
• Modes and states: ALL CAPITALS; for example, UNSEALED
Trademarks
Impedance Track is a trademark of Texas Instruments.
All other trademarks are the property of their respective owners.
Glossary
TI Glossary — This glossary lists and explains terms, acronyms, and definitions.
Introduction
The BQ28Z610 device provides a feature-rich gas gauging solution for 1-series cell to 2-series cell
battery-pack applications. The device has extended capabilities, including:
• Fully Integrated 1-Series to 2-Series Cell Li-Ion or Li-Polymer Cell Battery Pack Manager and
Protection
• Next-Generation Patented Impedance Track™ Technology Accurately Measures Available Charge in
Li-Ion and Li-Polymer Batteries
• High Side N-CH Protection FET Drive
• Integrated Cell Balancing While Charging or at Rest
• Power Modes
– NORMAL Mode
– SLEEP Mode
– SHUTDOWN Mode
• Full Array of Programmable Protection Features
– Voltage
– Current
– Temperature
– Charge Timeout
– CHG/DSG FETs
– Cell Imbalance
– BROADCAST Mode (available with the latest BQ28Z610 firmware from TI.com)
• Sophisticated Charge Algorithms
– JEITA
– Enhanced Charging
– Adaptive Charging
– Cell Balancing
• Diagnostic Lifetime Data Monitor
• Supports Two-Wire I2C Interface
• Battery Trip Point (BTP) Interrupts
• SHA-1 Authentication
• Ultra-Compact Package: 12-Lead SON
Protections
2.1 Introduction
This chapter describes the gauge's recoverable protection. When the protection is triggered, charging
and/or discharging will be disabled. This is indicated by OperationStatus()[XDSG] = 1 when discharging is
disabled (DSG FET is turned OFF), and OperationStatus()[XCHG] = 1 when charging is disabled (the
CHG and PCHG FETs are turned OFF). Once the protection is recovered, charging and discharging
resumes. All protection items can be enabled or disabled under Settings:Enable Protections A and
Settings:Enable Protections B.
To protect the DSG FET body diode, the DSG FET will always be closed when Current() > Charge Detect
Current, including when OperationStatus()[XDSG] = 1. Likewise, to protect the CHG FET body diode, the
CHG FET will always be closed when Current() ≤ Discharge Detect Current, including when
OperationStatus()[XCHG] = 1.
NOTE: The protection detection threshold may be influenced by the temperature settings of the
advanced charging algorithm and the measured temperature.
Permanent Fail
3.1 Introduction
The device can permanently disable the battery pack in the case of a severe failure, such as an error in
the instruction flash check (IFC) or in the data flash write (DFW). An IFC failure is set by the gauge if the
signature fails to pass verification at power-on reset. The DFW failure is set by the gauge if it is unable to
successfully program an update to the data flash (the read-back verification fails). When one of these
failure modes is detected, the following actions are taken in sequence:
1. Charge and discharge FETs are turned off.
2. OperationStatus()[PF] = 1
3. The following data is changed: BatteryStatus()[TCA] = 1, BatteryStatus()[TDA] = 1, ChargingCurrent()
= 0, and ChargingVoltage() = 0.
4. A backup of the internal AFE hardware registers are written to data flash: AFE Interrupt Status, AFE
FET Status, AFE RXIN, AFE Latch Status, AFE Interrupt Enable, AFE FET Control, AFE RXIEN,
AFE Cell Balance, AFE AD/CC Control, AFE ADC Mux, AFE State Control, Wake Control, AFE
Protection Control, AFE OCD, AFE SCC, AFE SCD1, and AFE SCD2.
5. The following values are preserved in data flash for failure analysis:
• SafetyAlert()
• SafetyStatus()
• OperationStatus()
• ChargingStatus()
• GaugingStatus()
• Voltages in DAStatus1()
• Current()
• TSINT, TS1, from DAStatus2()
• Cell DOD0 and passed charge
6. Data flash writing is disabled.
While the device is in this PERMANENT FAIL mode, any new SafetyAlert(), SafetyStatus() flags that are
set are added to the permanent fail log.
3.5.1 Description
The device will enter PERMANENT FAILURE mode in case the charge (CHG) FET is not working
properly.
3.6.1 Description
The device will enter PERMANENT FAILURE mode in case the discharge (DSG) FET is not working
properly.
4.1 Introduction
The device can change the values of ChargingVoltage() and ChargingCurrent() based on Temperature()
and Cell Voltage1..2(). Its flexible charging algorithm is JEITA-compatible and can also meet other specific
cell manufacturer charge requirements. The ChargingStatus() register shows the state of the charging
algorithm.
Cell Voltage
CVH
CVM
CVL
PCHG
CHG
SUSP CHG CHG
CHG NORMAL
CHG INHIBIT SUSP
INHIBIT
T1 T2 T5 T6 T3 T4
Temperature
Under Temp Low Temp Standard Temp Low Recommended Temp Standard Temp High High Temp Over Temp
ChargingStatus() [ UT] =1 ChargingStatus() [ LT] =1 ChargingStatus() [ STL] =1 ChargingStatus() [ RT] =1 ChargingStatus() [STH] = 1 ChargingStatus() [ HT] =1 ChargingStatus() [OT] =1
Temperature() > T1 + Temperature() >T2 + Temperature() > T5 + Temperature() >T6 Temperature() >T3 Temperature() >T4
Hysteresis Temp Hysteresis Temp Hysteresis Temp
Temperature() < T1 Temperature() <T2 Temperature() <T 5 Temperature() <T6 ± Temperature() <T3 ± Temperature() <T4 ±
Hysteresis Temp Hysteresis Temp Hysteresis Temp
T1 T2 T5 T6 T3 T4 Temperature()
Charging Voltage Low ≤ Charging Voltage Med ≤ Charging Voltage High ≤ × Temp Charging:Voltage
where x is Standard or Rec. Depending on the specific charging profile, the Low Temp Charging:Voltage
and High Temp Charging:Voltage settings do not necessarily have the highest setting values.
Cell Voltage
Not Charging
AND
Max Cell Voltage 1...2 < High Voltage State
Charging Voltage High – ChargingStatus()[HV] = 1
Charging Voltage Hysteresis
Charging Voltage
High
Charging Voltage
Medium
Charging Voltage
Low
Temp
Voltage Range Condition Action
Range
Any Any OperationStatus()[XCHG] = 1 ChargingCurrent() = 0
UT or OT Any — ChargingCurrent() = 0
Any PV — ChargingCurrent() = Pre-Charging:Current
Any LV, MV, or HV ChargingStatus()[MCHG] = 1 ChargingCurrent() = Maintenance Charging:Current
LV — ChargingCurrent() = Low Temp Charging:Current Low
LT MV — ChargingCurrent() = Low Temp Charging:Current Med
HV — ChargingCurrent() = Low Temp Charging:Current High
LV — ChargingCurrent() = Standard Temp Charging:Current Low
STL or STH MV — ChargingCurrent() = Standard Temp Charging:Current Med
HV — ChargingCurrent() = Standard Temp Charging:Current High
LV — ChargingCurrent() = Rec Temp Charging:Current Low
RT MV — ChargingCurrent() = Rec Temp Charging:Current Med
HV — ChargingCurrent() = Rec Temp Charging:Current High
LV — ChargingCurrent() = High Temp Charging:Current Low
HT MV — ChargingCurrent() = High Temp Charging:Current Med
HV — ChargingCurrent() = High Temp Charging:Current High
Temp
Condition Action
Range
Any OperationStatus()[XCHG] = 1 ChargingVoltage() = 0
UT or OT — ChargingVoltage() = 0
ChargingVoltage() = Low Temp Charging:Voltage × (DA
LT —
Configuration[CC1:CC0] + 1)
ChargingVoltage() = Standard Temp Charging:Voltage × (DA
STL or STH —
Configuration[CC1:CC0] + 1)
ChargingVoltage() = Rec Temp Charging:Voltage × (DA
RT —
Configuration[CC1:CC0] + 1)
ChargingVoltage() = High Temp Charging:Voltage × (DA
HT —
Configuration[CC1:CC0] + 1)
NOTE: GaugingStatus[TC][TD][FC][FD] are the status flags based on the gauging conditions only.
These flags are set and cleared based on SOCFlagConfigA and SOCFlagConfigB.
The BatteryStatus[TCA][TDA][FC][FD] flags will be set and cleared according to the
GaugingStatus[TC][TD][FC][FD] flags, as well as the safety and permanent failure
protections status.
The table below summarizes the options to set and clear the [TC] and [FC] flags in GaugingStatus().
The tables below summarize the various options to set and clear the [TD] and [FD] flags in both
BatteryStatus() and GaugingStatus().
4.9 Precharge
The device enters PRECHARGE mode if any cell voltage goes below Charging Voltage Low. The
external CHG FET can be used in PRECHARGE mode. Setting the Pre-Charging: Current = 0 mA
disables the precharge function by requesting 0 mA charging current from the charger. The [PCHG] = 1.
CHG FET is used in PRECHARGE mode.
The device also supports 0-V charging. It enables the hardware 0-V charging circuit automatically when
the battery stack voltage is below the minimum operation voltage of the device. See the BQ28Z610 1-Cell
to 2-Series Cell Li-Ion Battery Pack Manager Data Sheet (SLUSAS3) for BQ28Z610 electrical
specifications.
NOTE: BROADCAST mode is available in the latest firmware version in the BQ28Z610 product
folder on TI.com. BROADCAST mode is not included in the shipped version.
The BQ28Z610 gauge enables a smart battery to become the I2C master to broadcast the charging
voltage and current to a smart battery charger. This allows the charger and gauge to operate
autonomously to adjust the charging conditions dynamically without requiring the host or system to be
booted or active. For more information, see Charger.
The [BCAST] bit enables all broadcasts to a host or a smart charger. When the [BCAST] bit is enabled,
the following broadcasts are sent:
• ChargingVoltage() and ChargingCurrent() broadcasts are sent to the smart-charger Device Address,
and the broadcast period is set in Broadcast Pacing. The target registers accessed for writing
ChargingVoltage() and ChargingCurrent() values to the charger device are configured in the data flash
registerVoltage Register and the data flash register Current Register, respectively.
Similarly, the device can disable discharge of certain safety conditions if any of the following conditions
are detected, setting the OperationStatus()[XDSG] = 1:
• ManufacturingStatus()[FET_EN] = 0 OR
• Any PFStatus() set OR
• SafetyStatus()[OCD] or [CUV] or [AOLD] or [ASCD] or [UTD] = 1 OR
• SafetyStatus()[OTD] = 1 OR
• OperationStatus()[SDM] = 1 AND delay time > FET Off Time OR
• OperationStatus()[SDV] = 1 AND low voltage time ≥ Shutdown Time.
Power Modes
5.1 Introduction
To enhance battery life, the BQ28Z610 supports several power modes to minimize power consumption
during operation.
NOTE: The device goes through a full reset when exiting from SHUTDOWN mode, which means the
device will reinitialize. On power up, the gauge checks certain special memory locations. If
the memory checksum is incorrect, or if either the gauge of the AFE watchdog has been
triggered, the gauge will do a full reset.
If the memory checksum is good, for example in the case of a short power glitch, the gauge
will do a partial reset. The initialization is faster in partial reset, and certain memory data will
not be reinitialized (for example, all SBS registers, last known FET state, last ADC and CC
readings, and so on) and so a partial reset is usually transparent to the host.
NOTE: If the gauge is unsealed and the MAC Shutdown() command is sent twice in a row, the
gauge will execute the shutdown sequence immediately and skip the normal delay
sequence.
Gauging
6.1 Introduction
The BQ28Z610 measures individual cell voltages, pack voltage, temperature, and current. It determines
battery state-of-charge by analyzing individual cell voltages when a time exceeding 10 minutes has
passed since the last charge or discharge activity of the battery.
The BQ28Z610 measures charge and discharge activity by monitoring the stable voltage across a small-
value series sense resistor (1 mΩ typ.) between the negative terminal of the cell stack and the negative
terminal of the battery pack. The battery state-of-charge is subsequently adjusted during load or charger
application using the integrated charge passed through the battery. The device is capable of supporting a
maximum battery pack capacity of 32 Ah. See the "Theory and Implementation of Impedance Track
Battery Fuel-Gauging Algorithm" in the bq20zxx Product Family Application Report (SLUA364) for further
details.
The default for Impedance Track gauging is off. To enable the gauging function, set Manufacturing
Status[GAUGE_EN] = 1. The gauging function will be enabled after a reset or a seal command is set.
Alternatively, the MAC command Gauging() can be used to turn on and off the gauging function.
Gauging() takes an immediate effect and the [GAUGE_EN] is also updated accordingly.
The ITStatus1(), ITStatus2(), and ITStatus3() commands return various gauging related information, which
is useful for problem analysis.
Pulsed Load Compensation and Termination Voltage — To take into account pulsed loads while
calculating remaining capacity until Term Voltage threshold is reached, the BQ28Z610 monitors
not only average load but also short load spikes. The maximum voltage deviation during a load
spike is continuously updated during discharge and stored in Delta Voltage, with the minimum
value allowed set in Min Delta Voltage.
Reserve Battery Capacity — The BQ28Z610 allows an amount of capacity to be reserved in both mAh
(Reserve Cap-mAh) and cWh (Reserve Cap-cWh) units between the point where the
RemainingCapacity() function reports zero capacity and the absolute minimum pack voltage, Term
Voltage. This enables a system to report zero capacity/energy, but still have enough reserve
capacity/energy to perform a controlled shutdown or provide an extended sleep period for the host
system.
Pack Based AND Cell Based Termination Voltage — The BQ28Z610 device forces
RemainingCapacity() to 0 mAh when the battery stack voltage reaches Term Voltage. If
Impedance Track GaugingConfiguration[CELL_TERM] = 1, the cell-based termination is used,
and the Term Min Cell V threshold is checked for a termination condition. The cell-based
termination provides an option to enable the gauge to reach 0 mAh before the device triggers CUV,
especially for an imbalanced pack.
CHARGE Mode Current < Quit Current for Chg Relax Time period RELAX Mode Current < (–) Dsg Current Threshold DISCHARGE Mode
OCV update Cell Impedance update
Qmax update [DSG]
[DSG]
Gauging
Gas Gauge Modes
31
QMax and Ra www.ti.com
CHARGE mode is exited and RELAX mode is entered when Current goes below Quit Current for a
period of Chg Relax Time. DISCHARGE mode is entered when Current goes below (–)Dsg Current
Threshold. DISCHARGE mode is exited and RELAX mode is entered when Current goes above (–)Quit
Current threshold for a period of Dsg Relax Time. CHARGE mode is entered when Current goes above
Chg Current Threshold.
The DOD is taken for QMax at a high state-of-charge, then during discharge when at the steep portion of
the voltage curve (85–90% DOD). This allows a good estimation of DOD again. This DOD estimation
during discharge is used to update QMax immediately instead of needing a rest period first. The actual
update to QMax happens when the discharge stops after verifying that no conditions were present that
would cause the QMax update to fail. The BQ28Z610 has an option to have DOD@EOC be valid for
QMax updates, which means it is possible to update QMax with no rest periods at all (by having a charge
termination followed by a full discharge); however, this is only recommended for certain new chemistries.
Fast QMax can be enabled in either LEARN mode (FAST_QMax_LRN) or FIELD mode
(FAST_QMax_FLD). The LEARN mode flag means Fast QMax is only enabled in IT state “06”, and will be
disabled once 0E is reached. FIELD mode is enabled in both “06” and “0E” states.
– A negative Ra is calculated or
– A bad RaScale value is calculated.
A valid OCV reading during RELAX mode or a fast QMax update without an OCV read will clear the
[R_DIS] flag.
If [FF_NEAR_EDV]: Fast Filter Near EDV. If this flag is set, the gauge applies an alternative filter, Near
EDV Ra Param Filter, for an Ra update in the fast scaling region (starting around 105 RSOC). This flag
should be kept to 1 as a default. When this flag is 0, the gauge uses the regular Ra filter, Resistance
Parameter Filter. Both DF filters should not be changed from the default value.
[SMOOTH]: A change in temperature or current rate can cause a significant change in Remaining
Capacity (RemCap), and therefore results in a jump or drop in the Relative State-of-Charge (RSOC). This
function provides an option to prevent an RSOC jump or drop during charge and discharge.
If a jump or drop of RSOC occurs, the device examines the amount of the RSOC jump or drop versus the
expected end point (that is, the charge termination for the charging condition or the EDV for the discharge
condition) and automatically smooths the change of RSOC, and always converges with the filtered (or
smoothed) value to the actual charge termination or EDV point. The actual and filtered values are always
available. The [SMOOTH] flag selects either the actual or filtered values as a returned SBS command.
[RELAX_JUMP_OK]: If set to 1, this flag enables the RSOC to jump during RELAX mode. Otherwise,
RSOC holds constant during RELAX mode and any RSOC jump will be passed into the onset of the
charge or discharge phase.
[CELL_TERM]: This flag provides an option to have a cell voltage based discharge termination. If the
minimum cell voltage reaches Term Min Cell V, RemainingCapacity() will be forced to 0 mAh.
[CSYNC]: This flag, if set to 1, synchronizes FullChargeCapacity() at valid charge termination.
[CCT]: This flag provides an option to use FullChargeCapacity() (when [CCT] = 1) or DesignCapacity()
(when [CCT] = 0) for cycle count threshold calculation. The minimum cycle count threshold is always 10%
of Design capacity even if FullChargeCapacity() is selected for cycle count threshold calculation. This
helps to avoid any erroneous cycle count increment caused by an extremely low FullChargeCapacity().
Cell Balancing
7.1 Introduction
The BQ28Z610 can determine the chemical state-of-charge of each cell using the Impedance Track
algorithm. The cell balancing algorithm used in the device decreases the differences in imbalanced cells in
a fully charged state gradually, which prevents fully charged cells from becoming overcharged, causing
excessive degradation. This increases overall pack energy by preventing premature charge termination.
The algorithm determines the amount of charge needed to fully charge each cell. There is a bypass FET
in parallel with each cell connected to the gas gauge. The FET is enabled for each cell with a charge
greater than the lowest charged cell to reduce charge current through those cells. Each FET is enabled for
a precalculated time as calculated by the cell balancing algorithm. When any bypass FET is turned on,
then the OperationStatus()[CB] flag is set; otherwise, the [CB] flag is cleared.
The gas gauge balances the cells by balancing the SOC difference. Thus, a field updated QMax (Update
Status = 0E) is required prior to any attempt of Cell Balance Time calculation. This ensures the accurate
SOC delta is calculated for the cell balancing operation. If QMax update has only occurred once (Update
Status = 06), then the gauge will only attempt to calculate the Cell Balance Time if a fully charged state is
reached, GaugingStatus()[FC] = 1.
Cell balancing is enabled if Settings:Balancing Configuration [CB] = 1. Cell balancing at rest can be
enabled separately by setting Balancing Configuration [CBR] = 1. If Settings:Balancing Configuration
[CB] = 0, both cell balancing at charging and at rest are disabled.
Cell balancing at rest can be configured by determining the data flash Min Start Balance Delta, Relax
Balance Interval, and Min RSOC for Balancing. For the data flash setting descriptions, see Cell
Balancing Config. The gas gauge balances cells by bypassing the energy. It is recommended to perform
cell balancing at rest when there is capacity in the battery pack.
Start
[Device is in CHARGE or Entering RELAX Mode
DISCHARGE mode]
Current()
Is Yes
|Current()| > Quit Remains in CHARGE or
DISCHARGE mode
Current
Quit
Current No Note: If the device is in CHARGE and
|Current()| is > Dsg Current
Threshold, then the device switches
directly to DISCHARGE mode; or if the
No Yes device is in DISCHARGE and |Current ()|
Clear and Start Is the device currently Clear and Start
Internal Timer in CHARGE mode? Internal Timer is > Chg Current Threshold, then the
device switches directly to CHARGE
mode bypassing the timers.
Yes Is Is Yes
|Current()| > Quit |Current()| > Quit
Current Current
No No
DSG Relax CHG Relax
Time Time
No No
Is Internal Timer > DSG Is Internal Timer > CHG
Relax Time Relax Time
Yes Yes
RELAX Mode
Once in RELAX mode, the BQ28Z610 waits until an OCV measurement is taken, which occurs after:
1. A dV/dt condition of < 4 µV/s is satisfied,
2. After 5 hours from when Current() < Quit Current,
3. Upon gas gauge reset,
4. An IT Enable command is issued.
The determination of when to update the OCV data is part of the normal Impedance Track algorithm and
is not specific to the cell balancing algorithm.
Current ()
No
Yes Yes
The BQ28Z610 then calculates the amount of charge difference between cells with a higher state-of-
charge than the lowest cell SOC. The value, dQ, is determined for each cell based by converting the
measured OCV to Depth-of-Discharge (DOD) percentages using a temperature-compensated DOD vs.
OCV table lookup table. If the measured, OCV does not coincide with a specific table entry, then the DOD
value is linearly interpolated from the two adjacent DODs of the respective table adjacent OCVs.
The delta in DOD% between each cell and the cell of lowest SOC is multiplied by the respective cells
QMax to create dQ: for example, dQ = CellnDOD – CellLOWEST_SOC DOD × CellnQMax (mAh).
Start
CellVoltage 1…2()
Does measured OCV
No
align with the OCV
table
Yes
OCV Table
Linear Interpolate DOD % values
Lookup DOD % values for each
for each cell from closest stored
cell
OCV data
ΔQ Calculation Complete
The BQ28Z610 calculates the required balancing time using dQ and Bal Time/mAh Cell 1 (for cell 1) or
Bal Time/mAh Cell 2. The value of Bal Time/mAh Cell 1 and Bal Time/mAh Cell 2 is fixed based on
key system factors and is calculated by:
Bal Time/mAh Cell x = 3600 mAs/(DUTY × (1000 mV / 1 V) × VCELL/(RVCx + Rcb))
Where:
VCELL = average cell voltage (for example, 3.7 V for most chemistry)
RVCx = external resistance in series between the cell and the pins of the BQ28Z610. In the reference
schematic, RVC2 = 105 Ω and RVC1 = 100 Ω.
Rcb = cell balancing FET Rdson, which is 150 Ω.
DUTY = cell balancing duty cycle, which is 68.75% typ.
Cell balancing time for each cell to be balanced is calculated by: dQCelln × Bal Time/mAh Cell 1 for cell1
or and dQCelln × Bal Time/mAh Cell 2. The cell balancing time is stored in the 16-bit RAM register
CellnBalanceTimer, providing a maximum calculated time of 65535 s (or 18.2 hrs). This update only
occurs if a valid QMax update has been made; otherwise, they are all set to 0.
The CellnBalanceTimer registers are clamped at 0xFFFF and cannot roll over.
Calculate
Cell Balance Timers No
Yes
Is device in CHARGE
mode?
No
Yes
Is device in RELAX
mode?
No
The BQ28Z610 calls the cell balancing algorithm every 1 s during normal operation. Cell balancing is not
called when the device is in SLEEP mode. All algorithm selections are made on this same 1-s timer.
In RELAX mode, if cell balancing at rest is enabled, Balancing Configuration[CBR] = 1. The gauge will
verify if the dv/dt condition is met at the entry of the RELAX mode. If so, then the cell balancing at rest will
start when all of the conditions below are met:
• Any pre-calculated Cell Balance Timer is non-zero AND
• RelativeStateofCharge() > Min RSOC for Balancing
The gauge will attempt to recalculate the cell balancing time in RELAX mode every Relax Balance
Interval. The cell balancing time is updated if the conditions below are met:
• The Relax Balance Interval has passed AND
• A OCV measurement is taken AND
• The max cell voltage delta > Min Start Balance Delta
On exit of the RELAX mode, cell balancing time is recalculated as long as a valid OCV update is
available.
Yes
No
Is dv/dt condition in Is the Relax Balance
process? Interval timer expired ?
No Yes
RelativeStateofCharge()
RSOC()
No
Is RSOC()> Min RSOC Has an OCV measure
Relax Balance ? been taken ?
Yes
No
Enable balance path for Yes
those cells with Cell Cell BalanceTimer Reset Relax Balance Interval
Balance Timer > 0 for each cell timer
Max-Min (Cell No
Disable balance path for Voltage 1...2) > Min
those cells with Cell Start Balance Delta?
Balance Timer = 0
Yes
Decrement Timers
Re-calculate Cell Balance
Timer
When the BQ28Z610 is in CHARGE mode, it follows these steps during cell balancing:
a. Check if any of the precalculated Cell Balance Timers are > 0.
b. The cell balance FETs are turned ON for the corresponding cell balance timers that are ≠ 0.
NOTE: There are no SOC restrictions controlling the enabling of cell balancing in CHARGE mode.
No
Is any Cell Balance
Timer > 0?
Yes
Decrement Timers
8.1 Description
The device has extensive capabilities for logging events over the life of the battery, which is useful for
analysis. The Lifetime data collection is enabled by setting ManufacturingStatus[LF_EN] = 1. The data is
collected in RAM and only written to DF under the following conditions to avoid wear out of the data flash:
• Every 10 hours if RAM content is different from flash.
• In permanent fail, before data flash updates are disabled.
• A reset counter increments
• The LifetimeDataFlush MAC command is received.
The lifetime data stops collecting under following conditions:
• After permanent fail
• Lifetime Data collection is disabled by setting ManufacturingStatus[LF_EN] = 0.
Total firmware runtime starts when lifetime data is enabled.
• Voltage
– Max Cell Voltage for Each Cell
• Current
– Max Charge/Discharge Current
• Temperature
– Max/Min Cell Temp
Device Security
9.1 Description
There are three levels of secured operation within the device. To switch between the levels, different
operations are needed with different keys. The three levels are SEALED, UNSEALED, and FULL
ACCESS. The device also supports SHA-1 HMAC authentication with the host system.
9.4 Authentication
The authentication should be implemented using the following steps:
1. MAC command 0x0000: Command = 0x0000, write the 20 bytes to 0x40, then write the checksum+len
at 0x60.
The response will be available as a MAC response, so 0x3E/0x3F will be 0x0000, 0x40 will have the
SHA1 result, and 0x60/0x61 will have the checksum and length.
2. Generate 160-bit message M using a random number generator that meets approved random number
generators described in FIPS PUB 140–2.
3. Generate SHA-1 input block B1 of 512 bytes (total input = 128-bit authentication key KD + 160-bit
message M + 1 + 159 0s + 100100000).
4. Generate SHA-1 hash HMAC1 using B1.
5. Generate SHA-1 input block B2 of 512 bytes (total input = 128-bit authentication key KD + 160-bit hash
HMAC1 + 1 + 159 0s + 100100000).
6. Generate SHA-1 hash HMAC2 using B2.
7. With no active MACData() data waiting, write 160-bit message M to MACData() in the format
0xAABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTT, where AA is LSB.
8. Wait 250 ms, then read MACData() for HMAC3.
9. Compare host HMAC2 with device HMAC3, and if it matches, both host and device have the same key
KD and the device is authenticated.
Manufacture Production
10.2 Calibration
The device has integrated routines that support calibration of current, voltage, and temperature readings,
accessible after writing 0xF081 or 0xF082 to AltManufacturerAccess() when the
ManufacturingStatus()[CAL] bit is ON. While the calibration is active, the raw ADC data is available on
MACData(). The device stops reporting calibration data on MACData() if any other MAC commands are
sent or the device is reset or sealed.
NOTE: The ManufacturingStatus()[CAL] bit must be turned OFF after calibration is completed. This
bit is cleared at reset or after sealing.
Calibration
NOTE: All calibration steps that require accessing data on MACData() must begin read operations
starting at AltManufacturerAccess() to ensure the data portion of the block is properly
refreshed per the intended AltManufacturerAccess() subcommand (in this case 0xF081 or
0xF082). The first two bytes returned are the AltManufacturerAccess() subcommand followed
by the counter, status, and raw ADC values, as shown in Table 10-1.
VC2
RVC
VCELL2
VC1
RVC
VCELL1
VSS
VC 2
VVC2
VSS
This device does not have a BAT terminal and therefore the VC2 input is the BAT terminal:
1. Apply known voltages in mV to the voltage input:
• VBAT between VC2 terminal and VSS terminal
2. If ManufacturerStatus()[CAL] = 0, send 0x002D to AltManufacturerAccess() to enable the [CAL] flag.
3. Send 0xF081 or 0xF082 to AltManufacturerAccess() to enable raw cell voltage output on MACData().
4. Poll MACData() until the 8-bit counter value increments by 2 before reading data.
5. Read ADC conversion readings of cell stack voltage from MACData():
• ADCBAT = LLll of MACData()
6. Average several readings for higher accuracy. Poll MACData() until ZZ increments to indicate that
updated values are available:
• ADCBAT = [ADCBAT(reading n) + … + ADCBAT(reading 1)]/n
7. Calculate gain value:
VBAT 16
BAT Gain = ´2
ADCBAT
8. Write the new BAT Gain value to data flash.
9. Recheck the voltage readings and if they are not accurate, repeat Steps 4 through 6.
10. Send 0x002D to AltManufacturerAccess() to clear the [CAL] flag if all calibration is complete.
PACK
VPACK
VSS
4. Poll MACData() until the 8-bit counter value increments by 2 before reading data.
5. Read ADC conversion readings of pack voltage from MACData():
• ADCPACK = KKkk of MACData()
6. Average several readings for higher accuracy. Poll MACData() until ZZ increments to indicate that
updated values are available:
• ADCPACK = [ADCPACK(reading n) + … + ADCPACK(reading 1)]/n
7. Calculate gain value:
VPACK 16
PACK Gain = ´2
ADCPACK
8. Write the new PACK Gain value to data flash.
9. Recheck voltage readings and if they are not accurate, repeat Steps 4 through 6.
10. Send 0x002D to AltManufacturerAccess() to clear the [CAL] flag if all calibration is complete.
NOTE: Because of hardware improvements in this device, CC Offset Calibration is not necessary.
Only run the CC Offset Calibration procedure if offset current is observed.
1. Apply a known current of 0 mA, and ensure no current is flowing through the sense resistor connected
between the SRP and SRN pins.
2. If ManufacturerStatus()[CAL] = 0, send 0x002D to AltManufacturerAccess() to enable the [CAL] flag.
3. Send 0xF082 to AltManufacturerAccess() to enable raw cell voltage output on MACData().
4. Poll MACData() until ZZ increments by 2 before reading data.
5. Obtain the ADC conversion readings of current from MACData():
• ADCCC = AAaa of MACData()
Is ADCCC < 0x8000? If yes, use ADCCC; otherwise, ADCCC = –(0xFFFF – AAaa + 0x0001).
6. Average several readings for higher accuracy. Poll MACData() until ZZ increments to indicate that
updated values are available:
• ADCCC = [ADCCC(reading n) + … + ADCCC(reading 1)]/n
7. Read Coulomb Counter Offset Samples from data flash.
NOTE: Because of hardware improvements in this device, Board Offset Calibration is not necessary.
Only run the Board Offset Calibration procedure if board offset current is observed.
9. Write the new CC Gain and Capacity Gain values to data flash.
10. Recheck the current reading. If the reading is not accurate, repeat the steps.
11. Send 0x002D to AltManufacturerAccess() to clear the [CAL] flag if all calibration is complete.
I2C Commands
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Check
AUTH BTP_
RSVD SEC1 SEC0 RSVD RSVD Sum RSVD RSVD RSVD RSVD LDMD R_DIS VOK QMax
CALM INT
Valid
Access Proto-
SBS Cmd Name Type Min Max Default Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access
SBS Cmd Name Protocol Type Min Max Note
SE US FA
Bit 3:0: EC3,EC2,EC1,EC0
Error Code
0x00 = OK
0x1 = Busy
0x2 = Reserved Command
0x3 = Unsupported Command
0x4 = AccessDenied
0x5 = Overflow/Underflow
0x6 = BadSize
0x7 = UnknownError
Bit 4: FD—Fully Discharged
0 = Battery ok
0x0A BatteryStatus() R R R Word H2 1 = Battery fully depleted
Bit 5: FC—Fully Charged
0 = Battery not fully charged
01 = Battery fully charged
Bit 6: DSG—Discharging
0 = Battery is charging.
1 = Battery is discharging.
Bit 7: INIT—Initialization
0 = Inactive
1 = Active
Bit 8: RTA—Remaining Time Alarm
0 = Inactive
1 = Active
Bit 9: RCA—Remaining Capacity Alarm
0 = Inactive
1 = Active
Bit 10: Reserved
Undefined
Bit 11: TDA—Terminate Discharge Alarm
0 = Inactive
1 = Active
Bit 12: OTA—Overtemperature Alarm
0x0B BatteryStatus() R R R Word H2 0 = Inactive
1 = Active
Bit 13: Reserved
Undefined
Bit 14: TCA—Terminate Charge Alarm
0 = Inactive
1 = Active
Bit 15: OCA—Overcharged Alarm
0 = Inactive
1 = Active
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
SBS Access
Name Protocol Type Min Max Unit
Cmd SE US FA
0x0E/0
MaxError() R Word U1 0 100 %
F
Condition Action
Full device reset MaxError() = 100%
RA-table only updated MaxError() = 5%
QMax only updated MaxError() = 3%
RA-table and QMax updated MaxError() = 1%
Each CycleCount() increment after last valid QMax update MaxError() increment by 0.05%
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit Note
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit Note
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit Note
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Unit Note
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Default Unit
SE US FA col
4400
0x3C/3D DesignCapacity() R R/W R/W Word U2 0 65535 mAh
6336
Access Proto-
SBS Cmd Name Type Min Max Default Unit
SE US FA col
Access Proto-
SBS Cmd Name Type Min Max Default Unit
SE US FA col
SBS Access
Name Protocol Type Min Max Default Unit Note
Cmd SE US FA
0x60 MACDataCheckSum () R R R Byte — — — — —
The checksum is the 8-bit sum of the MSB and LSB of the command plus the (command length) bytes in
the buffer. The final sum is the bitwise inversion of the result. Since the length is part of the checksum, the
verification cannot take place until the length is written. The checksum and length must be written together
as a word to be valid.
SBS Access
Name Protocol Type Min Max Default Unit Note
Cmd SE US FA
0x61 MACDataLength() R R R Byte — — — — —
The length byte for all MAC commands will include the 2-byte command, the 1-byte checksum, the 1-byte
length, and 1 to 32 bytes of data. This means the minimum length value is 5 for a valid block (no length or
checksum is used for command only writes, so block of zero size is not necessary). For proper write
command validation, the checksum and length must be written in order (word access triggered).
2. IT is enabled, ManufacturingStatus()[GAUGE_EN] = 1.
Example: Read Chemical ID() (0x0006) via AltManufacturerAccess().
1. Send Chemical ID() to AltManufacturerAccess().
a. I2C Write, start address = 0x3E (or 0x00). Data sent = 06 00 (data must be sent in Little Endian).
2. Read the result from AltManufacturerAccess() and MfgMACData().
a. I2C Read, start address = 0x3E length = 36 bytes. First 4 bytes of the response will be 06 00 10
12.
b. The first two bytes "06 00" is the MAC command (for verification).
c. The second two bytes "10 12" are the Chem ID in Little Endian. That is, 0x1210 for ChemID 1210.
d. The last two bytes of the 36-byte block will be the checksum and length. The length in this case
will be 6. The checksum is 0xFF – (sum of the first length – 2 bytes). The length and checksum are
used to validate the block response.
It is recommended to send “command only” operations to 0x00 and 0x01, and to set the command for a
read back in the same way. The reason for this is that it can always reset any legacy support options that
may be in effect; whereas, some legacy support options use 0x3E and 0x3F for other purposes. However,
0x3E and 0x3F can always safely be used for block reads. For backward compatibility, a request of the
device number or version will report a value for read on 0x00/0x01. The response word for both MAC
command DEV and VERSION (0x0001 and 0x0002) should report 0xFFA5 as the legacy response. This
is meant as a token to indicate to the host that the real response is on the extended block. “Command
only” operations take place immediately after the word write.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RSVD RSVD RSVD RSVD UTD UTC RSVD RSVD RSVD RSVD CTOS RSVD PTOS RSVD RSVD RSVD
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RSVD RSVD OTD OTC RSVD ASCD RSVD ASCC RSVD AOLD RSVD OCD RSVD OCC COV CUV
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
RSVD RSVD RSVD RSVD UTD UTC RSVD RSVD RSVD RSVD RSVD CTO RSVD PTO RSVD RSVD
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RSVD RSVD OTD OTC RSVD ASCD RSVD ASCC RSVD AOLD RSVD OCD RSVD OCC COV CUV
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
DFET CFET
RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD
F F
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RSVD RSVD RSVD VIMA VIMR RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD SOV RSVD
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
RSVD RSVD RSVD VIMA VIMR RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD SOV RSVD
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
CAL_
EM SLP SLP SMBL SLEE AUTO
RSVD RSVD CB INIT XL OFF CAL AUTH RSVD SDM
SHUT CC AD CAL PM CALM
SET
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SLEE BTP
SEC1 SEC0 PF SS SDV SEC1 SEC0 RSVD RSVD RSVD RSVD CHG DSG RSVD
P _INT
1 = Active
0 = Inactive
SLPCC (Bit 27): CC Measurement in SLEEP mode
1 = Active
0 = Inactive
SLPAD (Bit 26): ADC Measurement in SLEEP mode
1 = Active
0 = Inactive
SMBLCAL (Bit 25): Auto-offset calibration when Bus low is detected.
1 = Active
0 = Inactive
INIT (Bit 24): Initialization after full reset
1 = Active
0 = Inactive
SLEEPM (Bit 23): SLEEP mode
1 = Active
0 = Inactive
XL (Bit 22): 400-kHz mode
1 = Active
0 = Inactive
CAL_OFFSET (Bit 21): Calibration Output (raw CC Offset data)
1 = Active when MAC OutputShortedCCADCCal() is sent and the raw shorted CC data for
calibration is available.
0 = When the raw shorted CC data for calibration is not available.
CAL (Bit 20): Calibration Output (raw ADC and CC data)
1 = Active when either the MAC OutputCCADCCal() or OutputShortedCCADCCal() is sent and
the raw CC and ADC data for calibration is available.
0 = When the raw CC and ADC data for calibration is not available.
AUTHCALM (Bit 19): Auto CC Offset Calibration by MAC AutoCCOffset()
1 = The gauge receives the MAC AutoCCOffset() and starts the auto CC Offset calibration.
0 = Clear when the calibration is completed.
AUTH (Bit 18): Authentication in progress
1 = Active
0 = Inactive
RSVD (Bit 17): Reserved
SDM (Bit 16): SHUTDOWN triggered via command
1 = Active
0 = Inactive
SLEEP (Bit 15): SLEEP mode conditions met
1 = Active
0 = Inactive
SEC1, SEC0 (Bits 14, 13): SECURITY Mode
0, 0 = Reserved
0, 1 = Full Access
1, 0 = Unsealed
1, 1 = Sealed
PF (Bit 12): PERMANENT FAILURE mode status
1 = Active
0 = Inactive
SS (Bit 11): SAFETY mode status
1 = Active
0 = Inactive
SDV (Bit 10): SHUTDOWN triggered via low pack voltage
1 = Active
0 = Inactive
SEC1, SEC0 (Bits 9–8): SECURITY mode
0, 0 = Reserved
0, 1 = Full Access
1, 0 = Unsealed
1, 1 = Sealed
BTP_INT (Bit 7): Battery Trip Point (BTP) Interrupt output
1 = Active
0 = Inactive
RSVD (Bits 6–3): Reserved
CHG (Bit 2): CHG FET status
1 = Active
0 = Inactive
DSG (Bit 1): DSG FET status
1 = Active
0 = Inactive
RSVD (Bit 0): Reserved
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
VCT MCHG SU IN HV MV LV PV RSVD OT HT STH RT STL LT UT
0 = Inactive
IN (Bit 12): Charge Inhibit
1 = Active
0 = Inactive
HV (Bit 11): High Voltage Region
1 = Active
0 = Inactive
MV (Bit 10): Mid Voltage Region
1 = Active
0 = Inactive
LV (Bit 9): Low Voltage Region
1 = Active
0 = Inactive
PV (Bit 8): Precharge Voltage Region
1 = Active
0 = Inactive
OT (Bit 6): Over Temperature Region
1 = Active
0 = Inactive
HT (Bit 5): High Temperature Region
1 = Active
0 = Inactive
STH (Bit 4): Standard Temperature High Region
1 = Active
0 = Inactive
RT (Bit 3): Room Temperature Region
1 = Active
0 = Inactive
STL (Bit 2): Standard Temperature Low Region
1 = Active
0 = Inactive
LT (Bit 1): Low Temperature Region
1 = Active
0 = Inactive
UT (Bit 0): Under Temperature Region
1 = Active
0 = Inactive
NOTE: The Battery Management Studio (bqStudio) tool splits the returned value of GaugingStatus()
into two separate registers: GaugingStatus = Lowest Byte, and ITStatus = 2nd and 3rd bytes,
with the 4th byte reserved.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
OCV
RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD RSVD LDMD RX QMax VDQ
FR
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
SLPQ BAL_
NSFM RSVD QEN VOK RDIS RSVD REST CF DSG EDV TC TD FC FD
Max EN
OCVFR (Bit 20): Open Circuit Voltage in Flat Region (during RELAX)
1 = Detected
0 = Not Detected
LDMD (Bit 19): LOAD mode
1 = Constant Power
0 = Constant Current
RX (Bit 18): Resistance Update (Toggles after every resistance update)
QMax (Bit 17): QMax Update (Toggles after every QMax update)
VDQ (Bit 16): Discharge Qualified for Learning (based on RU flag)
NSFM (Bit 15): Negative Scale Factor Mode
1 = Negative Ra Scaling Factor Detected
0 = Negative Ra Scaling Factor Not Detected
SLPQMax (Bit 13): QMax Update During Sleep
1 = Active
0 = Inactive
QEN (Bit 12): Impedance Track Gauging (Ra and QMax updates are enabled.)
1 = Enabled
0 = Disabled
VOK (Bit 11): Voltage OK for QMax Update
1 = Detected
0 = Not Detected
RDIS (Bit 10): Resistance Updates
1 = Disabled
0 = Enabled
REST (Bit 9): Rest
1 = OCV Reading Taken
0 = OCV Reading Not Taken or Not in Relax
1 = Detected
0 = Not Detected
CF (Bit 7): Condition Flag
1 = MaxError() > Max Error Limit (Condition Cycle is needed.)
0 = MaxError() < Max Error Limit (Condition Cycle is not needed.)
DSG (Bit 6): Discharge/Relax
1 = Charging Not Detected
0 = Charging Detected
15 14 13 12 11 10 9 8
CAL_EN RSVD RSVD RSVD RSVD RSVD RSVD RSVD
7 6 5 4 3 2 1 0
RSVD PF_EN LF_EN FET_EN GAUGE_EN DSG_TEST CHG_TEST RSVD
1 = Enabled
0 = Disabled
DSG_TEST (Bit 2): Discharge FET Test
1 = Discharge FET test activated
0 = Disabled
CHG_TEST (Bit 1): Charge FET Test
1 = Charge FET test activated
0 = Disabled
RSVD (Bit 0): Reserved
To read the DF, send a block write to the AltManufacturerAccess(), followed by the starting address, then
send a block read to the AltManufacturerAccess(). The return data contains the starting address followed
by 32 bytes of DF data in Little Endian.
The gauge supports an auto-increment on the address during a DF read. This greatly reduces the time
required to read out the entire DF. Continue with the read from the DF example. If another read block is
sent with command 0x3E, the gauge returns another 32 bytes of DF data, starting with address 0x4020.
0
U1
MSB
0 1
U2 U2
LSB MSB
0 1 2 3
U4 L U4 L U4 H U4 H
LSB MSB LSB MSB
13.1.2 Integer
Integer values are stored in 2's-complement format in 1-byte, 2-byte, or 4-byte values in Little Endian byte
order.
0
I1
MSB
0 1
I2 I2
LSB MSB
0 1 2 3
I4 L I4 L I4 H I4 H
LSB MSB LSB MSB
0 1 2 3
Exp[0] +
Fract [0–7] Fract [8–15] Sign + Exp[1–7]
Fract[16–22]
Where:
Exp: 8-bit exponent stored with an offset bias of 127. The values 00 and FF have special meaning.
Fract: 23-bit fraction. If the exponent is > 0, then the mantissa is 1.fract. If the exponent is zero, then the
mantissa is 0.fract.
The floating point value depends on the special cases of the exponent:
• If the exponent is FF and the fraction is zero, this represents +/– infinity.
• If the exponent is FF and the fraction is non-zero this represents "not a number" (NaN).
• If the exponent is 00 then the value is a subnormal number represented by (–1)sign × 2–126 × 0.fraction.
• Otherwise, the value is a normalized number represented by (–1)sign × 2(exponent – 127) × 1.fraction.
13.1.4 Hex
Bit register definitions are stored in unsigned integer format.
13.1.5 String
String values are stored with length byte first, followed by a number of data bytes defined with the length
byte.
0 1 ... N
Length Data0 ... DataN
13.2 Calibration
13.2.1 Voltage
13.2.2 Current
13.2.5 Temperature
13.3 Settings
13.3.1 Configuration
13.3.2 Charger
NOTE: The BROADCAST mode feature is available in the latest firmware version in the BQ28Z610
product folder on TI.com: It is not included in the shipped version.
The following data flash parameters enable the configuration of the BROADCAST mode feature. This
feature is disabled by default because not all host MCU/CPUs are compatible with multi-master I2C
operation, and collisions could hang the host's comm engine.
13.3.3 Protection
13.3.5 AFE
13.3.6 Manufacturing
13.4.6 Pre-Charging
13.5 Power
13.5.1 Power
13.5.2 Shutdown
13.5.3 Sleep
13.5.4 Ship
13.6.1 Standby
13.6.4 Design
13.6.5 Cycle
13.6.6 FD
13.6.7 FC
13.6.8 TDA
Per the Smart Battery Data Specification v1.1, TDA is only active while discharging.
13.6.9 TCA
Per the Smart Battery Data Specification v1.1, TCA is only active while charging.
13.6.10 State
13.6.11 IT Config
100 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Gas Gauging
Class Subclass Name Type Min Max Default Unit Description
Filter value used in Ra Updates, specifies what
percentage or Ra update is from new value
Gas (100%—setting) vs. old value (setting). The
IT Cfg Ra Filter U2 0 999 500 0.1%
Gauging recommended setting is 80% if the
RSOC_CONV feature is enabled. Otherwise,
the setting should be 50% as the default.
% of
Gas
IT Cfg Ra Max Delta U1 0 255 15 Design Maximum value of allowed Ra change
Gauging
Resistance
Reference Grid point used by Design
Resistance. The default setting should be used
Gas Reference if RSOC_CONV feature is enabled. Otherwise,
IT Cfg UI 0 15 4
Gauging Grid grid point 11 should be used to ensure
resistance updates fast enough at the grid
where discharge termination occurs.
This is one of the filters used for resistance
update. Reducing this filter setting can improve
low temperature performance at high rates.
The default setting is 41-s time constant. It is
recommended to keep this filter within the
range of 4 s (that is, DF setting = 61680) up to
Resistance the default 41 s (that is, DF setting = 65142).
Gas
IT Cfg Parameter U2 1 65534 65124 — Examining the Term Voltage Delta setting and
Gauging
Filter Fast Scale Start SOC should be done prior to
twisting this parameter when trying to improve
the RSOC performance.
The following is the formula to convert the DF
setting into actual filter time constant: Filter
time constant = [0.25/(1 – (DF_Value
/65536))] – 0.25.
Ra filter used in the fast scaling region if
Gas Near EDV Ra
IT Cfg U2 1 65535 59220 — [FF_NEAR_EDV] = 1. Default value should be
Gauging Param Filter
used.
Maximum allowed QMax change from its
previous value. The QMax change will be
Gas capped by this setting if the delta from the
IT Cfg QMax Delta U1 3 100 5 %
Gauging previous QMax is larger than QMax Delta.
QMax Delta is a percentage of Design
Capacity.
Maximum QMax value over the lifetime of the
pack. If the updated QMax value is larger than
Gas QMax Upper
IT Cfg U1 100 255 130 % this setting, the updated QMax will be capped
Gauging Bound
to QMax Upper Bound. QMax Upper Bound
is a percentage of Design Capacity.
Gas Min stack voltage to be used for capacity
IT Cfg Term Voltage I2 0 32767 9000 mV
Gauging calculation
Controls when the RSOC_CONV feature
becomes active. The recommended setting is
3.3 –Term Voltage/Number Cells.
Gas Term Voltage
IT Cfg I2 0 32767 300 mV The default setting is 300 mV, which is
Gauging Delta
assuming a typical 3-V termination voltage per
cell. If a different termination voltage is used,
this parameter should be adjusted accordingly.
Minimum cell termination voltage when used, if
[CELL_TERM]= 1. This is intended to allow
Gas Term Min Cell
IT Cfg I2 0 32767 2800 mV the IT algorithm to reach 0% before CUV is
Gauging Voltage
triggered; therefore, this value should be set at
or above CUV:Threshold.
Control start of convergence when
[RSOC_CONV]= 1 based on RSOC %.
Raising this setting can improve RSOC drop at
Gas Fast Scale
IT Cfg U1 0 100 10 % the end of discharge. However the RSOC %
Gauging Start SOC
chosen for this setting must keep after the
sharp drop of the discharge curve (the knee of
the discharge curve).
Gas Defines Load compensation mode used by the
IT Cfg Load Select U1 0 255 7
Gauging gauging algorithm
Defines unit used by the gauging algorithm:
Gas
IT Cfg Load Mode U1 0 255 0 0 = Constant Current
Gauging
1 = Constant Power
SLUUA65D – April 2014 – Revised January 2020 Data Flash Values 101
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Gas Gauging www.ti.com
13.6.13 SOH
102 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com System Data
13.7.2 Integrity
13.8 Configuration
13.8.1 Data
13.9 Lifetimes
13.9.1 Voltage
13.9.2 Current
13.9.3 Temperature
SLUUA65D – April 2014 – Revised January 2020 Data Flash Values 103
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Protections www.ti.com
13.10 Protections
104 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Protections
SLUUA65D – April 2014 – Revised January 2020 Data Flash Values 105
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Protections www.ti.com
106 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Permanent Fail
13.12 PF Status
The data in this class is saved at the time of the PF event.
SLUUA65D – April 2014 – Revised January 2020 Data Flash Values 107
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
PF Status www.ti.com
108 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com PF Status
Class Subclass Name Type Min Max Default Unit Description
The charging status at the time of the PF event. See
Device Status
PF Status Gauging Status H1 0 FF 0 hex section under AltManufacturerAccess(), Gauging
Data
Status().
Name: IT Status
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
SLPQM
NSFM RSVD QEN VOK RDIS RSVD REST RSVD RSVD RSVD OCVFR LDMD RX QMax VDQ
ax
SLUUA65D – April 2014 – Revised January 2020 Data Flash Values 109
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
PF Status www.ti.com
13.13 RA Table
13.13.1 R_a0
RA Table R_a0 Cell 0 R_A 0 I2 –32768 32768 38 2–10 Ω Cell 0 resistance at grid point 0
RA Table R_a0 Cell 0 R_A 3 I2 –32768 32768 44 2–10 Ω Cell 0 resistance at grid point 3
RA Table R_a0 Cell 0 R_A 4 I2 –32768 32768 42 2–10 Ω Cell 0 resistance at grid point 4
RA Table R_a0 Cell 0 R_A 7 I2 –32768 32768 48 2–10 Ω Cell 0 resistance at grid point 7
RA Table R_a0 Cell 0 R_A 10 I2 –32768 32768 56 2–10 Ω Cell 0 resistance at grid point 10
RA Table R_a0 Cell 0 R_A 13 I2 –32768 32768 128 2–10 Ω Cell 0 resistance at grid point 13
RA Table R_a0 Cell 0 R_A 14 I2 –32768 32768 378 2–10 Ω Cell 0 resistance at grid point 14
110 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com RA Table
13.13.2 R_a1
RA Table R_a1 Cell 1 R_A 0 I2 –32768 32768 38 2–10 Ω Cell 1 resistance at grid point 0
RA Table R_a1 Cell 1 R_A 2 I2 –32768 32768 43 2–10 Ω Cell 1 resistance at grid point 2
RA Table R_a1 Cell 1 R_A 3 I2 –32768 32768 44 2–10 Ω Cell 1 resistance at grid point 3
RA Table R_a1 Cell 1 R_A 6 I2 –32768 32768 45 2–10 Ω Cell 1 resistance at grid point 6
RA Table R_a1 Cell 1 R_A 9 I2 –32768 32768 52 2–10 Ω Cell 1 resistance at grid point 9
RA Table R_a1 Cell 1 R_A 12 I2 –32768 32768 74 2–10 Ω Cell 1 resistance at grid point 12
RA Table R_a1 Cell 1 R_A 13 I2 –32768 32768 128 2–10 Ω Cell 1 resistance at grid point 13
13.13.3 R_a0x
RA Table R_a0x xCell 0 R_A 0 I2 –32768 32768 38 2–10 Ω Cell 0 resistance at grid point 0
RA Table R_a0x xCell 0 R_A 1 I2 –32768 32768 41 2–10 Ω Cell 0 resistance at grid point 1
RA Table R_a0x xCell 0 R_A 2 I2 –32768 32768 43 2–10 Ω Cell 0 resistance at grid point 2
RA Table R_a0x xCell 0 R_A 5 I2 –32768 32768 42 2–10 Ω Cell 0 resistance at grid point 5
RA Table R_a0x xCell 0 R_A 8 I2 –32768 32768 49 2–10 Ω Cell 0 resistance at grid point 8
RA Table R_a0x xCell 0 R_A 9 I2 –32768 32768 52 2–10 Ω Cell 0 resistance at grid point 9
RA Table R_a0x xCell 0 R_A 11 I2 –32768 32768 64 2–10 Ω Cell 0 resistance at grid point 11
RA Table R_a0x xCell 0 R_A 12 I2 –32768 32768 74 2–10 Ω Cell 0 resistance at grid point 12
SLUUA65D – April 2014 – Revised January 2020 Data Flash Values 111
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
RA Table www.ti.com
13.13.4 R_a1x
RA Table R_a1x xCell 1 R_A 0 I2 –32768 32768 38 2–10 Ω Cell 1 resistance at grid point 0
RA Table R_a1x xCell 1 R_A 3 I2 –32768 32768 44 2–10 Ω Cell 1 resistance at grid point 3
RA Table R_a1x xCell 1 R_A 4 I2 –32768 32768 42 2–10 Ω Cell 1 resistance at grid point 4
RA Table R_a1x xCell 1 R_A 6 I2 –32768 32768 45 2–10 Ω Cell 1 resistance at grid point 6
RA Table R_a1x xCell 1 R_A 7 I2 –32768 32768 48 2–10 Ω Cell 1 resistance at grid point 7
RA Table R_a1x xCell 1 R_A 10 I2 –32768 32768 56 2–10 Ω Cell 1 resistance at grid point 10
RA Table R_a1x xCell 1 R_A 13 I2 –32768 32768 128 2–10 Ω Cell 1 resistance at grid point 13
RA Table R_a1x xCell 1 R_A 14 I2 –32768 32768 378 2–10 Ω Cell 1 resistance at grid point 14
112 Data Flash Values SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Chapter 14
SLUUA65D – April 2014 – Revised January 2020
SLUUA65D – April 2014 – Revised January 2020 Data Flash Summary 113
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Data Flash Table www.ti.com
114 Data Flash Summary SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Data Flash Table
SLUUA65D – April 2014 – Revised January 2020 Data Flash Summary 115
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Data Flash Table www.ti.com
116 Data Flash Summary SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Data Flash Table
SLUUA65D – April 2014 – Revised January 2020 Data Flash Summary 117
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Data Flash Table www.ti.com
118 Data Flash Summary SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Data Flash Table
SLUUA65D – April 2014 – Revised January 2020 Data Flash Summary 119
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Data Flash Table www.ti.com
120 Data Flash Summary SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Data Flash Table
SLUUA65D – April 2014 – Revised January 2020 Data Flash Summary 121
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Data Flash Table www.ti.com
122 Data Flash Summary SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Appendix A
SLUUA65D – April 2014 – Revised January 2020
SLUUA65D – April 2014 – Revised January 2020 AFE Threshold and Delay Settings 123
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Short Circuit in Charge (ASCC) www.ti.com
124 AFE Threshold and Delay Settings SLUUA65D – April 2014 – Revised January 2020
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
www.ti.com Short Circuit in Discharge (ASCD1 and ASCD2)
SLUUA65D – April 2014 – Revised January 2020 AFE Threshold and Delay Settings 125
Submit Documentation Feedback
Copyright © 2014–2020, Texas Instruments Incorporated
Revision History www.ti.com
Revision History
NOTE: Page numbers for previous revisions may differ from page numbers in the current version.
TI PROVIDES TECHNICAL AND RELIABILITY DATA (INCLUDING DATASHEETS), DESIGN RESOURCES (INCLUDING REFERENCE
DESIGNS), APPLICATION OR OTHER DESIGN ADVICE, WEB TOOLS, SAFETY INFORMATION, AND OTHER RESOURCES “AS IS”
AND WITH ALL FAULTS, AND DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION ANY
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD
PARTY INTELLECTUAL PROPERTY RIGHTS.
These resources are intended for skilled developers designing with TI products. You are solely responsible for (1) selecting the appropriate
TI products for your application, (2) designing, validating and testing your application, and (3) ensuring your application meets applicable
standards, and any other safety, security, or other requirements. These resources are subject to change without notice. TI grants you
permission to use these resources only for development of an application that uses the TI products described in the resource. Other
reproduction and display of these resources is prohibited. No license is granted to any other TI intellectual property right or to any third
party intellectual property right. TI disclaims responsibility for, and you will fully indemnify TI and its representatives against, any claims,
damages, costs, losses, and liabilities arising out of your use of these resources.
TI’s products are provided subject to TI’s Terms of Sale (www.ti.com/legal/termsofsale.html) or other applicable terms available either on
ti.com or provided in conjunction with such TI products. TI’s provision of these resources does not expand or otherwise alter TI’s applicable
warranties or warranty disclaimers for TI products.
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2020, Texas Instruments Incorporated