
Accumulated Charge Measurement
www.ti.com
14 SLUUBE8–September 2018
Submit Documentation Feedback
Copyright © 2018, Texas Instruments Incorporated
General Description
1.2 Accumulated Charge Measurement
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 Accum
Charge Positive Threshold and Accum Charge Negative Threshold.
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.
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.
Command R/W Type Min Max Default Units
AccumulatedCharge() R Signed integer, 2 bytes –32767 32767 0 mAh
LastAccumulatedCharge() R Signed integer, 2 bytes –32767 32767 0 mAh
AccumulatedTime() R Unsigned integer, 2 bytes 0 65535 0 5 min
LastAccumulatedTime() R Unsigned integer, 2 bytes 0 65535 0 5 min
ACCUM_RESET W Boolean NA NA NA