This is related to the forum question: "BQ25887: Discharging cells without charging"
I am finally implementing this and running into some issues. Namely, I can't seem to manually turn on the discharge path. From the response from June, it seems like this is possible. However I am having issues seeing this.
Here is the relevant text:
If you are referring to discharging through the cell balancing scheme within BQ25887, then the QCBH_EN and QCBL_EN bits will enable and disable discharging of the upper and lower cells respectively.
This is what I am referring to. Basically we want to use our existing hardware to periodically to a estimated measure of battery health. The basic scheme would be:
1 - Disable charging
2 - Discharge the connected batteries to known low voltages using the BQ25887 balancing scheme
3 - Re-enable charging and monitor the current going into the batteries over time to form a crude Coulomb counter
4 - At end of charge we would then have the total charge that entered the battery and then would have a crude estimate of SOH.
From your answer above, I think the BQ25887 supports this. Do you agree that the approve approach is possible using the BQ25887?
In reply to DAVID BROBST:
David,
This sounds reasonable. The CB_CHG_DIS bit disables charging during discharge by default.
End relevant text
However, I can't seem to get anything going. Here is the algorithm I am using:
- I assume that the values in "Cell Balancing Control 1 Register (0x28)" and "Cell Balancing Control 2 Register (0x29)" don't matter as I am manually controlling this.
- I am setting "Cell Balancing Status and Control Register (0x2A)" to 0b10xxxxxx' which CB_CHG_DIS == 1 and CB_AUTO_EN == 0. This should turn off charge during measurement and disable auto cell balancing.
- I am setting "Cell Balancing Flag Register" to 0b01xxxxxx which is QCBH_EN == 0 and QCBL_EN = 1, which should turn on the current path for the Bottom Cell to discharge through my current limiting resistor of 15 ohm.
- I am enabling the charger by setting "Charger Control 2 Register (0x06)" to 0b01111110.
I verify that the registers are set correctly by checking in my FW IDE. I also decode the I2C signals on the scope and all of the values are set the way I want them; however, I never see a voltage drop across the balance resistor. What am I doing wrong here? Is there a reference design/code snippet/etc. showing how to use the manual balancing feature?
I tried looking at the ap note SLUA938 and saw a bit of reference to manual cell-balancing as seen below
The BQ25887 also implements a manual cell-balancing mode where you can build an even more
customized cell-balancing program according to your application requirements. In manual cell-balancing
mode, the cell-balancing discharging FETs, QCBH and QCBL, can be enabled through the QCBH_EN and
QCBL_EN bits. Only one of these bits can be selected at a time. QCBH and QCBL can only be enabled when
charge is enabled and CB_EN is set to 0.
I think that the "CB_EN" is a typo and should be "CB_AUTO_EN" as found in the "Cell Balancing Status and Control Register (0x2A)". Other than that, I seem to be doing everything that I need to do.
Note, I can charge and automatically balance with this circuit fine and am fairly confident that the I2C and register loading is correct -- all of the other loading/operation has worked fine and as expected. We have used this device on ~1000 units over the past year and it works fine.
Thank you.