RM0367 Rev 7 889/1043
RM0367 Serial peripheral interface/ inter-IC sound (SPI/I2S)
922
To close communication it is mandatory to follow these steps in order:
1. Disable DMA streams for Tx and Rx in the DMA registers, if the streams are used.
2. Disable the SPI by following the SPI disable procedure.
3. Disable DMA Tx and Rx buffers by clearing the TXDMAEN and RXDMAEN bits in the
SPI_CR2 register, if DMA Tx and/or DMA Rx are used.
Figure 289. Transmission using DMA
0xF1
Tx buffer
TXE flag
0xF2
BSY flag
0xF3
set by hardware
clear by DMA write
set by hardware
cleared by DMA write
set by hardware
set by hardware
SCK
reset
Example with CPOL=1, CPHA=1
(write to SPI_DR)
MISO/MOSI (out)
DATA 1 = 0xF1
DATA 2 = 0xF2
DATA 3 = 0xF3
software configures the
DMA SPI Tx channel
to send 3 data items
and enables the SPI
DMA writes to SPI_DR
DMA request
ignored by the DMA because
DMA TCIF flag
set by hardware clear by software
DMA writes
DATA1 into
SPI_DR
by hardware
DMA writes
DATA2 into
SPI_DR
DMA writes
DATA3 into
SPI_DR
software waits until BSY=0
(DMA transfer complete)
DMA transfer is
complete (TCIF=1 in
DMA_ISR)
software waits
until TXE=1
DMA transfer is complete
b0 b1 b2 b3 b4 b5 b6 b7 b0 b1 b2 b3 b4 b5 b6 b7
b0 b1 b2 b3 b4 b5 b6 b7
ai17349