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: Prblem

Part Number: INA237
Other Parts Discussed in Thread: DAC6578

We have a board in which we use 15 INA237 devices on a single I2C bus addresses 0x40-0x47, 0x49-0x4F

In addition, we have DAC6578 at address 0x48 on the same bus

Device at address 0x47 does not work properly as other do - it is physically the 2nd device from the master CPU (STM32) on the I2C bus .

We have manufactured 5 prototype boards and all 5 have the same problem - not a singular problem.

DAC6578 work (reads and writes) as expected.

All INA37 devices (0x40-0x46, 0x49-0x4F) work OK - reading DEVICE_ID 0x5449 at internal address 0x3E. below examples of reading DEVICE_ID

Temperature from register 0x6 reads 0x10a0 (33.25C degrees) seems OK.

Now for the problem

INA237 Device 0x47 returns 0x0000 for DEVICE_ID and temperature from register 0x6 reads 0x340 (6.5C degrees) as temperature (working at room temperature)

Interestingly the device does operate as expected when configuring the ALERT and threshold registers - In activates the ALERT when current exceeds threshold.

We tried 6 different threshold values and they worked as expected (using digital load) and 15 [mOHM] SHUNT resistor:

0.1A: SOVL 0x0C = 0.0015mV/5uV = 300d = 12Ch
0.2A: SOVL 0x0C = 0.0015mV/5uV = 600d = 258h
1A: SOVL 0x0C = 0.015mV/5uV = 3000d = 0BBBh 
2A: SOVL 0x0C = 0.03mV/5uV = 6000d = 1770h 
4A: SOVL 0x0C = 0.06mV/5uV = 12000d = 2EE0h 
6A: SOVL 0x0C = 0.09mV/5uV = 18000d = 4650h

So writing to the device seems to work.

Reading back the SOVL values returns 0x0000.

All devices share the same design

Any help would be appreciated.