Tool/software:
Hello,
I am running a BQ76952, which I have configured in 400kHz with CRC mode (I2C fast with CRC). I have a custom board, setup with an STM microcontroller and the BQ76952 communicating on an I2C bus. The BQ76952 is in a stable, ambient operating condition (temp sense 20C, cell voltages at 3.3V, discharge current 0.003A)
I am running a basic I2C coms stress test, where the STM is repeatedly sending the "DEVICE_NUM" subcommand, reading the associated data, and checking it for errors. I am sending this subcommand at ~50Hz, with 40ms between the "write" and "read" parts of the subcommand
After an extended, random, period of time (sometimes hours, days, or weeks), the BQ76952 begins to refuse these commands, and every subsequent subcommand is NAK'd. I have had some success adding in a manual I2C communication-delay after a NAK is encountered (ie. delay 100 milliseconds), but these only seem to lessen the frequency of these lockouts, not end them completely. Powering down the entire board and bringing it back up ends the lockout and allows for further communication, though, but this is not a practical solution for this product
I don't see anything in the datasheet about this behavior, is there something I am missing? Any setting or command that might fix this? I see that there is a 2s timeout on the BQ76952, and I can delay communications for this long, but this is not an ideal solution, as this is a long time to be locked out of all I2C communications. I can also swap my I2C config to one with a timeout enabled, but this is also not ideal because this product needs the accuracy of a CRC check



