SLUUCJ0 November 2023 BQ76907
The BQ76907 device includes optional capability for the customer to calibrate offset and gain for the cell voltage measurement, the current measurement, and the internal temperature measurement. It also supports gain calibration for the top-of-stack (TOS) voltage measurement and offset calibration for the TS pin measurement. Table 5-11 shows the calibration configuration values provided.
Name | Description |
---|---|
Calibration:Voltage:Cell 1 Gain | Cell 1 voltage gain calibration value in unsigned 16-bit format |
Calibration:Voltage:Cell 2 Gain Delta | Signed 8-bit value which is added to Cell 1 Gain to obtain the Cell 2 Gain calibration value. |
Calibration:Voltage:Cell 3 Gain Delta | Signed 8-bit value which is added to Cell 1 Gain to obtain the Cell 3 Gain calibration value. |
Calibration:Voltage:Cell 4 and 5 Gain Delta | Signed 8-bit value which is added to Cell 1 Gain to obtain the Cell 4 Gain and Cell 5 Gain calibration values. |
Calibration:Voltage:Cell 6 and 7 Gain Delta | Signed 8-bit value which is added to Cell 1 Gain to obtain the Cell 6 Gain and Cell 7 Gain calibration values. |
Calibration:Voltage:TOS Gain | Top-of-stack (TOS) voltage gain calibration value in unsigned 16-bit format |
Calibration:Current:Curr Offset | Current offset calibration value in units of signed 24-bit ADC counts (this is a 16-bit value, so only has range of +/- full-scale raw current range / 256) |
Calibration:Current:Curr Gain | Current gain calibration value in unsigned 16-bit format |
Calibration:Current:CC1 Offset | CC1 Current offset calibration value in units of signed 24-bit ADC counts (this is a 16-bit value, so only has range of +/- full-scale raw current range / 256) |
Calibration:Current:CC1 Gain | CC1 Current gain calibration value in unsigned 16-bit format |
Calibration:Temperature:TS Offset | TS measurement offset calibration value in units of signed 16-bit ADC counts. |
Calibration:Temperature:Int Temp Offset | Internal temperature offset calibration value in units of signed 16-bit ADC counts |
Calibration:Temperature:Int Temp Gain | Internal temperature gain calibration value in unsigned 16-bit format |
If the host does not overwrite values for the calibration gain or offset configurations, the BQ76907 device uses the factory trim values stored in OTP for each respective setting. When a calibration configuration value is written, the device uses that in place of the respective factory trim value.
Each cell voltage has an associated Cell # Gain value, which is used to scale the raw ADC result to convert it into units of mV. The Cell 1 Gain is stored directly in data memory, while the remaining Cell # Gain values for cells 2 - 7 are encoded as a delta value versus the Cell 1 Gain value, as shown below.
The BQ76907 uses these calibration values to calculate the reported measurements from the raw ADC data as described below.
Note that the cell gains are associated with the corresponding VC pins used when fewer than the maximum number of cells supported are used. For example, if the BQ76907 is used in a 2s pack, the device uses Cell 1 Gain for the first cell (attached to VC1-VC0) and uses Cell 7 Gain for the second cell (attached to VC7-VC6).
The cell voltage calibration is implemented by writing the Calibration:Voltage:Cell 1 Gain value to 65535 and all Calibration:Voltage:Cell # Gain Delta values to 0, then applying two precise DC voltages to a cell input (such as 2.5 V and 4.5 V) and averaging multiple raw ADC measurements in 16-bit counts obtained from the Cell # Voltage() command for each voltage. The gain is then calculated as:
The calibration for the TOS measurement gain is implemented by similarly writing the Calibration:Voltage:TOS Gain value to 16384, then applying two precise DC voltages to the VC5 pin and averaging multiple raw ADC measurements in 16-bit counts obtained from the 0x26 Stack Voltage() command. Note: one of the voltages can be skipped to reduce calibration time. The gain is then calculated as:
The calibration for the TS pin measurement offset is implemented by similarly first writing the Calibration:Temperature:TS Offset value to zero. A precise DC voltage can be applied to the TS pin, and the 16-bit ADC counts obtained from the 0x6A TS Measurement() command. The offset is then calculated as:
Although it is typically not practical in a production environment, the Internal Temperature measurement can be calibrated by first writing the Calibration:Temperature:Int Temp Gain value to 65535 and Calibration:Temperature:Int Temp Offset value to zero, then exposing the system to two precise temperatures and averaging multiple raw ADC measurements in 16-bit counts obtained from the Int Temperature() command for each temperature. The gain is then calculated as:
The offset for the Internal Temperature measurement is calculated using this new value of Calibration:Temperature:Int Temp Gain as shown below:
The 0x3A Current() current measurement can be calibrated by applying two precise DC currents and averaging multiple raw ADC measurements in 24-bit counts obtained from the 0x36 Raw Current() command for each current. The 0x3C CC1 Current() current measurement, which is used to calculate the charge integration data available from the 0x0004 PASSQ() command, can be calibrated by applying two precise DC currents and averaging multiple raw ADC measurements in 16-bit counts obtained from the 0x3C CC1 Current() command for each current, while the value of Calibration:Current:CC1 Gain is set to 32.
These gains are then calculated as:
then quantizing to an integer.
While a current measurement offset Calibration:Current:Curr Offset can be calculated using one of the two currents measured earlier, a more practical approach is to set the current to zero, and use the average of multiple raw ADC measurements in 24-bit counts obtained from the 0x36 Raw Current() command as Calibration:Current:Curr Offset, which uses the 16 LSBs from this calculation. The value for Calibration:Current:CC1 Offset can be obtained by setting the Calibration:Current:CC1 Gain to 32 and summing 256 samples of 0x3C CC1 Current().
A table of example gains and resulting LSB values for various sense resistor values and maximum current levels is shown below (with gains quantized to ensure support for the Max Current listed).
Rsense (μΩ) | Max Current (A) | Max Voltage (V) | Min LSB Allowed (mA) | Quantized CC1 Gain | Quantized Current Gain | Quantized CC1 LSB (mA) | Quantized Current LSB (mA) |
---|---|---|---|---|---|---|---|
5000 | 3 | 0.015000 | 0.091553 | 524 | 524 | 0.091618 | 0.091618 |
5000 | 15 | 0.075000 | 0.457764 | 104 | 104 | 0.461614 | 0.461614 |
5000 | 40 | 0.200000 | 1.220703 | 39 | 39 | 1.230970 | 1.230970 |
2000 | 10 | 0.020000 | 0.305176 | 393 | 393 | 0.305393 | 0.305393 |
2000 | 50 | 0.100000 | 1.525879 | 78 | 78 | 1.538712 | 1.538712 |
2000 | 100 | 0.200000 | 3.051758 | 39 | 39 | 3.077424 | 3.077424 |
1000 | 32.767 | 0.032767 | 0.999969 | 240 | 240 | 1.000163 | 1.000163 |
1000 | 50 | 0.050000 | 1.525879 | 157 | 157 | 1.528911 | 1.528911 |
1000 | 100 | 0.100000 | 3.051758 | 78 | 78 | 3.077424 | 3.077424 |
1000 | 200 | 0.200000 | 6.103516 | 39 | 39 | 6.154848 | 6.154848 |
500 | 32.767 | 0.016384 | 0.999969 | 480 | 480 | 1.000163 | 1.000163 |
500 | 100 | 0.050000 | 3.051758 | 157 | 157 | 3.057822 | 3.057822 |
500 | 250 | 0.125000 | 7.629395 | 62 | 62 | 7.743196 | 7.743196 |
500 | 400 | 0.200000 | 12.207031 | 39 | 39 | 12.309696 | 12.309696 |
250 | 32.767 | 0.008192 | 0.999969 | 960 | 960 | 1.000163 | 1.000163 |
250 | 100 | 0.025000 | 3.051758 | 314 | 314 | 3.057822 | 3.057822 |
250 | 250 | 0.062500 | 7.629395 | 125 | 125 | 7.681250 | 7.681250 |
250 | 800 | 0.200000 | 24.414063 | 39 | 39 | 24.619391 | 24.619391 |
100 | 32.767 | 0.003277 | 0.999969 | 2400 | 2400 | 1.000163 | 1.000163 |
100 | 100 | 0.010000 | 3.051758 | 786 | 786 | 3.053932 | 3.053932 |
100 | 200 | 0.020000 | 6.103516 | 393 | 393 | 6.107864 | 6.107864 |
100 | 327.67 | 0.032767 | 9.999695 | 240 | 240 | 10.001628 | 10.001628 |
100 | 500 | 0.050000 | 15.258789 | 157 | 157 | 15.289112 | 15.289112 |
100 | 1000 | 0.100000 | 30.517578 | 78 | 78 | 30.774239 | 30.774239 |
100 | 2000 | 0.200000 | 61.035156 | 39 | 39 | 61.548478 | 61.548478 |
50 | 32.767 | 0.001638 | 0.999969 | 4800 | 4800 | 1.000163 | 1.000163 |
50 | 100 | 0.005000 | 3.051758 | 1573 | 1573 | 3.051991 | 3.051991 |
50 | 250 | 0.012500 | 7.629395 | 629 | 629 | 7.632403 | 7.632403 |
50 | 1000 | 0.050000 | 30.517578 | 157 | 157 | 30.578225 | 30.578225 |
50 | 2000 | 0.100000 | 61.035156 | 78 | 78 | 61.548478 | 61.548478 |
50 | 4000 | 0.200000 | 122.070313 | 39 | 39 | 123.096955 | 123.096955 |
10 | 32.767 | 0.000328 | 0.999969 | 24003 | 24003 | 1.000038 | 1.000038 |
10 | 100 | 0.001000 | 3.051758 | 7865 | 7865 | 3.051991 | 3.051991 |
10 | 250 | 0.002500 | 7.629395 | 3146 | 3146 | 7.629977 | 7.629977 |
10 | 1000 | 0.010000 | 30.517578 | 786 | 786 | 30.539321 | 30.539321 |
10 | 5000 | 0.050000 | 152.587891 | 157 | 157 | 152.891123 | 152.891123 |
10 | 10000 | 0.100000 | 305.175781 | 78 | 78 | 307.742388 | 307.742388 |
10 | 20000 | 0.200000 | 610.351563 | 39 | 39 | 615.484776 | 615.484776 |