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.

INA237-Q1: I2C Timeout failures (clock extension to timeout)

Part Number: INA237-Q1
Other Parts Discussed in Thread: INA237,

I have a sensor loop reading the I2C data from eight INA237 shunt monitors every 100ms.  The sensors are running in continuous conversion mode and I am reading them asynchronously.  About 0.03% of the time, I am seeing a sensor read result in a clock extension of approximately 30 milliseconds before the transaction times out and the I2C bus is released.  Any bytes read after the timeout are a value of 0xFF.

Here is an example of the failure when reading the DIAG_ALRT (0x0B) register:

There are two problems with this:

  1. It delays the sensor loop such that a read that normally takes 270 microseconds now takes 30 milliseconds and throws off the 100ms sampling rate
  2. Sometimes the timeout is during data reads which results in an erroneous 0xFF or 0xFFFF being read.  I'll do some testing to see if I can filter these out by timing the transfers

Is there any way to avoid this timeout issue?  I am using the alert output pin for overvoltage fault shutdown of the load, so changing to triggered mode is not possible for my usecase.

Cheers,

Eric