GD32A50x User Manual
516
Figure 20-11. Data transmission
I2C_TDATA
SCL
Shift register
xx
d
at
a
1
xx
xx
TBE
data0
data1
data2
A
C
K
p
u
ls
e
A
C
K
p
u
lse
write data1 write data2
SCL Stret ch
Data Reception
When receiving data, the data will be received in the shift register first. If RBNE is 0, the data
in the shift register will move into I2C_RDATA register. If RBNE is 1, the SCL line wii be
stretched until the previous received data in I2C_RDATA is read. The stretch is inserted before
the acknowledge pulse.
Figure 20-12. Data reception
I2C_RDATA
SCL
Shift register
xx
data1
xx
data2
xx
RBNE
data0
data1
data2
A
C
K
p
u
ls
e
A
C
K
p
u
lse
read data0
read data1
SCL Stret ch
Reload and automatic end mode
In order to manage byte transfer and to shut down the communication in modes as is shown
in
Table 20-3. Communication modes to be shut down
, the I2C embedded a byte counter
in the hardware.
Table 20-3. Communication modes to be shut down
Working mode
Action
Master mode
NACK, STOP and RESTART generation