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.