English
Language : 

C8051F336 Datasheet, PDF (155/234 Pages) Silicon Laboratories – Mixed Signal ISP Flash MCU Family
C8051F336/7/8/9
21.4.3. 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 21.4.2.2.
The registers used to define which address(es) are recognized by the hardware are the SMBus Slave
Address register (SFR Definition 21.3) and the SMBus Slave Address Mask register (SFR Definition 21.4).
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 bit positions of the slave address mask SLVM[6:0] enable a comparison
between the received slave address and the hardware’s slave address SLV[6:0] for those bits. 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 21.4
shows some example parameter settings and the slave addresses that will be recognized by hardware
under those conditions.
Table 21.4. Hardware Address Recognition Examples (EHACK = 1)
Hardware Slave Address Slave Address Mask
SLV[6:0]
SLVM[6:0]
0x34
0x34
0x34
0x34
0x70
0x7F
0x7F
0x7E
0x7E
0x73
GC bit Slave Addresses Recognized by
Hardware
0
0x34
1
0x34, 0x00 (General Call)
0
0x34, 0x35
1
0x34, 0x35, 0x00 (General Call)
0
0x70, 0x74, 0x78, 0x7C
Rev. 0.2
155