Dear experts,
I have a customer having an issue with our BQ27421-G1 device as follows:
"First to begin that our problem is very rare and in general Fuelgauge is working correct. Its identification is:
Fid=0421
ver=0109
The problem appears as "endless" clock stretching because SCL line has stuck in LOW state.
We have gpio emulated I2C communication so when we need to pull SCK to HIGH, we change gpio direction to input and wait until we read HIGH on it (because of the pullup). We observed that we are waiting for HIGH to forever. After 3sec of waiting we get Watchdog reset but stuck in this state again and again until power is removed from Fuelgauge. The first thing after MCU reset is to set SDA and SCL lines to their idle state (HIGH) but because this is impossible MCU is reset again.
As I said only when power source has been removed SCL line may be controlled.
As you see from the picture above we have a second slave on our I2C bus but we have reset option for it so we figured out that it is not the cause.
Fuelgauge schematic is the following:
"
Explanation from another engineer is: "In this letter are attached parts of the schematics of two different devices. There are differences in the connection of BQ, but the problem found is the same. SCL pin of BQ stays in strong 0 till battery removal. If we use strong output levels of the MCU clock level is about 1V. After battery removal it goes up to normal value of 3.3V. We don't know what exactly is the reason the IC to enter in such mode, but it happens during operation at different customers. I want to remind that there is another problem with this IC, too. Sometimes it just stops to respond to its I2C address at all. Is it possible the firmware of BQ27421-G1 to be updated over I2C interface?"
Looking forward to your expert advise.
I have attached full schematics as well.
Thanks,
Murat Ilhan.