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.

TCA9548A: Failed to read data

Part Number: TCA9548A
Other Parts Discussed in Thread: PCA9548A

Hi Team,

The customer uses TCA9548A, followed by 8 NVME SSDs. When using the command to directly read the SSD information of the corresponding channel, sometimes an error will be reported! 

Please help to confirm if TCA9548A is a drop-in replacement for NXP_PCA9548? When using TCA9548A, can the specified channel be opened directly through the read operation?

Regards,
HL

  • The TCA9548A is a drop-in replacement for the PCA9548A.

    To open a channel, you must write to (not read from) the control register of the switch. Please note that the switch does not have register numbers.

  • Hi HL,

    The information provided is a bit vague for us to understand what's causing the issue. Are you able to provide a schematic for us to review?

    Do you have a block diagram?

    TCA9548A is pin to pin with NXP's 9548. The major difference between us and them is our device does not support repeated start conditions if you are writing to our device. Our device requires a stop condition immediately after writing to the TCA9548A otherwise the byte written to our device will not execute the channels being enabled/disabled.

    -Bobby

  • Hi Bobby,

    I send the schematic and block diagram via e-mail.

    our device does not support repeated start conditions if you are writing to our device. Our device requires a stop condition immediately after writing to the TCA9548A otherwise the byte written to our device will not execute the channels being enabled/disabled.

    Can you elaborate on this point? Can we only open channels with write commands, can we open channels with read commands? PCA9548 seems to be able to open the channel by reading instructions.

    Regards,
    HL

  • Neither the PCA9548A nor the TCA9548A do anything on a read command.

    It looks as if that twi_rd tool writes the register number before it reads the value(s), so if you specify the channel bits as register number, it will write the register with the correct value.

    You should use a tool that does a single write (twi_wr?).

  • Hi HL,

    I didn't see anything that jumped out at me when reviewing the schematic/block layout.

    Can you elaborate on this point? Can we only open channels with write commands, can we open channels with read commands?

    As Clemen's pointed out, reads to the device wouldn't affect anything. When you do a write command to our device (TCA9548A), the host that is generating the write must issue a stop command after the write to our device. Repeated start conditions are okay if you are using it to communicate downstream from our device but any communication directly to the TCA9548A needs to have a stop condition.

    It may help us better if you provide a scopeshot of the I2C lines when the issue occurs. We can atleast verify if a valid stop condition is being seen by our device.

    -Bobby