C8051F120/1/2/3/4/5/6/7
Rev. 1.2
239
tion from the master to the slave, the master transmits the data a byte at a time waiting for an ACK from the slave at
the end of each byte. For READ operations, the slave transmits the data waiting for an ACK from the master at the
end of each byte. At the end of the data transfer, the master generates a STOP condition to terminate the transaction
and free the bus. Figure 20.3 illustrates a typical SMBus transaction.
20.2.1. Arbitration
A master may start a transfer only if the bus is free. The bus is free after a STOP condition or after the SCL and SDA
lines remain high for a specified time (see
Section 20.2.4
). In the event that two or more devices attempt to begin a
transfer at the same time, an arbitration scheme is employed to force one master to give up the bus. The master
devices continue transmitting until one attempts a HIGH while the other transmits a LOW. Since the bus is open-
drain, the bus will be pulled LOW. The master attempting the HIGH will detect a LOW SDA and give up the bus. The
winning master continues its transmission without interruption; the losing master becomes a slave and receives the
rest of the transfer. This arbitration scheme is non-destructive: one device always wins, and no data is lost.
20.2.2. Clock Low Extension
SMBus provides a clock synchronization mechanism, similar to I
2
C, which allows devices with different speed capa-
bilities to coexist on the bus. A clock-low extension is used during a transfer in order to allow slower slave devices to
communicate with faster masters. The slave may temporarily hold the SCL line LOW to extend the clock low period,
effectively decreasing the serial clock frequency.
20.2.3. SCL Low Timeout
If the SCL line is held low by a slave device on the bus, no further communication is possible. Furthermore, the mas-
ter cannot force the SCL line high to correct the error condition. To solve this problem, the SMBus protocol specifies
that devices participating in a transfer must detect any clock cycle held low longer than 25 ms as a “timeout” condi-
tion. Devices that have detected the timeout condition must reset the communication no later than 10 ms after detect-
ing the timeout condition.
20.2.4. SCL High (SMBus Free) Timeout
The SMBus specification stipulates that if the SCL and SDA lines remain high for more that 50 µs, the bus is desig-
nated as free. If an SMBus device is waiting to generate a Master START, the START will be generated following the
bus free timeout.
SLA6
SDA
SLA5-0
R/W
D7
D6-0
SCL
Slave A R/W
Data Byte
START
ACK
NACK
STOP
Figure 20.3. SMBus Transaction
Summary of Contents for C8051F120
Page 2: ...C8051F120 1 2 3 4 5 6 7 2 Rev 1 2 Notes ...
Page 8: ...C8051F120 1 2 3 4 5 6 7 8 Rev 1 2 26 2 Flash Programming Commands 318 26 3 Debug Support 321 ...
Page 16: ...C8051F120 1 2 3 4 5 6 7 16 Rev 1 2 Notes ...
Page 48: ...C8051F120 1 2 3 4 5 6 7 48 Rev 1 2 ...
Page 98: ...C8051F120 1 2 3 4 5 6 7 98 Rev 1 2 ...
Page 106: ...C8051F120 1 2 3 4 5 6 7 106 Rev 1 2 Notes ...
Page 183: ...C8051F120 1 2 3 4 5 6 7 Rev 1 2 183 Notes ...
Page 184: ...C8051F120 1 2 3 4 5 6 7 184 Rev 1 2 ...
Page 214: ...C8051F120 1 2 3 4 5 6 7 214 Rev 1 2 Notes ...