GD32W51x User Manual
636
Figure 19-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 SDA input fills the shift register. After the 8th SCL pulse, the
complete data byte is received. If RBNE=0 (I2C_RDATA register is empty), the data in the
shift register is moved into I2C_RDATA register. If RBNE=1 indicates that the previous
received data byte has not been read, the SCL line is stretched low until I2C_RDATA is read.
The stretch is inserted between the 8th and 9th SCL pulse (before Acknowledge pulse).
Figure 19-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
Hardware transfer management
In order to manage byte transfer and to shut down the communication in modes as is shown
in
Table 19-3. Communication modes to be shut down
, the I2C embedded a byte counter
in the hardware.