The cell balancing runs autonomously once it is configured. The cell balancing control can be configured in two ways using the BAL_CTRL2[AUTO_BAL] bit.
- Auto balancing control ([AUTO_BAL] = 1): With this method, host MCU can enable balancing on any channel. Once the host sends a [BAL_GO] = 1, balancing starts and the device will automatically duty cycle all enabled CBFETs in an odd and even manner. The duty cycle is configured by BAL_CTRL1[DUTY2:0] bits.
- Example 1: MCU sets up all 6 channels for cell balancing.
- Example 2: MCU sets up odd or even channels only for cell balancing. The BAL_CTRL1[DUTY2:0] bits setting is ineffective because the device is not switched between odd or even channels.
- Manual balancing control ([AUTO_BAL] = 0): With this method, the device will turn on the CBFETs that have non-zero balancing timer settings once [BAL_GO] = 1 is received. There is no odd and even channel switching during the cell balancing and the BAL_CTRL1[DUTY2:0] setting does not apply under this control. Host MCU can enable two consecutive CBFETs with this method. When two consecutive CBFETs are enabled with both channels connected to battery cells, the balancing current is significantly different compared to no adjacent CBFET being on (Figure 8-14). The DEV_CONF[NO_ADJ_CB] bit is provided to avoid inadvertent enabling of an adjacent CBFET for a system that is not intended to have an adjacent channel on for balancing. In this control method, the device is relying on the MCU to enable the proper channels. If the MCU sends [BAL_GO] = 1 but the CBFETs are enabled with an invalid condition, the device will not start balancing and will set BAL_STAT[INVALID_CBCONF] = 1. Invalid configurations are either:
- DEV_CONF[NO_ADJ_CB] = 1, but adjacent channels are enabled for balancing,
- DEV_CONF[NO_ADJ_CB] = 0, but more than two consecutive channels are enabled for balancing:
- Example: Enabling CBFET 1, 2, 4, 5 is valid.
- Example: Enabling CBFET 1, 2, and 3 is invalid.