AT32F425
Series Reference Manual
2022.03.30
Page 138
Ver 2.01
SMBus slave receive
Figure 11-20 SM Bus slave receive flow
I2C_STS_ADDRF=1?
No
Set I2C_CTRL2, CNT = 1,
RLDEN=1 , PECTEN = 1
Yes
I2C_STS_RDBF=1?
Read I2C_RXDT_DT
Set I2C_CTRL2_NACKEN =0
I2C_CTRL2_CNT =1
N= N-1
Yes
No
N >1?
No
Read I2C_RXDT_DT
Set I2C_CTRL2_NACKEN = 0
I2C_CTRL2_RLDEN =0
I2C_CTRL2_CNT = 1
Set I2C_CLR_ADDRC =1
I2C_STS_TCRLD=1?
Yes
No
I2C_STS_RDBF = 1?
No
Read I2C_RXDT_DT
Yes
I2C_STS_STOPF=1?
Yes
No
Set I2C_CLR_STOPC = 1
Slave initialization
I2C_CTRL1_PECEN = 1
Yes
Figure 11-21 SM Bus slave receive timing
Address
S
r/w
A
Data1
A
Data2
A
P
Master to Slave
Slave to Master
S = Start
A = Acknowledge
P = Stop
SMBus slave receiver N bytes +PEC
EV1. I2C_STS_ADDR =1, Set I2C_CTRL2 CNT = N+1 ,PECTEN = 1,and set
I2C_CLR_ADDRC =1
EV2. I2C_STS_RDBF, read Data1
EV3. I2C_STS_RDBF, read Data2
EV4. I2C_STS_RDBF, read DataN
EV5. I2C_STS_RDBF, read PEC
EV6. I2C_STS_STOPF = 1, set I2C_CLR_STOPC
EV1
EV2
SCL
Stretch
PEC
A
EV3
EV5
RDBF
EV6
DataN
A
EV4