![GigaDevice Semiconductor GD32E23 Series Скачать руководство пользователя страница 529](http://html.mh-extra.com/html/gigadevice-semiconductor/gd32e23-series/gd32e23-series_user-manual_2225794529.webp)
GD32E23x User Manual
529
In order to disable I2S, it is mandatory to clear the I2SEN bit after the TBE flag is high and
the TRANS flag is low.
I2S slave reception sequence
The reception sequence in slave mode is similar to that in master mode. The differences
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.
18.4.6.
DMA function
DMA function is the same as SPI mode. The only difference is that the CRC function is not
available in I2S mode.
18.4.7.
I2S interrupts
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.
Transmission buffer empty flag (TBE)
This bit is set when the transmission buffer is empty, the software can write the next data to
the transmission buffer by writing the SPI_DATA register.
Reception buffer not empty flag (RBNE)
This bit is set when reception buffer is not empty, which means that one data is received and
stored in the reception 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. In the transmission mode, the I2SCH flag is updated every time TBE changes
from 0 to 1. In the reception mode, the I2SCH flag is updated every time RBNE changes