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.

TCA9554: I2C does not detect

Part Number: TCA9554

Hi,

I have used TCA9554PWR 8-bit GPIO expander in one of our projects, But the device does not detect on our I2C bus.

But on the same bus other devices get detected. The VCC supply to the IC and the voltage level of the I2C is 1.8V.

and all of the address input pins are gounded.,so the read and write address are 0x40 and 0x41, but when we try to access the device we dont get any ackonwledge from the device.

Thanks,

R.Rohith yadav

  • Hello Rohith,

    Can you provide a scope shot of the SDA/SCL lines when you try to communicate with the TCA9554?

    Are you trying to get an ACK by doing a read or a write?

    Thanks,

    -Bobby

  • Hi Bobby,

    Pls fInd the attached scope shot of the i2c lines, and we are trying to get a ACK from the gpio expander but the expander does not get detected, so we get a NACK.

    in the following image we are trying to read from the device but we are getting a NACK.

    Thanks,

    R.Rohith yadav

  • Hello Rohith,

    I believe the issue is because you have not yet addressed the internal pointer of the device. To do this you need to do a write transaction first and then set the internal pointer by providing the 8 bit control register. After performing a stop and then start condition (or a restart) you can then perform a read.

    I don't see any signal integrity issues on the O-scope shot you sent, rise time looks good. Minor undershoot on some SCL but that's okay.

    Please try doing a write and sending a scope shot if you are still getting a NACK.

    Thanks,

    -Bobby

  • Hi Bobby,

    Thanks for your Reply.

    We are now able to make the GPIO exapnder get detected and now we can read and write properly.

    But during power on all the GPIO are in input mode by default, and while trying to change the GPIO to the output mode we are getting a IO error.

    ERROR MESSAGE:

    root@tegra-ubuntu:/home/nvidia# echo out > /sys/class/gpio/gpio236/direction
    bash: echo: write error: Remote I/O error

    This is the message we are getting while trying to set the direction of the GPIO to output

     

    Thanks,

    R.Rohith yadav

  • Hello Rohith,

    Glad to hear you are able to perform read and writes now.

    I am unsure what that error message means, as coding/software is not my strong suit. I am wondering if you are receiving a NACK while trying to write for whatever reason (maybe trying to write to a read only register for example).

    I think what would be helpful is seeing what the SDA/SCL lines look like when you perform a write transaction (setting the GPIO to output) so we can verify the write is going through properly. (we should be seeing an ACK after every data byte transfered to our device). A read transaction should reflect the same values that we send to the device.

    Thanks,
    -Bobby
  • Hi Rohith,

    Are you still having issues? If so, have you had a chance to follow Bobby's suggestion to monitor the SDA/SCL lines?

    Regards,
    Max