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 16 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 and a maximum of eight CBFETs can be enabled. 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-13). 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:
- More than eight channels are enabled for balancing (that is, more than eight CB_CELL*_CTRL registers have non-zero settings),
- 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, 7, 10, 12, and 14 is valid.
- Example: Enabling CBFET 1, 2, and 3 is invalid.