I tried to attach a link to a wiki page for reference on the forum, but it was denied displayed message I hadn't reached the maximum number of posts.Hi,
Who denies permission to post links? I don't think edaboard...
I guess I2C specification is free to download. Read it.
****
Arbitration works with WIRED-AND ... plus SDA readback.
The SDA drivers are OPEN_DRAIN, and with the pull-up it automatically acts as a wired-OR.
Just compare it with the truth table of an AND.
Klaus
I've described arbitration process in post#2.I don't understand how do multiple master devices communicate with slave devices on the same I2C bus without conflicts, and how does the Wired-AND function facilitate this communication?
I don't understand below paragraphI've described arbitration process in post#2.
What's exactly unclear?
Klaus
I don't understand how it happens. before sending slave address any one master should generate start conditions so why you mentioned slave address. As I understand master read ack/ nak bit after sending slave address not at start of i2C communicationWhen a master sends out data (slave address) then it reads back SDA and when it outputs a HIGH bit but reads back a LOW (sent by another master) then it immediately loses arbitration and thus should disable it's drivers.
Klaus
If both master managed to get up to this point, they surely don't loose arbitration during slave ACK. Arbitration loss can only happen after both masters send different states.My confusion arises when the slave acknowledges the address by setting SDA low, as both masters will read the SDA line as low. In this situation, I'm unsure how the I2C bus determines which master gains control. Could you please clarify which master will gain control of the I2C bus in this case and it happens?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?