Specifications

C8051F330/1
130 Rev. 1.1
15.3.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.
15.3.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.
When the SMBTOE bit in SMB0CF is set, Timer 3 is used to detect SCL low timeouts. Timer 3 is forced to reload
when SCL is high, and allowed to count when SCL is low. With Timer
3 enabled and configured to overflow after
25
ms (and SMBTOE set), the Timer 3 interrupt service routine can be used to reset (disable and re-enable) the
SMBus in the event of an SCL low timeout.
15.3.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. When the SMBFTE bit in SMB0CF is set, the bus will be considered free if SCL and SDA remain high
for more than 10
SMBus clock source periods. If the SMBus is waiting to generate a Master START, the START will
be generated following this timeout. Note that a clock source is required for free timeout detection, even in a slave-
only implementation.