Hello, our design uses 3 TI chips below
MSP430F5438 micrcontroller
BQ24075 Li-Ion Battery Charger and Power-Path Management IC
BQ27505 Fuel Gauge.
We are seeing an i2c communication issue where if the customer completely drains the Li-ion battery and then inserts a USB cable then MSP430 is not able to talk to BQ27505 fuel gauge. This happens 100% of the time. We tried running i2C at lower speed of even 30kHz. We are not in Hibernate mode or Sleep mode. We make sure of this by setting Hibernate current to 0mA and 1mA to ensure its not in Hibernate mode. The fuel gauge is always powered on whenever MSP430 is ON. Fuel gauge is powered off of 2.5V linear regulator. This happens with or without flashing golden image ie also happens on BQ27505 with default settings off the shelf. We have spent days to figure it out and no success. As an experiment, i connected an external i2C host adapter on clock/data lines. Once we reach the bad state where MSP is not able to get any data back from Fuel Gauge, i try to randomly read a register using the external i2c host adapter which seems to fix the issue 100% of the time. Also it seems like if we do watchdog reset on MSP it also seems to recover. At this point i don't know what's going on. This is a critical issue and we have 1000's of units in the field.