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.

PCA9548A: How does read across I2C switch work?

Part Number: PCA9548A

I'm confused how a read makes in accross I2C switch fetches data back.

A plain normal read is described below.   With read data coming back after read bit asserted.

The PCA9548A datasheet states

Is that first line a typo, normall read data comes back if read bit asserted?

Then how is a downstream I2C slave device read?   The slave too needs address and data phase?   How can that be injected?  

There is no illustration of how that would be done.

  • Hello Robert,

    "Is that first line a typo, normall read data comes back if read bit asserted?"

    Can you point on specifically where in the first line you see the typo? I don't see the issue with the first sentence for PCA9548A.

    It seems like the second, third, and forth line do not match the figure (the one below) as it describes the first figure/picture you posted (the one above). It seems to describe a slave with multiple registers (this device does not have multiple). So this seems like the typo/error to me.

    "The slave too needs address and data phase?"

    -The slave will always require an address (I am referring to the slave address) and also a control register address (if it has one). An 8 bit switch is a little bit different because it only has one register. This means you do not need to send a control register byte to refer to what register you want to read from. (Think of it as a pointer but a switch only has one address to point to).

    -Devices with one control register do not require the "write and then read" set up like the picture you posted above. This can vary with devices as not all devices have more than one register.

    " How can that be injected? "

    -Everything should be done through software but the designer/coder needs to know if the slave has one register or multiple.

    Thanks,

    -Bobby