C8051F120/1/2/3/4/5/6/7
Rev. 1.2
243
generate a START, it will do so after this timeout. The bus free period should be less than 50 µs (see Figure 20.9,
SMBus0 Clock Rate Register).
When the TOE bit in SMB0CN is set to logic 1, Timer 3 is used to detect SCL low timeouts. If Timer 3 is enabled
(see
Section “24.2. Timer 2, Timer 3, and Timer 4” on page 293
), Timer 3 is forced to reload when SCL is high,
and forced to count when SCL is low. With Timer 3 enabled and configured to overflow after 25 ms (and TOE set), a
Timer 3 overflow indicates a SCL low timeout; the Timer 3 interrupt service routine can then be used to reset
SMBus0 communication in the event of an SCL low timeout.
Figure 20.8. SMB0CN: SMBus0 Control Register
Bit7:
BUSY: Busy Status Flag.
0: SMBus0 is free
1: SMBus0 is busy
Bit6:
ENSMB: SMBus Enable.
This bit enables/disables the SMBus serial interface.
0: SMBus0 disabled.
1: SMBus0 enabled.
Bit5:
STA: SMBus Start Flag.
0: No START condition is transmitted.
1: When operating as a master, a START condition is transmitted if the bus is free. (If the bus is not
free, the START is transmitted after a STOP is received.) If STA is set after one or more bytes have
been transmitted or received and before a STOP is received, a repeated START condition is transmit-
ted.
Bit4:
STO: SMBus Stop Flag.
0: No STOP condition is transmitted.
1: Setting STO to logic 1 causes a STOP condition to be transmitted. When a STOP condition is
received, hardware clears STO to logic 0. If both STA and STO are set, a STOP condition is transmit-
ted followed by a START condition. In slave mode, setting the STO flag causes SMBus to behave as
if a STOP condition was received.
Bit3:
SI: SMBus Serial Interrupt Flag.
This bit is set by hardware when one of 27 possible SMBus0 states is entered. (Status code 0xF8 does
not cause SI to be set.) When the SI interrupt is enabled, setting this bit causes the CPU to vector to
the SMBus interrupt service routine. This bit is not automatically cleared by hardware and must be
cleared by software.
Bit2:
AA: SMBus Assert Acknowledge Flag.
This bit defines the type of acknowledge returned during the acknowledge cycle on the SCL line.
0: A "not acknowledge" (high level on SDA) is returned during the acknowledge cycle.
1: An "acknowledge" (low level on SDA) is returned during the acknowledge cycle.
Bit1:
FTE: SMBus Free Timer Enable Bit
0: No timeout when SCL is high
1: Timeout when SCL high time exceeds limit specified by the SMB0CR value.
Bit0:
TOE: SMBus Timeout Enable Bit
0: No timeout when SCL is low.
1: Timeout when SCL low time exceeds limit specified by Timer 3, if enabled.
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Reset Value
BUSY
ENSMB
STA
STO
SI
AA
FTE
TOE
00000000
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
Bit
Addressable
SFR Address:
SFR Page:
0xC0
0
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 ...