SLUUCG7 April 2024 BQ76922
The BQ76922 device monitors pack current using a low-side sense resistor that connects to the SRP and SRN pins through an external RC filter, which should be connected such that a charging current will create a positive voltage on SRP relative to SRN. The device supports sense resistors of 1 mΩ or below. The differential voltage between SRP and SRN is digitized by an integrated coulomb counter ADC, which can digitize voltages over a ±200mV range and uses multiple digital filters to provide optimized measurement of the instantaneous, averaged, and integrated current. The pins can also support higher positive voltages relative to VSS, such as which may occur during overcurrent or short circuit in discharge conditions, without damage to the device, although the current is not accurately digitized in this case. Multiple digitized current values are available, including two using separate hardware digital filters, CC1 and CC2, as well as a firmware filter, CC3.
The units for the current reporting are in userA (userAmps), which can be programmed to be 0.1mA, 1mA, 10mA, or 100mA using the Settings:Configuration:DA Configuration:[USER_AMPS_1:0] configuration setting. Given the 16-bit values can range from –32768 to +32767, this allows representation of currents ranging from –3276 A to +3276 A.
USER_AMPS_1 | USER_AMPS_0 | Units for Reporting |
---|---|---|
0 | 0 | 0.1mA |
0 | 1 | 1mA |
1 | 0 | 10mA |
1 | 1 | 100mA |
The CC1 filter generates a 16-bit current measurement that is used for charge integration and other decision purposes, with one output generated every 250ms when the device is operating in NORMAL mode. The CC1 data is available from the 0x0075 DAStatus5() subcommand.
The CC2 filter generates a 24-bit current measurement that is used for current reporting, with one output every 3ms when the device is operating in NORMAL mode (which can be reduced to one output every 1.5ms when the Settings:Configuration:Power Config[FASTADC] bit is set, with reduced measurement resolution). It is reported in 16-bit format using the 0x3A CC2 Current() command. The 32-bit CC2 data is available as raw coulomb counter ADC counts from the 0x0075 DASTATUS5() subcommand (the 24-bit data is contained in the lower 3 bytes of the 32-bit data, and is sign-extended to create the upper byte).
The CC3 filter output is an average of a programmable number of CC2 current samples (up to 255), which are set using the Settings:Configuration:CC3 Samples configuration setting. The CC3 output is reported in 16-bit format using the 0x0075 DASTATUS5() subcommand. The 32-bit CC3 data is also available in units of ADC counts from the 0x0075 DASTATUS5() subcommand (the averaged data is contained in the lower bytes of the 32-bit data, and is sign-extended into the upper byte).
The integrated passed charge is available as a 64-bit value from the 0x0076 DASTATUS6() subcommand, which includes the upper 32-bits of accumulated charge in units of userAh, the lower 32-bits of accumulated charge as the fractional portion, and a 32-bit accumulated time over which the charge has been integrated in units of seconds. The accumulated charge integration and timer can be reset using the 0x0082 RESET_PASSQ() subcommand. If the device undergoes a partial reset or is reset using the RST_SHUT pin, the 0x0082 RESET_PASSQ() should be sent to ensure the charge accumulation is properly initialized.