Bus line
SCL
Data from
device #1
Data from
device #2
Bus line
SDA
1
1
1
1
1
0
0
0
0
0
Device #1 lost arbitration and switches off
0
0
I2C Module Integrity
1382
SPNU503C – March 2018
Copyright © 2018, Texas Instruments Incorporated
Inter-Integrated Circuit (I2C) Module
27.4 I2C Module Integrity
The following section discusses how the I2C module maintains priorities and order among signals and
commands.
27.4.1 Arbitration
If two or more master transmitters simultaneously start a transmission on the same bus, an arbitration
procedure is invoked.
illustrates the arbitration procedure between two devices. The
arbitration procedure uses the data presented on the SDA bus by the competing transmitters. The first
master transmitter that generates a high is overruled by the other master that generates a low. The
arbitration procedure gives priority to the device that transmits the serial data stream with the lowest
binary value. The master transmitter that loses the arbitration switches to the slave receiver mode, sets
the arbitration lost (AL) flag, and generates the arbitration-lost interrupt. The data transmitted by the other
master module is salvaged, and the I2C continues to receive data from the master module. Should two or
more devices send identical first bytes, arbitration continues on the subsequent bytes.
If, during a serial transfer, the arbitration procedure is still in progress when a repeated START condition
or STOP condition is transmitted to I2C bus, the master transmitters involved must send the repeated
START condition or STOP condition at the same position in the format frame. In other words, arbitration is
not 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
Slaves are not involved in the arbitration procedure.
Figure 27-11. Arbitration Procedure Between Two Master Transmitters