We have been using the BQ25887 in our system for a year or so. A new problem has cropped up: sometimes the A/D readings from BQ25887 "freeze" and won't change regardless of what we do. The basics are as follows:
- BQ25887 operating and powered with Vbus
- Remove the device being charged/monitored
- When a device is removed, we turn off the charger with the "EN_CHG" bit in "Charger Control 2". We also have the "CD" pin pulled high.
- Put in a new device to be charged/monitored.
- We detect if a device is present or not using the BOT and TOP A/D values from the BQ25887
- We never remove Vbus
- A very small percentage of the time (< 1%) the BQ25887 seems to "freeze" and the A/D values no longer change, regardless of what value is on VBAT and VMID.
- Using a scope, I have decoded the I2C lines between the BQ25887 and our micro. The attached spreadsheet shows the good and bad values. Best I can tell, none of the configuration registers are different between a "Good" and a "Bad" read or in the "Bad" case, between a device not plugged in or plugged in.
So the question becomes - is there something obvious I am doing wrong or something I am missing.
Thanks!