English
Language : 

C8051F850-C-GM Datasheet, PDF (254/328 Pages) Silicon Laboratories – Low-Cost 8-bit MCU Family with up to 8 kB of Flash
Bit
STA
STO
ACKRQ
ARBLOST
ACK
SI
Table 24.3. Sources for Hardware Changes to SMB0CN (Continued)
Set by Hardware When:
A START followed by an address byte is
received.
A STOP is detected while addressed as a
slave.
Arbitration is lost due to a detected STOP.
A byte has been received and an ACK
response value is needed (only when
hardware ACK is not enabled).
A repeated START is detected as a
MASTER when STA is low (unwanted
repeated START).
SCL is sensed low while attempting to
generate a STOP or repeated START
condition.
SDA is sensed low while transmitting a 1
(excluding ACK bits).
The incoming ACK value is low
(ACKNOWLEDGE).
A START has been generated.
Lost arbitration.
A byte has been transmitted and an ACK/
NACK received.
A byte has been received.
A START or repeated START followed by a
slave address + R/W has been received.
A STOP has been received.
Cleared by Hardware When:
Must be cleared by software.
A pending STOP is generated.
After each ACK cycle.
Each time SIn is cleared.
The incoming ACK value is high
(NOT ACKNOWLEDGE).
Must be cleared by software.
24.4.5. Hardware Slave Address Recognition
The SMBus hardware has the capability to automatically recognize incoming slave addresses and send an
ACK without software intervention. Automatic slave address recognition is enabled by setting the EHACK
bit in register SMB0ADM to 1. This will enable both automatic slave address recognition and automatic
hardware ACK generation for received bytes (as a master or slave). More detail on automatic hardware
ACK generation can be found in Section 24.4.4.2.
The registers used to define which address(es) are recognized by the hardware are the SMBus Slave
Address register and the SMBus Slave Address Mask register. A single address or range of addresses
(including the General Call Address 0x00) can be specified using these two registers. The most-significant
seven bits of the two registers are used to define which addresses will be ACKed. A 1 in a bit of the slave
address mask SLVM enables a comparison between the received slave address and the hardware’s slave
address SLV for that bit. A 0 in a bit of the slave address mask means that bit will be treated as a “don’t
care” for comparison purposes. In this case, either a 1 or a 0 value are acceptable on the incoming slave
address. Additionally, if the GC bit in register SMB0ADR is set to 1, hardware will recognize the General
Call Address (0x00). Table 24.4 shows some example parameter settings and the slave addresses that will
be recognized by hardware under those conditions.
229
Rev. 1.0