This manual discusses the modules and peripherals of the automotive-qualified AEC-Q100, Grade 3
bq34210-Q1 fuel gauge, and how each is used to build a complete battery pack fuel gauge solution. For
further information, refer to the bq34210-Q1 Automotive 1-Series Cell System-Side CEDV Fuel Gauge forRarely Discharged Batteries Data Sheet (SLUSCG1).
Formatting in This Document
The following formatting convention is used in this document:
•SBS commands: italics with parentheses and no breaking spaces; for example, RemainingCapacity()
•Data memory: italics, bold, and breaking spaces; for example, Design Capacity
•Register bits and flags: italics and brackets; for example, [TDA]
•Data memory bits: italics and bold; for example, [LED1]
•Modes and states: ALL CAPITALS; for example, UNSEALED
Trademarks
MathCAD is a trademark of MathSoft, Inc.
All other trademarks are the property of their respective owners.
Read This First
SLUUBE8–September 2018
Preface
Glossary
http://www.ti.com provides a Battery Glossary on the Battery Management FAQ page and the TI Glossary.
Related Documentation from Texas Instruments
To obtain a copy of any of the following TI documents, click on the links below:
The bq34210-Q1 fuel gauge incorporates gas gauging and an End-of-Service (EOS) Determination
function to use with a 1-series Li-Ion or Lithium Iron Phosphate (LiFePO4) rechargeable cell or a Nickel
metal hydride (NiMH) based pack with a configuration of 3-series cells.
The gas gauge uses Compensated End-of-Discharge Voltage (CEDV) gauging technology to accurately
predict the battery capacity and other operational characteristics of the battery. It can be interrogated by a
system processor to provide cell information, such as remaining capacity, full charge capacity (FCC), timeto-empty (TTE), and relative state-of-charge (RSOC), and provide an interrupt signal to the processor.
The integrated EOS Determination function is specifically intended for applications where the battery is
rarely discharged, such as eCall systems, uninterruptible power supplies (UPS), enterprise server backup
systems, and telematics or telecommunications backup modules. In such systems, the battery may remain
in a fully (or near fully) charged state for much of its lifetime, with it rarely or never undergoing a significant
discharge. If the health of the battery in such a system is not monitored regularly, then it may degrade
beyond the level required for a system backup/discharge event, and thus fail precisely at the time when it
is needed most. Monitoring the battery enables the system to take action before the failure occurs.
The EOS Determination function monitors the health of the battery by using infrequent learning phases,
which involve a controlled discharge of ~1% capacity, and provides an alert to the system when the
battery is approaching the end of its usable service. By coordinating battery charging with the learning
phases, the battery capacity available to the system can be maintained above a preselected level to avoid
compromising the ability for the battery to support a system discharge event.
Information is accessed through a series of commands, called Data Commands, and indicated by the
general format Command(). Read and write information within the device control and status registers, as
well as its data memory locations are accessed through these commands. Commands are sent from the
system to the gauge using the I2C serial communications engine, and can be run during application
development, system manufacturing, or end-equipment operation.
The fuel gauge measures charge and discharge activity by monitoring the voltage across a small-value
series sense resistor (5 mΩ to 20 mΩ, typical), which may be used in a low-side (at the CELL- connection)
or a high-side (at the CELL+ connection) configuration.
The external temperature sensing is optimized with the use of a high-accuracy negative temperature
coefficient (NTC) thermistor with 25°C resistance (R25) = 10.0 kΩ ±1% and beta value (B25/85, resistance
at 25°C and at 85°C) = 3435 kΩ ± 1% (such as Semitec NTC 103AT). Alternatively, the fuel gauge can be
configured to use its internal temperature sensor or receive temperature data from the host processor.
The fuel gauge uses temperature to monitor the battery-pack environment, which is used for gas gauging
and cell protection functionality.
To minimize power consumption, the fuel gauge has several power modes: INITIALIZATION, NORMAL,
SLEEP, and SHUTDOWN. The fuel gauge passes automatically between these modes (except for
SHUTDOWN exit, which needs an external stimulus), depending upon the occurrence of specific events,
though a system processor can initiate some of these modes directly. The device also includes a CONFIG
UPDATE mode, which is generally used during initial setup to update various RAM-based parameters
used by the gauge.
1.1Gas Gauging
The bq34210-Q1 device features the Compensated End-of-Discharge Voltage (CEDV) gauging algorithm,
capable of gauging a maximum capacity of 32 Ah.
Figure 1-1 shows the operational overview of the bq34210-Q1 fuel gauge.
The bq34210-Q1 device accumulates the measured quantities of charge and discharge and estimates
self-discharge of the battery. The bq34210-Q1 device compensates the charge current measurement for
temperature and the state-of-charge of the battery. The device also adjusts the self-discharge estimation
based on temperature. The initial battery state-of-charge estimation on first insertion of the battery pack in
the system may display a factor of the true value; the system must go through a full charge and then a full
discharge cycle before the correct full-charge capacity (FCC) is estimated.
The main charge counter, RemainingCapacity() (RC) register, represents the available capacity or energy
in the battery at any given time. The bq34210-Q1 device adjusts RC for charge, self-discharge, and other
compensation factors. The information in the RC register is accessible through the I2C interface. The
FullChargeCapacity() (FCC) register represents the initial or last measured full discharge of the battery. It
is used as the battery full-charge reference for relative capacity indication. FCC is accessible through the
I2C interface.
1.1.2 Main Fuel Gauge Registers
Remaining Capacity (RC) — Remaining capacity in the battery
Figure 1-1. bq34210-Q1 CEDV Gas Gauging Operational Overview
RC represents the remaining capacity in the battery. The bq34210-Q1 device computes RC in units
of mAh.
RC counts up during charge to a maximum value of FCC and down during discharge and selfdischarge to a minimum of 0. In addition to charge and self-discharge compensation, the bq34210Q1 device calibrates RC at three low-battery-voltage thresholds, EDV2, EDV1, and EDV0. This
provides a voltage-based calibration to the RC counter.
8
Design Capacity (DC) — User-specified battery full capacity
DC is the user-specified battery full capacity. It is calculated from Design Capacity mAh and is
represented in units of mAh. It also represents the full-battery reference for the absolute display
mode.
Full Charge Capacity (FCC) — Last measured discharge capacity of the battery
FCC is the last measured discharge capacity of the battery. It is represented in units of mAh. On
initialization, the bq34210-Q1 device sets FullChargeCapacity() to the data memory value stored in
Full Charge Capacity (FCC). During subsequent discharges, the bq34210-Q1 device updates
FullChargeCapacity() with the last measured discharge capacity of the battery. Once updated, thebq34210-Q1 device writes the new FullChargeCapacity() value to data memory in mAh to Learned
Full Charge Capacity. FullChargeCapacity() represents the full battery reference for the relative
display mode and relative state-of-charge calculations.
1.1.3 Capacity Learning (FCC Update)
An FCC update occurs if the battery discharges from RC ≥ FCC – Near Full to the EDV2 voltage
threshold with the following conditions:
•No valid charge activity occurs during the discharge period. A valid charge is defined as a charge of
10 mAh into the battery.
•No more than 256 mAh of self-discharge or battery load estimation occurs during the discharge period.
•The temperature does not drop below the low temperature thresholds programmed in Low Temp
during the discharge period.
•The battery voltage reaches the EDV2 threshold during the discharge period and the voltage is greater
than or equal to the EDV2 threshold minus 256 mV when the bq34210-Q1 device detected EDV2.
•Current remains ≥ 3C/32 when EDV2 is reached.
•No overload condition exists when EDV2 threshold is reached or if RC has dropped to
Battery Low % × FCC.
The bq34210-Q1 device sets [VDQ] = 1 in OperationStatus() when a discharge begins. The bq34210-Q1
device sets [VDQ] = 0 if any disqualifying condition occurs. One complication may arise regarding the
state of [VDQ] if [CSYNC] is set in CEDV Gauging Configuration. When [CSYNC] is enabled,
RemainingCapacity() is written to equal FullChargeCapacity() on valid primary charge termination. This
capacity synchronization is done even if the condition RC ≥ FCC – Near Full is not satisfied at charge
termination.
FCC cannot be reduced by more than 256 mAh or increased by more than 512 mAh during any single
update cycle. If [FCC_LIMIT] is set in CEDV Gauging Configuration, then FCC cannot learn above the
Design Capacity mAh. The bq34210-Q1 device saves the new FCC value to the data memory within 4 s
of being updated.
Gas Gauging
1.1.4 End-of-Discharge (EDV) Thresholds and Capacity Correction
The bq34210-Q1 device monitors the battery for three low-voltage thresholds: EDV0, EDV1, and EDV2.
If the [EDV_CMP] bit in CEDV Gauging Configuration is clear, fixed EDV thresholds may be
programmed in Fixed EDV0, Fixed EDV1, and Fixed EDV2 in mV.
If the [EDV_CMP] bit in CEDV Gauging Configuration is set, automatic EDV compensation is enabled
and the bq34210-Q1 device computes the EDV0, EDV1, and EDV2 thresholds based on values stored in
the selected CEDV profile in data memory and the battery's current discharge rate and temperature. If the
[FIXED_EDV0] bit in CEDV Gauging Configuration is also set, then the EDV0 threshold will be set to the
programmed Fixed EDV0, and the EDV1 and EDV2 compensated thresholds will not go below the
programmed Fixed EDV0.
The bq34210-Q1 device disables EDV detection if current exceeds the Overload Current threshold. The
bq34210-Q1 device resumes EDV threshold detection after current drops below the Overload Current
threshold. Any EDV threshold detected is reset after charge is applied and [VDQ] is cleared after 10 mAh
of charge.
The bq34210-Q1 device uses the EDV thresholds to apply voltage-based corrections to the RC register
(see Table 1-1).
The bq34210-Q1 device performs EDV-based RC adjustments with current ≥ C/32. No EDVs are set if
current < C/32. The bq34210-Q1 device adjusts RC as it detects each threshold. If the voltage threshold is
reached before the corresponding capacity on discharge, the bq34210-Q1 device reduces RC to the
appropriate amount, as shown in Table 1-1.
If an RC % level is reached on discharge before the voltage reaches the corresponding threshold, then
RC is held at that % level until the threshold is reached. RC is only held if [VDQ] = 1, indicating a valid
learning cycle is in progress. If Battery Low % is set to 0, EDV1 and EDV0 corrections are disabled.
1.1.5 EDV Discharge Rate and Temperature Compensation
If EDV compensation is enabled, the bq34210-Q1 device calculates battery voltage to determine EDV0,
EDV1, and EDV2 thresholds as a function of battery capacity, temperature, and discharge load. The
general equation for EDV0, EDV1, and EDV2 calculation is as follows:
EDV0,1,2 = n (EMF × FBL – |I
•EMF is a no-load cell voltage higher than the highest cell EDV threshold computed. EMF is
programmed in mV in the CEDV profile EMF.
•I
is the current discharge load magnitude.
LOAD
•n = the number of series cells. In the bq34210-Q1 case, n = 1.
•FBL is the factor that adjusts the EDV voltage for battery capacity and temperature to match the noload characteristics of the battery.
FBL = f (C0, C + C1, T)(2)
•C (either 0%, 3%, or Battery Low % for EDV0, EDV1, and EDV2, respectively) and C0 are the
capacity-related EDV adjustment factors. C0 is programmed in the CEDV profile C0. C1 is the desired
residual battery capacity remaining at EDV0 (RC = 0). The C1 factor is stored in the CEDV profile C1.
•T is the current temperature in °K.
•R0 × FTZ represents the resistance of a cell as a function of temperature and capacity.
FTZ = f (R1, T0, C + C1, TC)(3)
•R0 is the first order rate dependency factor stored in the CEDV profile R0.
•T is the current temperature; C is the battery capacity relating to EDV0, EDV1, and EDV2.
•R1 adjusts the variation of impedance with battery capacity. R1 is programmed in the CEDV profile R1.
•T0 adjusts the variation of impedance with battery temperature. T0 is programmed in the CEDV profile
T0.
•TC adjusts the variation of impedance for cold temperatures (T < 23°C). TC is programmed in the
CEDV profile TC.
The graphs below show the calculated EDV0, EDV1, and EDV2 thresholds versus capacity using the
typical compensation values for different temperatures and loads for a Li-Ion 18650 cell. The
compensation values vary widely for different cell types and manufacturers and must be matched exactly
to the unique characteristics for optimal performance.
Figure 1-2. (a) EDV Calculations vs Capacity for Various Temperatures, (b) EDV Calculations vs Capacity
for Various Loads
1.1.6 EDV Age Factor
The EDV Age Factor enables the bq34210-Q1 device to correct the EDV detection algorithm to
compensate for cell aging. This parameter scales cell impedances as the cycle count increases. This new
factor is used to accommodate for much higher impedances observed in larger capacity and/or aged cells.
For most applications, the default value of 0 is sufficient; however, for some very specific applications, this
new aging factor may be required. In those cases, experimental data must be taken at the 0, 100, 200,
and 300 cycle-read points using a typical discharge rate while at ambient temperature. Entering this data
into a TI provided MathCAD™ program will yield the appropriate EDV Age factor value. Contact TI
Applications Support @ http://www-k.ext.ti.com/sc/technical-support/email-tech-support.asp?AAP for more
detailed information.
1.1.7 Self-Discharge
The bq34210-Q1 device estimates the self-discharge of the battery to maintain an accurate measure of
the battery capacity during periods of inactivity. The bq34210-Q1 device makes self-discharge
adjustments to RC every 1/4 second when awake and periodically when in SLEEP mode. The period is
determined by Sleep Current Time.
The nominal self-discharge rate, %PERDAY (% per day), is programmed in an 8-bit value Self-DischargeRate by the following relation:
Self-Discharge Rate = %PERDAY/0.0025
1.1.8 Battery Electronic Load Compensation
The bq34210-Q1 device can be configured to compensate for a constant load (as from battery electronics)
present in the battery pack at all times. The bq34210-Q1 device applies the compensation continuously
when the charge or discharge is below the digital filter. The bq34210-Q1 device applies the compensation
in addition to self-discharge. The compensation occurs at a rate determined by the value stored in
Electronics Load. The compensation range is 0 μA–765 μA in steps of approximately 3 µA.
The amount of internal battery electronics load estimate in μA, BEL, is stored as follows:
Electronics Load = BEL/3
The bq34210-Q1 device estimates the initial capacity of a battery pack at device reset, which is the case
when battery cells are first attached to the application circuit. The initial FullChargeCapacity() (FCC) is a
direct copy of the ROM CEDV profile parameter Full Charge Capacity. The initial RC and RSOC are
estimated using the open-circuit voltage (OCV) characteristics of the programmed Li-Ion (LiFePO4 or
NiMH) chemistry, DOD at EDV2, and Design Capacity (maximum chemical capacity). This gives a
reasonably accurate RC and RSOC; however, battery capacity learning is required in order to find the
accurate FCC, RC, and RSOC. During battery capacity learning, learned Full Charge Capacity, and DOD
at EDV2 will be learned and updated.
The determined value of remaining capacity can be further scaled, if needed, through the value of
RemCap Init Percent. Upon a reset, the final value of RemainingCapacity() is initialized from the
RemCap Init Percent value of the initial value correlated to the battery voltage table.
1.1.10 Fuel Gauge Operating Modes
Entry and exit of each mode is controlled by data memory parameters in the Current Thresholds
subclass. The [DSG] flag referenced below is from the MAC GaugingStatus() subcommand and is set in
RELAXATION and DISCHARGE modes. The [DSG] flag in BatteryStatus() is slightly different—it sets only
in DISCHARGE mode and not in RELAXATION mode.
CHARGE mode is exited and RELAXATION mode is entered when Current() goes below Quit Current for
a period of Charge Relax Time. DISCHARGE mode is entered when Current() goes below
(–)Dsg Current Threshold. DISCHARGE mode is exited and RELAXATION mode is entered when
Current() goes above (–)Quit Current threshold for a period of Discharge Relax Time. CHARGE mode is
entered when Current() goes above Chg Current Threshold.
The bq34210-Q1 device has the ability to smooth the RemainingCapacity() during discharge in order to
avoid a drop in RelativeStateOfCharge() when the EDV thresholds are reached. This feature is enabled by
setting the Smoothing Config [SMEN] = 1 and configuring the Smoothing Start Voltage and
Smoothing Delta Voltage.
The smoothing will activate only when all of the following conditions are true:
•Current() < 0
•Voltage() < Smoothing Start Voltage
•EDV2 has been reached ([EDV2] = 1) OR (Voltage() – present EDV2 threshold) < Smoothing DeltaVoltage.
•Maximum Voltage() during the previous one minute is less than the maximum Voltage() during the
current minute (that is, "drop rate" is greater than 0).
•RemainingCapacity() is greater than the capacity at the next EDV point.
While smoothing is active, the "drop rate" is used to estimate the time to the EDV point under the
assumption that the rate is constant (linear). This information is then used to estimate how much current
would need to be applied in order to have RemainingCapacity() reach the expected capacity at the EDV
point. The actual Current() is then scaled by the "smoothing current." This will either speed up or slow
down the RemainingCapacity() accumulation to reach the EDV threshold at the correct time.
Whenever the RemainingCapacity() accumulation is actively scaled, the OperationStatus()[SMTH] bit will
be set.
Smoothing deactivates whenever an EDV threshold is reached until the rate to the next EDV threshold
can be calculated; however, smoothing past the EDV2 point only occurs if Smoothing Config [SMEXT] is
set to 1.
To improve smoothing at the end of discharge, the SME0 configuration bit provides additional flexibility.
This is particularly useful when FIXED_EDV0 is set and the calculated EDV2/EDV1 is lower than EDV0. In
this scenario, the State-of-Charge (SOC) smooths to EDV2, then to EDV1, and then to EDV0, leading to
SOC jumps. If the SME0 bit is set, then the SOC smooths directly to EDV0, leading to a smooth transition
to empty.
Table 1-2 shows the available smoothing configurations.
Gas Gauging
Smoothing Config
[SMEN]
000No Smoothing
001No Smoothing
010No Smoothing
011No Smoothing
100Smoothing to EDV2
101Smoothing to EDV0 if calculated EDV2/EDV1 is less than EDV0.
110Smoothing to EDV2 ≥ EDV1 ≥ EDV0
111Smoothing to EDV0 if calculated EDV2/EDV1 is less than EDV0.
Smoothing Config
The bq34210-Q1 device can also add smoothing during charging. In situations when the FCC is not
updated during a discharge cycle or on a subsequent charge cycle, if the valid charge termination is
reached, RSOC is synced to 100% regardless of the true RSOC. To help in scenarios like these, the
device enables the SMOOTHEOC_EN bit (default is enabled). When enabled, the RSOC value is
gradually increased to 100% instead of a sudden jump if the following are true:
a. Battery is charging.
b. Cell Voltage > Taper Voltage
c. Charge Current is decreasing AND is below the EOC Smooth Current threshold for EOC Smooth
The bq34210-Q1 device integrates an Accumulated Charge function that measures the integrated
charge passed in or out of the cell since the integration is reset. This function can be used to generate an
alert to the host when a programmable threshold of Accumulated Charge is achieved.
The device also integrates the elapsed time since the integration began, assuming the timer was not
interrupted by a power cycle or put into SHUTDOWN mode. This time is read using the command
AccumulatedTime(). If an event has occurred that interrupted the timer, the value of AccumulatedTime()
will be fixed unchanging at 0 until the integration is reset.
The charge and time integration is reset at full charge termination or upon issue of the ACCUM_RESET
command. While the battery is discharging (that is, the measured Current() is negative), then the charge
integration counter increases. If the battery starts charging (that is, the measured Current() is positive),
then the charge integration counter decreases. The integrated charge value in mAh can be read by the
host using the command AccumulatedCharge(). The elapsed time (which does not decrease in value) is
read by issuing the AccumulatedTime() command.
The Accumulated Charge calculation uses the current measured across the sense resistor and, similar to
the coulomb counter integration, ignores currents below a programmed level controlled by CC Deadband.
In periods when the bq34210-Q1 device is in SLEEP mode, the Accumulated Charge integration
includes an estimate of the charge integrated based on analysis of the periodic measured current.
If the user prefers to include cell self-discharge in the integration, this capability can be enabled or
disabled using the [IGNORE_SD_EN] configuration bit.
The charge integration can also be limited to only include positive (charging) currents, only negative
(discharging) currents, or both, through setting the [ACCHG_EN] and [ACDSG_EN] configuration bits. If
both [ACCHG_EN] and [ACDSG_EN] are reset, then the timer is halted. These bits can be set using the
ACCUM_CHG_EN() and ACCUM_DSG_EN() commands.
When the cell is fully charged and the FC bit is set due to normal charge termination, then the integration
counter is again reset. At this point, the values of Accumulated Charge and time just before reset are
stored and can be read using LastAccumulatedCharge() and LastAccumulatedTime(). The values stored
in LastAccumulatedCharge() and LastAccumulatedTime() are cleared each time the command is issued
and the respective value is read. They are also overwritten whenever the integration counter is reset
again. The user can set thresholds to alert the host when AccumulatedCharge() reaches a particular level
in both the charge (positive) and discharge (negative) directions. These thresholds are set by AccumCharge Positive Threshold and Accum Charge Negative Threshold.
www.ti.com
Due to the charge integration and timer information being stored in RAM, any the device's power cycles or
putting the device into SHUTDOWN will result in the loss of AccumulatedCharge(), AccumulatedTime(),
LastAccumulatedCharge(), and LastAccumulatedTime() data.
AccumulatedCharge()RSigned integer, 2 bytes–32767327670mAh
LastAccumulatedCharge()RSigned integer, 2 bytes–32767327670mAh
AccumulatedTime()RUnsigned integer, 2 bytes06553505 min
LastAccumulatedTime()RUnsigned integer, 2 bytes06553505 min
ACCUM_RESETWBooleanNANANA
14
General Description
NOTE: AccumulatedCharge() does not reset when a threshold is reached: The reset should be
initiated by the host using ACCUM_RESET. When a threshold is passed, a flag is set in
OperationStatus()[ACTHR].
It is possible for the integration counter to be reset at normal charge termination, but the
charger continues charging the battery for additional time until the charger ceases charging.
In this case, the integration counter would reset, then proceed to integrate this additional
charge. The user should be aware of this possibility and if it is a concern to plan for a
workaround, such as programming the integration to only accumulate discharging currents or
to detect when the charger stops charging, then issue an ACCUM_RESET command to
clear any residual charging integration.
The bq34210-Q1 device incorporates the End-of-Service (EOS) Determination function to determine the
end of useful service of the battery and to provide alerts based on this detection. Learning phases are
used to gather information about the present state of the battery through its cell resistance. Learning
cycles are coordinated by the bq34210-Q1 device with the host, which enables and disables the learning
load. LEN or LLEN is used to denote the Learning Load Enable function. The EOS Determination function
is enabled when [EOS_EN] in ManufacturingStatus() = 1. This bit can be toggled using the EOS_EN()
subcommand. The ManufacturingStatus[EOS_EN] bit should not be written directly during CONFIG
UPDATE mode, but instead should be done via the EOS_EN() subcommand. If the [EOS_EN] bit or other
data memory values related to this function are changed directly in data memory, they will not take effect
until a device reset is issued.
For best results, it is recommended that JEITA-based charging is not enabled when the EOS
Determination feature is used.
There are two ways to initiate a learning phase:
a. To have it automatically controlled by the device (recommended) based on when the internal Auto
Learn Time timer has expired since the last successful learning phase OR
b. To have it triggered by the host by writing a ManufacturerAccessControl() EOS_START_LEARN()
subcommand to the device.
Automatic learning is disabled if Auto Learn Time = 0. There is also a special test mode, which is entered
using the [LTEST] bit and sets several timers to short time durations.
The learning phase can be implemented in two ways, which are controlled by the [LSM] bit:
a. CHARGE-BEFORE-DISCHARGE: The system begins a Learn Charge Phase where it enables
charging to a voltage given by the charging voltage determined by the selected algorithm (JEITA, for
example) incremented by Learn Charge Voltage Delta. This increases charging from the level used
when not in a learning phase.
End-Of-Service Determination
NOTE: The data memory value of Last Charge Voltage Tx - Ty is not increased due to this Learn
Charge Phase.
After this charging is completed through normal charge termination, the device waits for the cell to
relax. It then initiates a Learn Discharge Phase, whereby an intended Learn Discharge Current is
enabled for a length of time given by Learn Discharge Time. When this time has expired, the device
disables the Learn Discharge Current. The bq34210-Q1 device analyzes the response of the battery
to this discharge current to estimate the status of the battery regarding its end of usable service.
If needed, the host continues discharging the battery until Voltage() reaches the appropriate voltage,
as determined by the charging algorithm selected, OR
b. DISCHARGE-BEFORE-CHARGE: The device begins by ensuring it is in a RELAXED state (typically
fully or near-fully charged).
The device begins a Learn Discharge Phase by enabling Learn Discharge Current for a length of
time given by Learn Discharge Time. When this time has expired, the device disables the LearnDischarge Current.
The device can now be recharged to the appropriate voltage, as determined by the charging algorithm
selected, if needed.
NOTE: The learning discharge current value is set by external components and is not directly
controlled by the bq34210-Q1 device. However, this current is monitored throughout the
Learn Discharge Phase and evaluated to ensure it is close to the intended value.
The CHARGE-BEFORE-DISCHARGE approach described above in (a) is appealing in that the battery
voltage is not discharged below the appropriate charging voltage level by the learning phase. However, it
requires the use of a charger with programmable charging voltage, which may be a limitation in some
systems. For those cases, the DISCHARGE-BEFORE-CHARGE approach in (b) is provided, whereby a
charger with a fixed output voltage can be used with the tradeoff that the battery voltage will be
discharged below this level during the Learn Discharge Phase. However, the amount of this reduction in
battery voltage, and thus capacity, can be controlled and limited to acceptable levels through appropriate
device settings.
The response of the battery to the learning discharge current is analyzed and used to estimate the cell
resistance, Rcell, and this resistance estimate is used in two different methods to evaluate the cell EOS
status:
a. Direct Resistance Decisioning (DRD): This method uses the newly measured value of Rcell and
computes the ratio of Rcell with that of an Initial Rcell captured when the battery was first put into
service. The ratios are compared to thresholds to generate an alert and a warning.
•Alert if (Rcell/Initial Rcell) > DRD Alert Level
•Warning if (Rcell/Initial Rcell) > DRD Warning Level
b. Resistance Slope Decisioning: This method uses the changes with respect to time of Rcell,
comparing this to programmable thresholds to generate an alert and a warning.
Use of Resistance Slope Decisioning (RSD) requires an accurate measurement of the time between
consecutive learning phases for calculation of the slope of Rcell change with respect to time. This will not
be possible if the device is powered off between learning phases; in which case, Direct Resistance
Decisioning (DRD) can still be used. If the device is programmed to use Resistance Slope Decisioning
and a power cycle is detected (or anything that could impact the validity of the time measurement between
learning phases), then the device defaults to only using Direct Resistance Decisioning until the device is
continuously powered long enough to complete multiple learning phases and accurately evaluate the
Rcell change over time.
www.ti.com
1.3.1 Alert Config Registers
The Alert registers are detailed in this section.
Alert_x Config RegisterMatching Register
Alert_0 ConfigBattery Status Low Byte
Alert_1 ConfigBattery Status High Byte
Alert_2 ConfigEOS Learn Status Low Byte
Alert_3 ConfigEOS Learn Status High Byte
Alert_4 ConfigEOS Status
Alert_5 ConfigEOS Safety Status Active Bits
Alert_6 ConfigOperation Status 2 bits
1.3.1.1Alert_0 Config
This register matches the Battery Status register low byte.
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
SLEEPCHGINHFDFCSETVTCATDACHGDSG
Default
00000000
Table 1-3. Alert Config Registers
Table 1-4. Alert_0 Config Register Bit Definitions
This register matches the EOS Safety Status register active bits. Bits 7:4 in the Alert_5 Config register
match the EOS Safety Status register's high byte, Bits 3:0. Bits 3:0 in the Alert_5 Config register match
the EOS Safety Status register's low byte, Bits 3:0.
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
RSVDRSDLWARN RSDWARNDRDWARNRSVD
Default
00000000
1 = Enabled
0 = Disabled (default)
1 = Enabled
0 = Disabled (default)
1 = Enabled
0 = Disabled (default)
1 = Enabled
0 = Disabled (default)
1 = Enabled
Table 1-9. Alert_5 Config Register Bit Definitions
0x00
RSDL
ALERT
www.ti.com
RSDALERT DRDALERT
RSVD = Reserved
RSDLWARN = Enables EOSSafetyStatus()[RSDLWARN]
RSDWARN = Enables EOSSafetyStatus()[RSDWARN]
DRDWARN = Enables EOSSafetyStatus()[DRDWARN]
RSVD = Reserved
RSDLALERT = Enables EOSSafetyStatus()[RSDLALERT]
RSDALERT = Enables EOSSafetyStatus()[RSDALERT]
DRDALERT = Enables EOSLearnStatus()[DRDALERT]
1.3.1.7Alert_6 Config
This register matches two bits from the Operation Status low byte.
Auto Learn Time = 10 min
Auto Learn Retry Time = 5 min
Alert-Warn Learn Time = 10 min
Minimum Learn Time = 10 min
0 = The device uses the values programmed in data memory for the above parameters
(default).
LVR = Learn Voltage Restore Control
This bit determines whether the device continues discharging during Learn Discharge Phase
until Voltage() reaches the appropriate Last Charge Voltage Tx - Ty (when set = 1), or to
simply stop discharge when the timer reaches Learn Discharge Time (when set = 0).
1 = The device continues Learn Discharge Phase until Voltage() reaches the appropriate
Last Charge Voltage Tx - Ty.
0 = The device stops Learn Discharge Phase when the timer reaches Learn Discharge
Time (default).
LSM = Learn Sequence Mode Control
This bit determines whether the EOS algorithm uses CHARGE-BEFORE-DISCHARGE or
DISCHARGE-BEFORE-CHARGE mode.
1 = DISCHARGE-BEFORE-CHARGE mode is used.
0 = CHARGE-BEFORE-DISCHARGE mode is used (default).
The device includes a variety of flags to provide visibility into the operation of the EOS Determination
Learning process. These are found in EOSLearnStatus(): 0x64 and 0x65.
The sequence of steps involved in a learning phase differs depending on the setting of [LSM]. These are
depicted in the following figures.
For manual control of learning phases, the ManufacturerAccessControl() subcommand
EOS_START_LEARN() is used. When the device receives this command, it sets the [LCMD] flag and
initiates the learning phase if conditions permit: for example, charger present, no charging or safety faults,
and the temperature is within acceptable limits. The [LDPAT] and [LFAULT] flags will be set if the Learning
Discharge Phase is attempted but temperature conditions do not permit it.
If the device is in periodic (automatic) learning mode, then the [LPER] bit will be set while the device is in
a learning phase.
EOS_ABORT_LEARN(): This ManufacturerAccessControl() subcommand is used to abort a learning
phase that is in progress. Use of this command during a learning phase results in a failed learning phase
and setting the [LABRT] flag, whereupon the device will retry another learning phase after a time period of
Auto Learn Retry Time.
When the device attempts to initiate a learning phase, but conditions do not permit this, then the device
will wait for Auto Learn Retry Time to again attempt a learning phase. Note that this will occur whether
the device is configured in periodic learning or learning is initiated through a host command.
If the case occurs where an alert or warning is detected, either through Direct Resistance Decisioning or
Resistance Slope Decisioning, the Alert-Warn Learn Time is used to schedule a new learning phase. If
multiple fault events must be detected before the alert or warning flags are set, and an stopped learning
phase occurs after the first alert or warning is detected, then Alert-Warn Learn Time is used to schedule
future Rcell measurements rather than Auto Learn Retry Time.
End-Of-Service Determination
NOTE: If [LTEST] is set, special values override the selected timer values to facilitate device
operation testing in a shorter time scale.
To avoid interruption to the EOS Determination measurements and calculations, automatic offset
calibration is not initiated during a learning phase. While it is possible for the host to manually initiate a
calibration event during a learning phase, it is recommended that the host avoid this.
NOTE:Alert-Warn Learn Time has priority over Auto Learn Retry Time, so if multiple
occurrences must be detected before an alert or warning is triggered, and after the first
occurrence is detected that a fault occurred that invalidated a following attempted learning
phase, the Alert-Warn Learn Time will be used to determine the time to the next learning
phase attempt. It should also be noted that if Alert-Warn Learn Time is set to be lower than
Minimum Learn Time, then Minimum Learn Time will be used to determine the time to the
next learning phase attempt.
The operation of the device is first described for the case of [LSM] = 0, in which the device uses
CHARGE-BEFORE-DISCHARGE mode. In this mode, the device first enters Learn Charge Phase by
setting ChargingVoltage() to the appropriate charging voltage determined by the selected charging
algorithm (JEITA, for example) incremented by Learn Charge Voltage Delta. The [LCHG] flag is set and
charge terminates using standard charge termination criteria. Upon termination of charge, then [LCHG] is
cleared. Note that the data memory value of Last Charge Voltage Tx - Ty is not incremented due to this
Learn Charge Phase.
The time while [LCHG] is set is measured and compared against a threshold given by Learn ChargeTime Limit to identify an excessive charging time, which may indicate an issue in the system. When the
learn charging time exceeds this limit, the [LCTO] flag is set, learning is terminated, and the [LFAULT] flag
is set to indicate a fault has occurred. The [LCHG] flag is reset whenever the device exits from
CHARGING mode. If a learning fault occurs, the status flag ([LCHG] in this case) remains set to enable
the host to understand what mode the system was in when the fault occurred.
NOTE: The standard charge termination criteria voltage condition is relative to ChargingVoltage(), so
the same settings are used for Normal and Learn charging phases.
1.3.3.3Learn Pre-Relax Phase
If [LSM] = 0, then the device next waits for relaxation of the cell, during which Voltage() is monitored for
100-s time windows. While in this phase, the device sets the [LRLX] flag. If the change in the consecutive
100-s averages of Voltage() is less than 4 µV, then relaxation is deemed achieved. If not, the device
continues monitoring for another 100-s time window. It is important that the cell be fully relaxed before the
algorithm can continue onto the Learn Discharge Phase. The status of relaxation can be seen by the
[REST] bit in the Gauging Status register, after which the algorithm can move onto the Learn Discharge
Phase. If a learning fault occurs while in the Learn Pre-Relax Phase or the Learn Post-Relax Phase, the
status flag ([LRLX] in this case) will remain set to enable the host to understand what mode the system
was in when the fault occurred.
When the device is in learning mode (but not in the Learn Discharge Phase), and a current is detected
differently than what is expected, the [LUCD] bit will be set. It is set if the device is attempting to charge or
relax, and a discharge current in excess of Discharge Detection Threshold is detected. It is also set if
the device is in a RELAXATION mode and a charging current in excess of Charge Detection Threshold
is detected. This detection also terminates the learning phase, and this flag will remain set so the host can
recognize why the learning phase was stopped. This bit will be reset to 0 when charging is terminated or
the register is read.
www.ti.com
1.3.3.4Learn Discharge Phase
After achieving relaxation, the bq34210-Q1 device next enters the Learn Discharge Phase, whereby the
device enables the Learn Discharge Current (depending on the [LENCTL] setting), sets the [LDSG] flag,
and begins the timer.
External circuitry is required to actively discharge the battery at a constant current rate where the
discharge current flows through the sense resistor connected across SRP – SRN. This will be
implemented by the host directly controlling the current. To provide sufficient resolution in the associated
calculations, it is important that the level of this Learn Discharge Current be large enough so that it
generates a cell voltage change of approximately 5 mV or greater. A current level of C/20 or higher is
generally recommended.
[LDSG] remains enabled until the timer reaches Learn Discharge Time, at which point (if [LVR] = 0) the
[LDSG] flag is reset and Learn Discharge Current is disabled. The device then transitions into the Learn
Post-Relax Phase.
The [LVR] (Learn Voltage Restore) bit is used to tell the device to resume discharging using the learning
load after completion of the voltage determined by the charging algorithm selected until Voltage() reaches
the appropriate voltage determined by the charging algorithm selected (when [LVR] is set = 1). When this
is finished (or when the Learn Post-Relax Phase is complete, if [LVR] is set = 0), the entire learning phase
is complete, at which point the device sets the [LDONE] flag.
During the time period while the timer is active for the Learn Discharge Time period, the average current
and average temperature over this time period will be calculated by the device and saved at the
conclusion of the Learn Discharge Phase. These values are used in later calculations to provide better
accuracy.
While the device is in Learn Discharge Phase, it is also monitoring Current() and ensuring it is within an
acceptable range around the intended discharge current. The algorithm knows the intended current based
on the Learn Discharge Current, which is the intended Learn Discharge Current implemented using the
external circuitry. This current should generally be designed greater than C/20. The boundary the
algorithm uses for the acceptable range is determined using the Learn Discharge Current Boundary. If
the current exceeds the Learn Discharge Current Boundary, the [LDPAI] and [LFAULT] flags are set,
and the learning phase is stopped. If a learning fault does occur, the status flag ([LDSG] in this case) will
remain set to allow the host to understand what mode the system was in when the fault occurred.
The value of Learn Discharge Current should be selected large enough to accept variations in the
current with temperature and system noise, but low enough to ensure identification of other events, such
as an unintended charging session starting or a system load discharge event beginning. The Learn
Discharge Current should also be chosen well above the Discharge Detection Threshold and Quit
Current to ensure proper operation.
End-Of-Service Determination
NOTE: After setting [LDSG], the device will monitor Current() for up to Learn Request Timeout
seconds and start the timer only when the current has entered the acceptable range around
Learn Discharge Current. This will accommodate delay in the host responding to the
ALERT interrupt to see the [LCTLEDGE] signal and enable the Learn Discharge Current.
If the bq34210-Q1 device does not detect a valid current within a time period of LearnRequest Timeout after setting [LDSG], then the device will set [LFAULT], delay a time given
by Auto Learn Retry Time, and then initiate a new learning phase. The [LDSG] flag will
remain set so the host can read and determine the phase in which the fault occurred. The
Learn Request Timeout timer is similarly used after the [LCTLEDGE] signal asserts when
the host should disable the learning load.
The Learn Discharge Phase can be terminated for other criteria (beyond its intended valid termination by
persisting for the Learn Discharge Time period), including Current() exiting the acceptable range, a
safety fault is detected, or a temperature exceeds the allowed learning temperature limits. If the Learn
Discharge Phase is terminated for any reason other than valid termination, then [LFAULT] is set,
indicating that the learning phase was not completed. [LFAULT] is cleared when the learning process is
initiated again.
The Learn Discharge Phase is only allowed when the temperature is within an allowed range, which is
given by the Learn Min Temperature and Learn Max Temperature. If a Learn Discharge Phase is
attempted when the temperature is outside this allowed range, the [LDPAT] and [LFAULT] flags are set.
If the [LSM] is set = 1, then DISCHARGE-BEFORE-CHARGE mode is used, in which the operation
sequence is described below:
1. Check for relaxation by monitoring Voltage() as described above, and delay until relaxation is
achieved.
2. Enable [LDSG], enable the Learn Discharge Current, and reset the timer to begin Learn Discharge
Phase.
3. When the timer reaches Learn Discharge Time, then disable [LDSG] and Learn Discharge Current.
After the Learn Discharge Phase completes, the bq34210-Q1 device will disable the learning current and
enter the Learn Post-Relax Phase, whereby the device again waits for relaxation of the cell, during which
Voltage() is monitored for 100-s time windows. While in this phase, the device sets the [LRLX] flag. If the
change in the consecutive 100-s averages of Voltage() is less than 4 µV, then relaxation is deemed
achieved. If not, the device continues monitoring for another 100-s time window. It is important that the cell
be fully relaxed before the algorithm can continue. The status of relaxation can be seen by the [REST] bit
in the Gauging Status register. If a learning fault occurs while in the Learn Post-Relax Phase, the status
flag ([LRLX] in this case) remains set to enable the host to understand what mode the system was in
when the fault occurred.
As in the Learn Pre-Relax Phase, if a discharge current in excess of Discharge Detection Threshold or
a charging current in excess of Charge Detection Threshold is detected, then the [LUCD] flag is set.
This detection also terminates the learning phase, and this flag will remain set so the host can recognize
why the learning phase was stopped. This bit will be reset to 0 when charging is terminated or the register
is read.
At the completion of the Learn Post-Relax Phase, if in CHARGE-BEFORE-DISCHARGE mode and
Voltage() > the charging voltage determined by the selected charging algorithm and [LVR] = 1, then the
device will set [LDSG] and enable the Learn Discharge Current until Voltage() ≤ the calculated charging
voltage. At which point, [LDSG] is reset and the Learn Discharge Current is disabled. The [LRSTOR] bit
will be set while the device is continuing discharge to reach the calculated charging voltage.
If in DISCHARGE-BEFORE-CHARGE mode and [LVR] = 0, then the device will set [LDONE] and
complete learning. If [LVR] = 1, then the device will initiate a new charging session to charge the battery
back to the appropriate charging voltage determined by the selected charging algorithm using a similar
sequence as described above. In this case, the device sets the [LCHG] and [LRSTOR] flags to indicate to
the host that charging can begin. If charging does not terminate within Learn Charge Time Limit, then
[LCTO] and [LFAULT] is set. If a learning fault does occur, the status flag ([LCHG] in this case) will remain
set to allow the host to understand what mode the system was in when the fault occurred.
www.ti.com
NOTE: It is possible that a Learn Discharge Phase has completed, and a new Rcell value was
calculated and stored, but during a Voltage Restore phase, a fault could occur. This would
cause [LFAULT] to be set, and the device would retry a new learning phase after AutoLearn Retry Time.
1.3.3.6Cell Resistance Calculation
The device uses the values obtained during each learning phase to estimate a value of Rcell for the
battery. Note the actual value of this Rcell estimate is not critical here, rather its change as the battery
ages is what is important. The [LRES] bit indicates when a new Rcell value was acquired and stored by
the device.
The change in value of Rcell must be normalized relative to differences in temperature when they are
captured. Therefore, the bq34210-Q1 device uses resistance temperature parameters in Rcell High &
Low Temperature Coefficients to calculate an expected value of resistance at the Learn Target
Temperature.
The Rcell High & Low Temperature Coefficients are obtained during a preproduction test whereby the
customer initiates Initial Rcell calculations at temperatures of 5°C, 25°C, and 40°C. These Initial Rcell
values are put into a spreadsheet provided by TI, which then calculates the values of Rcell HighTemperature Coefficient and Rcell Low Temperature Coefficient. These values are then loaded into
data memory and used by the device to normalize effective Rcell measurements back to an equivalent
value at the Learn Target Temperature.