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.

Linux/TCA9555: Linux can't detect TCA9555

Part Number: TCA9555

Tool/software: Linux

We are encountering some weirdness in our board where we could not detect TCA9555, 3 pieces on our board:

  • Using Linux i2c command, i2cdetect, it sees none of those 3 TCA9555s’.  Other slaves are present, however.
  • Then if I do an i2cset to each of the 3 addresses, I then see them all with i2cdetect.
  • I then used reboot and used uboot commands:
    • i2c dev 1 then i2c probe doesn’t see none of the 3 TCA9555s
    • But after doing i2c md to each of them, i2c probe now sees them all 

Have you seem something like this before?

Thanks,
Nick

  • Hey Nick,

    What you are describing sounds like known/expected behavior for our device. Doing an I2Cdetect will try to get ACKs from slaves on an I2C bus by issuing a read transaction. Our device has multiple registers and if you try to read without adjusting the internal pointer of the register, the device will NACK because it does not know which register you are trying to read from. A correct read procedure for our device is to first perform a write in order to set he internal pointer. After that you can perform a read transaction. Figure 29 of the datasheet shows this procedure. Notice how all read transaction examples start with a write first.

    Thanks,

    -Bobby