English
Language : 

C8051F300 Datasheet, PDF (117/176 Pages) List of Unclassifed Manufacturers – Mixed Signal ISP Flash MCU Family
C8051F300/1/2/3/4/5
13.4.2. SMB0CN Control Register
SMB0CN is used to control the interface and to provide status information (see SFR Definition 13.2). The
higher four bits of SMB0CN (MASTER, TXMODE, STA, and STO) form a status vector that can be used to
jump to service routines. MASTER and TXMODE indicate the master/slave state and transmit/receive
modes, respectively.
The STA bit indicates that a START has been detected or generated since the last SMBus interrupt. When
set to ‘1’, the STA bit will cause the SMBus to enter Master mode and generate a START when the bus
becomes free. STA is not cleared by hardware after the START is generated; it must be cleared by soft-
ware.
As a master, writing the STO bit will cause the hardware to generate a STOP condition and end the current
transfer after the next ACK cycle. STO is cleared by hardware after the STOP condition is generated. As a
slave, STO indicates that a STOP condition has been detected since the last SMBus interrupt. STO is also
used in slave mode to manage the transition from slave receiver to slave transmitter; see Section 13.5.4
for details on this procedure.
If STO and STA are both set to ‘1’ (while in Master Mode), a STOP followed by a START will be generated.
As a receiver, writing the ACK bit defines the outgoing ACK value; as a transmitter, reading the ACK bit
indicates the value received on the last ACK cycle. ACKRQ is set each time a byte is received, indicating
that an outgoing ACK value is needed. When ACKRQ is set, software should write the desired outgoing
value to the ACK bit before clearing SI. A NACK will be generated if software does not write the ACK bit
before clearing SI. SDA will reflect the defined ACK value immediately following a write to the ACK bit;
however SCL will remain low until SI is cleared. If a received slave address is not acknowledged, further
slave events will be ignored until the next START is detected.
The ARBLOST bit indicates that the interface has lost an arbitration. This may occur anytime the interface
is transmitting (master or slave). A lost arbitration while operating as a slave indicates a bus error condi-
tion. ARBLOST is cleared by hardware each time SI is cleared.
The SI bit (SMBus Interrupt Flag) is set at the beginning and end of each transfer, after each byte frame, or
when an arbitration is lost; see Table 13.3 for more details.
Important Note About the SI Bit: The SMBus interface is stalled while SI is set; thus SCL is held low, and
the bus is stalled until software clears SI.
Table 13.3 lists all sources for hardware changes to the SMB0CN bits. Refer to Table 13.4 for SMBus sta-
tus decoding using the SMB0CN register.
Rev. 2.8
117