
GD32L23x User Manual
545
between them are described below.
In slave mode, the slave has to be enabled before the external master starts the
communication. The reception sequence begins when the external master sends the clock
and when the I2S_WS signal indicates a start of the data transfer. In slave mode, I2SCH is
sensitive to the I2S_WS signal coming from the external master.
In order to disable I2S, it is mandatory to clear the I2SEN bit immediately after receiving the
last RBNE.
22.9.4.
DMA function
DMA function is the same as SPI mode. The only difference is that the CRC function is not
available in I2S mode.
22.10.
I2S interrupts
22.10.1.
Status flags
There are four status flags implemented in the SPI_STAT register, including TBE, RBNE,
TRANS and I2SCH. The user can use them to fully monitor the state of the I2S bus.
Transmit buffer empty flag (TBE)
This bit is set when the transmit buffer is empty, the software can write the next data to the
transmit buffer by writing the SPI_DATA register.
Receive buffer not empty flag (RBNE)
This bit is set when receive buffer is not empty, which means that one data is received and
stored in the receive buffer, and software can read the data by reading the SPI_DATA register.
I2S transmitting ongoing flag (TRANS)
TRANS is a status flag to indicate whether the transfer is ongoing or not. It is set and cleared
by hardware and not controlled by software. This flag will not generate any interrupt.
I2S channel side flag (I2SCH)
This flag indicates the channel side information of the current transfer and has no meaning in
PCM mode. It is updated when TBE rises in transmission mode or RBNE rises in reception
mode. This flag will not generate any interrupt.
22.10.2.
Error conditions
There are three error flags:
Transmission underrun error flag (TXURERR)