Hi when slaves share the same address and a write/read occur, both slaves can "ACK"
It unclear to me how this is resolved, can an explanation be provided?
thanks
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.
Hi when slaves share the same address and a write/read occur, both slaves can "ACK"
It unclear to me how this is resolved, can an explanation be provided?
thanks
Hello James,
I think you need to be more explicit in your question. The PCA9546A is also a slave, not just the devices on the channels. Do you have a I2C tree or a block level diagram with all the slaves you wish to interface with? Generally speaking, the I2C switch allows you to interface with slaves that have the same address by separating the devices such that each channel has one of the duplicate device addresses. The master then controls which channel-device it wasn't to communicate with and sets up the PCA9546A such that the correct channel with the desired slave is connected. This means that despite there having other devices with the same address, only the device on the channel you selected will be communicated with and there will be no addressing conflicts.
If you read our app note, "Choosing the Correct I2C Device for New Designs" it gives and example.
http://www.ti.com/lit/an/slva787/slva787.pdf
Let me know if you still have questions.
-Francis Houde
"Generally speaking, the I2C switch allows you to interface with slaves that have the same address by separating the devices such that each channel has one of the duplicate device addresses."
ok,
Two slave devices share the same address. the master writes 2 bytes (slave address+ control control byte)
Which device response to the "Ack", the control byte has yet to be sent?
thanks
.
Hello James,
The I2C spec calls out that each slave have a unique address, unless you are setup to do a broadcast. If there is more than one device with the same address on the bus than the Master will not know which device responded with the "Ack". Both may pull down on the SDA line to perform the "ACK". The point is the master won't know which one it is. I have put some excerpts from the I2C specifications to elaborate.
-Francis Houde