Serial audio interface (SAI) RM0440
1818/2126 RM0440 Rev 4
executed to recover from an underrun error detected via the underrun interrupt or the
underrun status bit:
1. Disable the DMA stream (via the DMA peripheral) if the DMA is used.
2. Disable the SAI and check that the peripheral is physically disabled by polling the
SAIEN bit in SAI_xCR1 register.
3. Clear the COVRUNDR flag in the SAI_xCLRFR register.
4. Flush the FIFO by setting the FFLUSH bit in SAI_xCR2.
The software needs to point to the address of the future data corresponding to a start of
new block (data for preamble B). If the DMA is used, the DMA source base address
pointer should be updated accordingly.
5. Enable again the DMA stream (DMA peripheral) if the DMA used to manage data
transfers according to the new source base address.
6. Enable again the SAI by setting SAIEN bit in SAI_xCR1 register.
Clock generator programming in SPDIF generator mode
For the SPDIF generator, the SAI shall provide a bit clock twice faster as the symbol-rate.
The table hereafter shows usual examples of symbol rates with respect to the audio
sampling rate.
More generally, the relationship between the audio sampling frequency (F
S
) and the bit
clock rate (F
SCK_X
) is given by the formula:
The bit clock rate is obtained as follows:
Note: The above formulas are valid only if NODIV is set to 1 in SAI_ACR1 register.
Table 370. Audio sampling frequency versus symbol rates
Audio Sampling Frequencies (F
S
)Symbol-rate
44.1 kHz 2.8224 MHz
48 kHz 3.072 MHz
96 kHz 6.144 MHz
192 kHz 12.288 MHz
F
S
F
SCK_x
128
-----------------------
=
F
SCK_x
F
SAI_CK_x
MCKDIV
---------------------------------
=