
Rev. 1.00
429 of 576
January 28, 2022
32-Bit Arm
®
Cortex
®
-M0+ MCU
HT32F54231/HT32F54241/HT32F54243/HT32F54253
20 Inter-Integrated Circuit (I2C)
20 Inter-Integrated Circuit (I2C)
STOP Condition
When the slave device detects a STOP condition, the STO flag bit in the I2CSR register is set to
indicate that the I
2
C interface transmission is terminated. Reading the I2CSR register can clear the
STO flag bit.
S
Address
A
ADRS
Data1
A
Data2
A
...
DataN
P
BEH1: Cleared by reading I2CSR register
S
Header
A
Data1
A
Data2
A
...
DataN
P
10-bit Slave Receiver
Address
A
ADRS
STO
STO
A
A
BEH1
BEH2
BEH2
BEH2
BEH3
BEH1
BEH2
BEH2
BEH2
BEH3
BEH2: Cleared by reading I2CDR register
BEH3: Cleared by reading I2CSR register
7-bit Slave Receiver
RXDNE
RXDNE
RXDNE
RXDNE
RXDNE
RXDNE
Figure 152. Slave Receiver Timing Diagram
Conditions of Holding SCL Line
The following conditions will cause the SCL line to be held at a logic low state by hardware
resulting in all the I
2
C transfers being stopped. Data transfer will be continued after the creating
conditions are eliminated.
Table 47. Conditions of Holding SCL line
Type
Condition
Description
Eliminating Condition
Flag
TXDE
I
2
C is used in transmitter mode and I2CDR
register needs to have data to transmit.
(Note: TXDE won’t be asserted after receiving
an NACK)
Master case:
Writing data to I2CDR register
Set TAR
Set STOP
Slave case:
Writing data to I2CDR register
GCS
I
2
C is addressed as slave through general call
Reading I2CSR register
ADRS
Master:
I
2
C address frame is sent and an ACK from
slave is returned
(Note: Reference Figure 149 and Figure 150)
Slave:
I
2
C is addressed as slave device
(Note: Reference Figure 151 and Figure 152)
Reading I2CSR register
STA
Master sends a START signal
Reading I2CSR register
RXBF
Received a complete new data and meanwhile
the RXDNE flag has been set already before.
Reading I2CDR register