DocID018909 Rev 11
913/1731
RM0090
Serial peripheral interface (SPI)
918
28.5.4
SPI data register (SPI_DR)
Address offset: 0x0C
Reset value: 0x0000
Bit 4
CRCERR:
CRC error flag
0: CRC value received matches the SPI_RXCRCR value
1: CRC value received does not match the SPI_RXCRCR value
This flag is set by hardware and cleared by software writing 0.
Note: This bit is not used in I
2
S mode.
Bit 3
UDR:
Underrun flag
0: No underrun occurred
1: Underrun occurred
This flag is set by hardware and reset by a software sequence. Refer to
for the software sequence.
Note: This bit is not used in SPI mode.
Bit 2
CHSIDE
: Channel side
0: Channel Left has to be transmitted or has been received
1: Channel Right has to be transmitted or has been received
Note: This bit is not used for SPI mode and is meaningless in PCM mode.
Bit 1
TXE:
Transmit buffer empty
0: Tx buffer not empty
1: Tx buffer empty
Bit 0
RXNE:
Receive buffer not empty
0: Rx buffer empty
1: Rx buffer not empty
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
DR[15:0]
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
rw
Bits 15:0
DR[15:0]:
Data register
Data received or to be transmitted.
The data register is split into 2 buffers - one for writing (Transmit Buffer) and another one for
reading (Receive buffer). A write to the data register will write into the Tx buffer and a read
from the data register will return the value held in the Rx buffer.
Note: These notes apply to SPI mode:
Depending on the data frame format selection bit (DFF in SPI_CR1 register), the data
sent or received is either 8-bit or 16-bit. This selection has to be made before enabling
the SPI to ensure correct operation.
For an 8-bit data frame, the buffers are 8-bit and only the LSB of the register
(SPI_DR[7:0]) is used for transmission/reception. When in reception mode, the MSB of
the register (SPI_DR[15:8]) is forced to 0.
For a 16-bit data frame, the buffers are 16-bit and the entire register, SPI_DR[15:0] is
used for transmission/reception.