
Rev. 1.00
428 of 576
January 28, 2022
32-Bit Arm
®
Cortex
®
-M0+ MCU
HT32F54231/HT32F54241/HT32F54243/HT32F54253
20 Inter-Integrated Circuit (I2C)
Receive Not-Acknowledge
When the slave device receives a Not-Acknowledge signal, the RXNACK bit in the I2CSR Register
is set but it will not hold the SCL line. Writing “1” to RXNACK will clear the RXNACK flag.
STOP Condition
When the slave device detects a STOP condition, the STO 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.
S
Address
A
Data1
A
Data2
A
...
DataN
P
BEH1: Cleared by reading I2CSR register
S
Header
A
Data1
A
Data2
A
...
DataN
P
10-bit Slave Transmitter
Address
A
STO
STO
BEH1
BEH2
BEH2
BEH3
BEH4
BEH1
BEH2
BEH2
BEH3
BEH4
BEH2: Cleared by writing I2CDR register
BEH3: Cleared by writing 1 clear for RXNACK flag, TXDE is not set when NACK is received.
TXDE
BEH2
TXDE
TXDE
TXDE
TXDE
Header
A
BEH1
BEH4: Cleared by reading I2CSR register
7-bit Slave Transmitter
BEH2
TXDE
RXNACK
NA
ADRS
ADRS #2
ADRS #1
NA
RXNACK
Sr
Figure 151. Slave Transmitter Timing Diagram
Slave Receiver Mode
Address Frame
The ADRS bit in the I2CSR register is set after the slave device receives the calling address which
matches with the slave device address. After the ADRS bit has been set to 1, it must be cleared to 0
to continue the data transfer process. The ADRS flag is cleared after reading the I2CSR register.
Data Frame
In the slave receiver mode, the data is transmitted from the master device. Once a data byte is
received by the slave device, the RXDNE flag in the I2CSR register is set but it will not hold the
SCL line. However, if the device receives a complete new data byte and the RXDNE bit has been
set to 1, the RXBF bit in the I2CSR register will be set to 1 and the SCL line will be held at a logic
low state. When this situation occurs, data from the I2CDR register should be read to continue the
data transfer process. The RXDNE flag bit can be cleared after reading the I2CDR register.