Datasheet

ATmega48/88/168 Automotive [DATASHEET]
7530K–AVR–07/14
202
Several different scenarios may arise during arbitration, as described below:
Two or more masters are performing identical communication with the same slave. In this case, neither the slave nor
any of the masters will know about the bus contention.
Two or more masters are accessing the same slave with different data or direction bit. In this case, arbitration will
occur, either in the READ/WRITE bit or in the data bits. The masters trying to output a one on SDA while another
master outputs a zero will lose the arbitration. Losing masters will switch to not addressed slave mode or wait until the
bus is free and transmit a new START condition, depending on application software action.
Two or more masters are accessing different slaves. In this case, arbitration will occur in the SLA bits. Masters trying
to output a one on SDA while another master outputs a zero will lose the arbitration. Masters losing arbitration in SLA
will switch to slave mode to check if they are being addressed by the winning master. If addressed, they will switch to
SR or ST mode, depending on the value of the READ/WRITE bit. If they are not being addressed, they will switch to
not addressed slave mode or wait until the bus is free and transmit a new START condition, depending on application
software action.
This is summarized in Figure 19-22. Possible status values are given in circles.
Figure 19-22. Possible Status Codes Caused by Arbitration
Own
Address/ General Call
received
Direction
TWI bus will be released and not addressed slave mode will be entered
A START condition will be transmitted when the bus becomes free
Data byte will be received and NOT ACK will be returned
Data byte will be received and ACK will be returned
Last data byte will be transmitted and NOT ACK should be received
Data byte will be transmitted and ACK should be received
START SLA
NO
YES
Write
Read
38
68/78
Arbitration lost in SLA Arbitration lost in DATA
DATA STOP
B0