This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BQ27542-G1: I2C NACK when running off battery

Part Number: BQ27542-G1


We have a BQ27542-G1 integrated into our battery pack running on an Android system based on Qualcomm hardware.

The Linux driver for this gg is taken from ti here

https://www.ti.com/tool/BQ27XXXSW-LINUX

During battery discharge when we read the voltage or current registers say every 3 seconds we occasionally see a NACK reported over the I2C bus which causes the driver to abort and report an incorrect register value.

During battery charging we never see this problem or a NACK being generated by this device.

I believe that the Qualcomm I2C hardware is able to handle clock stretching

Questions:

1. Is the NACK from the BQ27542-G1 possible during battery discharge and if so why does the Linux driver not handle this and force a retry

2. How quickly can we read the registers of the BQ27542-G1 when the battery is discharging/charging

3. Are there any know issue with the firmware regarding I2C

  • Hello Roberto,

    1. There are occasional Nacks from the gauge - this is normal. The Linux driver returns an error. In this case the application should discard the value

    2. Recommended interval of at least 1 second between reads

    3. No known issues - The datasheet and TRM list out conditions when Nacks are possible. Check if the gauge goes to sleep mode during discharge. In sleep mode, the gauge can take a long time to wake and respond. This could be treated as Nack by some hosts.