BQ76972: Cell balancing uses lowest cell to start balancing

Part Number: BQ76972

Tool/software:

Hi,

After building our LiFePO4 pack with the BQ76972 AFE we encounter a problem. Within a month a customer calls us because his pack is out of balance. This is a result of one cell staying behind. With LiFePE4 you can only balance correctly above 3400mV like you probably know. But the AFE is looking at the lowest cell. This is wrong, because a slight difference in the cells results in one or more cells dropping below 3400mV. Lowering this value will result in balancing kicking in too early, balancing on impedance differences between the cells. So, if a pack is a bit out of balance, there is no way to rebalance the pack without sending it back to the supplier (us) and for us to open up the pack, balance manually, and then hope the customer charges his pack more often. This results in high service costs and customers may loose patience and decide to use another brand.

Is there any way, other than using a MCU to balance ourselves, to get the AFE to look at the highest cell to start balancing? We know about the relax balancing function, but that does not fix large imbalance issues.

Kind regards,

Robert Jan

  • Hi Robert, I think your options are either to keep the device in autonomous balancing mode and tune the settings, or move to some manual or partially-manual balancing involving your MCU interaction.

    If you have an MCU available in system and can utilize it, you might consider using the CB_SET_LVL command, that might be a little easier than coding a full balancing algorithm in your MCU.

    Unfortunately, in autonomous mode the device always uses the lowest cell voltage as the reference for balancing any higher voltage cells.  If you set up to only balance one cell at a time, I believe it would always select the max voltage cell and balance that one.  However, that would result in fairly slow balancing of the entire pack, but is better than a return.

    Thanks,

    Terry

  • Hi Terry, thanks for your reply!

    We will have a look at the CB_SET_LVL command, seems to be the best option for us. I don't fully understand its working though. If I have 4 cells with voltages of lets say 3590, 3600, 3610 and 3620 and I send 3605, will cell 3 and 4 be balanced? And if all cells are 3650 and I send 3600 will the AFE try to balance all cells down to 3600? The desctiption states:

    > When written with a 16-bit cell voltage threshold in mV, the device begins balancing one or more of the highest voltage cells if above the written threshold.

    This does not say if this is (1) a limit balancing (all cells above this value are being discharged) or if this is (2) a lower limit to start smart balancing (tries to get all cells within X mV, only discharges cells above this value. If all cells are above within X mV it stops balancing).

    The one cell balancing theory is not written in the TRM, but may be true. Like you say, this would be slow but for low cell applications still relevant. We will try the first command option and keep this one in mind in case the command option does not work out for some reason.

    Thanks in advance, you helped us a lot already!

  • Hi Robert,

    The autonomous algorithm in the device always determines which cell is minimum, then generally tries to balance all cells down near/close to that level.  There are Cell Balance Stop Delta settings which determine how close to the minimum it tries to balance.

    The part still observes the limits related to the Min Delta and Stop Delta settings (as well as the other settings on voltage range and temp) even when you send CB_SET_LVL, so you have to see how those affect what gets balanced.

    When you send the CB_SET_LVL, that is effectively telling the device to assume the level you send is actually the minimum cell voltage.  So it will try to balance any cells that are above that level plus Cell Balance Min Delta.  The Min Delta setting should be set larger than the Stop Delta setting.

    So if your cells are  3590, 3600, 3610 and 3620, you might set Cell Balance Min Delta = 20mV, Cell Balance Stop Delta = 10mV.  Then if you send CB_SET_LVL=3603, the part won't start balancing because no cells are above 3603+Min Delta=3623.  If you send CB_SET_LVL=3599, then the part will start balancing the 3620 cell (the difference is above Min Delta), then will balance until it reaches 3609 (3599+Stop Delta).

    if you send CB_SET_LVL with an even lower level, such as 3400, then assuming other settings don't prevent it, the part would try to reduce all cells down to near 3400mV.

    The device allows you to decide how many cells (max) can be balanced simultaneously, whether you want up to 8 or 4 or only 1 (using the Cell Balance Max Cells setting).

    Thanks,

    Terry

  • Thank you very much for the explanation, we will implement this in our packs.

    Kind regards, Robert Jan