English
Language : 

ATMEGA88V_14 Datasheet, PDF (235/377 Pages) ATMEL Corporation – High endurance non-volatile memory segments
ATmega48/88/168
Note that data is transmitted both from Master to Slave and vice versa. The Master must instruct
the Slave what location it wants to read, requiring the use of the MT mode. Subsequently, data
must be read from the Slave, implying the use of the MR mode. Thus, the transfer direction must
be changed. The Master must keep control of the bus during all these steps, and the steps
should be carried out as an atomical operation. If this principle is violated in a multi master sys-
tem, another Master can alter the data pointer in the EEPROM between steps 2 and 3, and the
Master will read the wrong data location. Such a change in transfer direction is accomplished by
transmitting a REPEATED START between the transmission of the address byte and reception
of the data. After a REPEATED START, the Master keeps ownership of the bus. Figure 22-19
shows the flow in this transfer.
Figure 22-19. Combining several TWI modes to access a serial EEPROM.
Master transmitter
Master receiver
S
SLA+W
A ADDRESS A Rs
SLA+R
A
DATA
AP
S = START
Transmitted from master to slave
Rs = REPEATED START
Transmitted from slave to master
P = STOP
22.8
Multi-master systems and arbitration
If multiple masters are connected to the same bus, transmissions may be initiated simultane-
ously by one or more of them. The TWI standard ensures that such situations are handled in
such a way that one of the masters will be allowed to proceed with the transfer, and that no data
will be lost in the process. An example of an arbitration situation is depicted below, where two
masters are trying to transmit data to a Slave Receiver.
Figure 22-20. An arbitration example.
VCC
Device 1
Device 2
Device 3
MASTER
MASTER
SLAVE
........ Device n
R1
R2
TRANSMITTER
TRANSMITTER
RECEIVER
2545T–AVR–05/11
SDA
SCL
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
235