AT32F425
Series Reference Manual
2022.03.30
Page 127
Ver 2.01
Slave transmission
Figure 11-10 I
2
C slave transmission flow
I2C_STS_ADDRF=1?
No
Read I2C_STS_ADDR
Read I2C_STS_SDIR
Set I2C_CLR_ADDRC =1
Yes
I2C_STS_TDIS=1?
Write I2C_TXDT_DT
Yes
No
I2C_STS_ACKFAIL=1?
Write I2C_CLR_ACKFAILC
I2C_STS_STOPF=1?
Yes
Yes
No
No
Slave initialization
(if STRETCH =1, write data to
I2C_TXDT_DT )
Set I2C_STS_TDBE = 1
and I2C_CLR_TDIS = 1
Set I2C_CLR_STOPC = 1
Figure 11-11 I
2
C slave transmission timing
Address
S
r/w
A
Data1
A
SCL
Stretch
Data2
A
DataN
NA P
Master to Slave
Slave to Master
S = Start
A = Acknowledge
P = Stop
I2C Slave transfer N bytes to I2C master
EV1. I2C_STS1_ADDRF = 1, set I2C_CLR_ADDRC = 1
EV2. write Data1, I2C_STS1_TDIS = 0
EV3. write Data2, I2C_STS1_TDIS = 0
EV4. write Data3, I2C_STS1_TDIS = 0
EV5. write DataN, I2C_STS1_TDIS = 0
EV6. I2C_STS_STOPF, set I2C_CLR_STOPC
EV1
EV2
EV6
TDIS
EV4
EV3
EV5