Serial peripheral interface/ inter-IC sound (SPI/I2S) RM0401
706/771 RM0401 Rev 3
Figure 253. Full-duplex communication
25.6.3 Supported audio protocols
The three-line bus has to handle only audio data generally time-multiplexed on two
channels: the right channel and the left channel. However there is only one 16-bit register
for transmission or reception. So, it is up to the software to write into the data register the
appropriate value corresponding to each channel side, or to read the data from the data
register and to identify the corresponding channel by checking the CHSIDE bit in the
SPIx_SR register. Channel left is always sent first followed by the channel right (CHSIDE
has no meaning for the PCM protocol).
Four data and packet frames are available. Data may be sent with a format of:
• 16-bit data packed in a 16-bit frame
• 16-bit data packed in a 32-bit frame
• 24-bit data packed in a 32-bit frame
• 32-bit data packed in a 32-bit frame
When using 16-bit data extended on 32-bit packet, the first 16 bits (MSB) are the significant
bits, the 16-bit LSB is forced to 0 without any need for software action or DMA request (only
one read/write operation).
The 24-bit and 32-bit data frames need two CPU read or write operations to/from the
SPIx_DR register or two DMA operations if the DMA is preferred for the application. For 24-
bit data frame specifically, the 8 non significant bits are extended to 32 bits with 0-bits (by
hardware).
For all data formats and communication standards, the most significant bit is always sent
first (MSB first).
06Y9
63,6[
0$67(57;
63,6\
6/$9(5;
0&.2
&.2
:62
6'2
&.,
:6,
6',
([WHUQDO
VODYH
GHYLFH
670
63,6[
6/$9(7;
63,6\
6/$9(5;
&.,
:6,
6'2
&.,
:6,
6',
([WHUQDO
PDVWHU
GHYLFH
670
2SWLRQDO
63,6[
0$67(55;
63,6\
6/$9(7;
0&.2
&.2
:62
6',
&.,
:6,
6'2
([WHUQDO
VODYH
GHYLFH
670
0$67(5IXOOGXSOH[FRQILJXUDWLRQV
6/$9(IXOOGXSOH[FRQILJXUDWLRQV
VSL[BW[BGP
D
VSL[BU[BGP
D
VSL[BW[BGP
D
VSL[BU[BGP
D
VSL[BU[BGP
D
VSL[BW[BGP
D
0DVWHU
6ODYH