I2C Question! Arbitration under special cases

Hi, all Under multi-master enviroment, if there are two masters which

are accessing the same slave at the same time. One master wants to

write one byte to the slave, the other master wants to write two bytes

to the slave. The first master sends the message " Start + Slave

address + Ack + byte one + Stop ", while the second master sends the

message " Start + Slave address + Ack + byte one + Ack + byte two+ Ack

  • Stop". When the first master wants to send stop, while the second master wants

to send first bit of the second byte, who will win the arbitration? My question is related descriptions on I2C spec ver2.1 P13. " In other

word, arbitration isn't allowed between

*A repeated start condition and a data bit *A stop condition and a data bit *A repeated start condition and a stop condition. " So question comes. If such cases happen, how to do with arbitration ? thanks
Reply to
duge0413
Loading thread data ...

In hardware terms, to allow multiple device control of the I2C bus, the SDA and SCL bus signals are open collector driven. This essentially means that the signals can only be pulled 'low' by the devices through an internal transistor, to get a 'high' on SCL or SDA an external pull-up resistor is required (normal at-rest state). Therefore, in the event of device A transmitting a 'high' (not really transmitting a high but rather releasing the bus for the external resistor to pull the bus 'high') and device B transmitting a 'low', the 'low' condition will always win.

Regards Alan

formatting link

Reply to
electronic-eng.com

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.