RM0008
Slave transmitter
Following the address reception and after clearing ADDR, the slave sends bytes from the
DR register to the SDA line via the internal shift register.
The slave stretches SCL low until ADDR is cleared and DR filled with the data to be sent
(see
Figure 136
When the acknowledge pulse is received:
The TxE bit is set by hardware with an interrupt if the ITEVFEN and the ITBUFEN bits
are set.
If TxE is set and a data was not written in the DR register before the end of the last data
transmission, the BTF bit is set and the interface waits for a write in the DR register,
stretching SCL low.
Figure 136. Transfer sequence diagram for slave transmitter
7-bit slave transmitter:
S Address
10-bit slave transmitter
S Header
Legend: S= Start, S
EVx= Event (with interrupt if ITEVFEN=1)
EV1: ADDR=1, cleared by reading SR1 followed by reading SR2
EV3-1: TxE=1, shift register empty.
EV3: TxE=1, cleared by writing DR; shift register not empty
EV3-2: AF=1; AF is cleared by writing '0' in AF bit of SR1 register.
Transfer sequencing EV1 EV3).
A
Data1
EV1 EV3-1 EV3
A
Address
A
EV1
S
Header A
r
= Repeated Start, P= Stop, A= Acknowledge, NA= Non-acknowledge,
r
Inter-integrated circuit (I2C) interface
A
Data2
A
EV3
EV3
Data1
EV1 EV3_1
EV3
DataN
NA
P
.....
EV3-2
A
DataN
NA
....
.
EV3
EV3-2
P
321/501
Need help?
Do you have a question about the STM32F101 Series and is the answer not in the manual?