SLUUCP8 June 2024 BQ41Z50
The BQ41Z50 is required to be in RELAX mode before it can determine if the cells are unbalanced and how much balancing is required. The BQ41Z50 enters RELAX mode when:
|Current()|< Quit Current for at least Dsg Relax Time when coming from DISCHARGE mode or Chg Relax Time when coming from CHARGE mode.
Once in RELAX mode, the BQ41Z50 will take an OCV measurement after one of the following events occurs:
The determination of when to update the OCV data is part of the normal Dynamic Z Track™ algorithm and is not specific to the cell balancing algorithm.
The BQ41Z50 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 versus 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).
The BQ41Z50 calculates the required balancing time using dQ and Bal Time/mAh Cell 1 (for Cell 1) or Bal Time/mAh Cell 2–4 (for cells 2–4). The values of Bal Time/mAh Cell 1 and Bal Time/mAh Cell 2–4 are fixed values determined based on key system factors and are calculated by:
Internal Cell Balancing:
External Cell Balancing:
Where:
VCELL = average cell voltage (for example, 3700 mV for most chemistries)
RVCx = resistor value in series to VCx input (for example, 100 Ω, based on the reference schematic)
Rcb = cell balancing FET Rdson, which is 200 Ω (Max)
DUTY = cell balancing duty cycle, which is 75% typ
The cell balancing time for each cell to be balanced is calculated by: dQCelln × Bal Time/mAh Cell 1 for Cell 1 or and dQCelln × Bal Time/mAh Cell 2–4 for Cell 2–4. 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.