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.

I2C bus of INA226 might conflict with DAC7678

Other Parts Discussed in Thread: INA226, DAC7678, PCA9539

Hi,

Recently I am testing a board which have 12 INA226 and 4 DAC7678, and something wired have happened.

Here is the I2C slave address of my board:

Device

RefD.

Address

Notes

PCA9539

U53

0x74

I/O expander

SC18IS602B

U38

0x28

I2C TO SPI

DAC7678-1

U23

0x4C

VOL A1~A8

DAC7678-2

U35

0x4D

PWR A1~A6 CTR

DAC7678-3

U25

0x4E

VOL B1~B8

DAC7678-4

U24

0x4F

PWR B1~B6 CTR

INA226-1

U28

0X40

PWR_A1 MON

INA226-2

U16

0X41

PWR_A2 MON

INA226-3

U15

0X42

PWR_A3 MON

INA226-4

U18

0X43

PWR_A4 MON

INA226-5

U17

0X44

PWR_A5 MON

INA226-6

U20

0X45

PWR_A6 MON

INA226-7

U29

0X46

PWR_B1 MON

INA226-8

U19

0X47

PWR_B2 MON

INA226-9

U22

0X48

PWR_B3 MON

INA226-10

U21

0X49

PWR_B4 MON

INA226-11

U37

0X4A

PWR_B5 MON

INA226-12

U36

0X4B

PWR_B6 MON

Table 1: I2C Slave Address assignment

When we perform the I2C test, all other devices work well but the INA226 located at 0x47, and we have probe the SCL and SDA signal with a scope when trying to read registers from the 0x47 INA226.

Figure 1 is the screenshot of the waveform, we can only read back 0x00 from the INA226 at 0x47, and the other 11 INA226 work very good.

 Figure 1: Waveform when performing read action to the INA226 at 0x47

Then we have doing some test:

1. Only solder these 12 INA226 to the board, all of them work good, include the INA226 at 0x47. We can read back 0x4127 from register 0x0;

2. Then solder one DAC7678 (U35) to the board, the I2C address of the DAC is 0x4D; Then all the data readout from the INA226 at 0x47 is 0x00 !;

All other 11 INA226 and the DAC7678 at 0x4D work good.

3. Remove the DAC7678 at 0x4D, then solder the DAC7678 at 0x4E (U25), the problem still are there. We can not read back anything from the INA226 at 0x47.

All other 11 INA226 and the DAC7678 at 0x4E  work good.

4. Remove the DAC7678 at 0x4D, then there are only 12 INA226 in the board. We performing the reading scan again, all of them work well now, include the INA226 at 0x47.

So we suspect there are some conflicts when we use DAC7678 and INA226 at the same time.

Can anyone from TI can verify that for us? 

Thank you very much!

  • Hi Hongbin,
    That is a bit strange. But it seems like one of the device is responding to the read command since there is an acknowledge and zeros as output, don't know if it is the DAC or the INA. Is it possible for you to change the slave address for the INA226 currently at 0x47. May be to 0x4B, by only switching the A1 address pin to SDA. That may give us some clue into what may be hapenning. Meanwhile I have also contacted the DAC application support to help with this.
  • Thank you Rabab!
    The addresses of INA226 are fixed in our board and cannot be changed.

    Regards,
    Hongbin
  • Hi Hongbin,
    On page 30 of the DAC7678 datasheet they talk about "Broadcast Address Byte" which matches with address 0x47 of the INA226. So seems like the DACs may be responding to this address. One way to check would be to uninstall the INA226 at address 0x47 and then send the read command trying to read from the missing INA. if you get a response back then you would know for sure that it is the DACs responding. Please let me know what you find out.
  • Hi Rabab,

    I have removed the INA226 at 0x47, and then write to the 0x47 by setting the output of the DAC, then all the DACs generated the voltage I have set.
    So 0x47 is the broadcast address, it conflict with the INA226 at 0x47.
    This address can only be written and can not be read, so all I can readout from 0x47 is zero.
    Thank you so much!

    Regards,
    Hongbin