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.

TCA9555: address and register issue

Part Number: TCA9555
Other Parts Discussed in Thread: TCA6424

Tool/software:

We installed a TCA9555PWR onto the TI I/O expander EVM and are observing some strange results which we cannot understand.

1) With the TCA9555 installed on the EVM, all three of its address lines are tied to logic H:

- A0 (pin 21, which is ADDR on the EVM, pulled up to VCC through 10k R15)

- A2 (pin 3, which is _RESET on the EVM, pulled up to VCC through 10k R8)

- A1 (pin 2, which is VCCI on the EVM, directly tied to VCC).

The pull-up state of all three lines was also confirmed electrically (with a meter and a scope). However, when we power up the EVM, we see that the I2C address always comes up as 0x22 and not 0x27. Are the pull-up resistors causing A2 and A0 to not be properly read by the TCA9555? 

2) After power-up, we find that we cannot read register 0x03 and register 0x07, as the TCA9555 issues a NAK when we specify those register values. Is this expected behavior, or is this also potentially related to the address line issue? (There is a warning in the datasheet about not changing the address after power-up as it can 'glitch' the I2C bus.)

Note that we tried two different TCA9555PWR ICs on the board and observed the same issue. We also purchased both the ICs and the EVM from a reputable North American vendor.

  • Hi Adam,

    1) With the TCA9555 installed on the EVM, all three of its address lines are tied to logic H:

    - A0 (pin 21, which is ADDR on the EVM, pulled up to VCC through 10k R15)

    - A2 (pin 3, which is _RESET on the EVM, pulled up to VCC through 10k R8)

    - A1 (pin 2, which is VCCI on the EVM, directly tied to VCC).

    The pull-up state of all three lines was also confirmed electrically (with a meter and a scope). However, when we power up the EVM, we see that the I2C address always comes up as 0x22 and not 0x27. Are the pull-up resistors causing A2 and A0 to not be properly read by the TCA9555? 

    According to the EVM, address should be 0x27 due to TCA9555 pinout connections to the EVM. 

    What voltage are you measuring at each A0/A1/A2 pins when the device is powered up? 

    2) After power-up, we find that we cannot read register 0x03 and register 0x07, as the TCA9555 issues a NAK when we specify those register values. Is this expected behavior, or is this also potentially related to the address line issue? (There is a warning in the datasheet about not changing the address after power-up as it can 'glitch' the I2C bus.)

    Note that we tried two different TCA9555PWR ICs on the board and observed the same issue. We also purchased both the ICs and the EVM from a reputable North American vendor.

    Have you only tested these registers? What about other registers in the map (0x02, 0x00, 0x05)? 

    The I2C devices does not work with dynamic addressing. i.e. power up the device with a known address and then proceed to change A2/A1/A0 during power ON. The device will not understand the communication and will most likely fault. I have not tested this personally in lab, but I would not dynamic address. 

    In order to change the address, the device needs to power down, change A2/A1/A0, and then power back up.

    Regards,

    Tyler

  • I suspect the issue was that I was talking to the TCA6424 on the board, and not the TCA9555. It seems that both of the TCA9555s that we installed are somehow not addressable on the EVM. (There is address-range overlap between the parts).

    Also, the address-list routine I was using was polling all available addresses in read-mode; the TCA9555 seems not to respond to this whereas the TCA6424 was responding to this. If I just go to address 0x27 now, I can read the device.