Visible to Intel only — GUID: sfo1410069772809
Ixiasoft
Visible to Intel only — GUID: sfo1410069772809
Ixiasoft
21.4.4. Multiple Master Arbitration
The I2C controller bus protocol allows multiple masters to reside on the same bus. If there are two masters on the same I2C-bus, there is an arbitration procedure if both try to take control of the bus at the same time by simultaneously generating a START condition. Once a master (for example, a microcontroller) has control of the bus, no other master can take control until the first master sends a STOP condition and places the bus in an idle state. †
Arbitration takes place on the SDA line, while the SCL line is 1. The master, which transmits a 1 while the other master transmits 0, loses arbitration and turns off its data output stage. The master that lost arbitration can continue to generate clocks until the end of the byte transfer. If both masters are addressing the same slave device, the arbitration could go into the data phase. †
Upon detecting that it has lost arbitration to another master, the I2C controller stops generating SCL. †
The following figure illustrates the timing of two masters arbitrating on the bus.
The bus control is determined by address or master code and data sent by competing masters, so there is no central master nor any order of priority on the bus. †
Arbitration is not allowed between the following conditions: †
- A RESTART condition and a data bit †
- A STOP condition and a data bit †
- A RESTART condition and a STOP condition †
Slaves are not involved in the arbitration process. †