C8051F336/7/8/9
Table 21.6. SMBus Status Decoding With Hardware ACK Generation Enabled
(EHACK = 1) (Continued)
Values to
Write
Values Read
Current SMbus State
Typical Response Options
A slave byte was transmitted; No action required (expecting
0
0
0
0
0
1
0
1
0
0
0
0
0
0
X
X
X
0001
0100
0001
NACK received.
A slave byte was transmitted; Load SMB0DAT with next data
ACK received. byte to transmit.
A Slave byte was transmitted; No action required (expecting
STOP condition).
0100
0101
X
error detected.
Master to end transfer).
An illegal STOP or bus error
X was detected while a Slave
Transmission was in progress.
0
0
X
0
Clear STO.
0
0
X
-
If Write, Set ACK for first data
byte.
0
0
0
0
0
0
1
X
1
0000
0100
0000
A slave address + R/W was
received; ACK sent.
X
If Read, Load SMB0DAT with
data byte
0010
If Write, Set ACK for first data
byte.
Lost arbitration as master;
0
1
X slave address + R/W received; If Read, Load SMB0DAT with
0
1
0
0
X
X
0100
1110
ACK sent.
data byte
Reschedule failed transfer
A STOP was detected while
0
0
0
1
X addressed as a Slave Trans- Clear STO.
mitter or Slave Receiver.
0
0
X
-
0001
0000
Lost arbitration while attempt- No action required (transfer
X
0
0
0
0
0
0
0
1
0
-
ing a STOP.
complete/aborted).
Set ACK for next data byte;
Read SMB0DAT.
0000
0000
0
0
X A slave byte was received.
Set NACK for next data byte;
Read SMB0DAT.
Abort failed transfer.
0
1
0
1
0
1
0
0
0
0
0
0
X
X
X
X
X
X
-
Lost arbitration while attempt-
ing a repeated START.
0010
0001
0000
0
0
0
1
1
1
X
Reschedule failed transfer.
Abort failed transfer.
1110
-
Lost arbitration due to a
detected STOP.
X
Reschedule failed transfer.
Abort failed transfer.
1110
-
Lost arbitration while transmit-
ting a data byte as master.
X
Reschedule failed transfer.
1110
Rev. 0.2
165