![ARTERY AT32F435 Series Скачать руководство пользователя страница 191](http://html1.mh-extra.com/html/artery/at32f435-series/at32f435-series_reference-manual_2977592191.webp)
AT32F435/437
Series Reference Manual
2022.11.11
Page 191
Rev 2.03
SMBus slave receive
Figure 11-20 SMBus 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 SMBus slave receive tim ing
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