09.12.2012 Views

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Serial peripheral interface (SPI) <strong>RM0090</strong><br />

Figure 283. Transmission using DMA<br />

Example with CPOL=1, CPHA=1<br />

SCK<br />

MISO/MOSI (out)<br />

TXE flag<br />

BSY flag<br />

DMA request<br />

Tx buffer<br />

(write to SPI_DR)<br />

DMA writes to SPI_DR<br />

DMA TCIF flag<br />

(DMA transfer complete)<br />

software configures the<br />

DMA SPI Tx channel<br />

to send 3 data items<br />

and enables the SPI<br />

0xF1<br />

DMA writes<br />

DATA1 into<br />

SPI_DR<br />

Figure 284. Reception using DMA<br />

Example with CPOL=1, CPHA=1<br />

SCK<br />

MISO/MOSI (in)<br />

RXNE flag<br />

DMA request<br />

Rx buffer<br />

(read from SPI_DR)<br />

DMA read from SPI_DR<br />

flag DMA TCIF<br />

(DMA transfer complete)<br />

software configures the<br />

DMA SPI Rx channel<br />

to receive 3 data items<br />

and enables the SPI<br />

DATA 1 = 0xF1 DATA 2 = 0xF2 DATA 3 = 0xF3<br />

b0 b1 b2 b3 b4 b5 b6 b7 b0 b1 b2 b3 b4 b5 b6 b7 b0 b1 b2 b3 b4 b5 b6 b7<br />

set by hardware set by hardware<br />

cleared by DMA write clear by DMA write<br />

set by hardware<br />

set by hardware<br />

DMA writes<br />

DATA2 into<br />

SPI_DR<br />

0xF2<br />

DATA 1 = 0xA1<br />

set by hardware clear by software<br />

DMA writes<br />

DATA3 into<br />

SPI_DR<br />

set by hardware<br />

DMA transfer is<br />

complete (TCIF=1 in<br />

DMA_ISR)<br />

813/1416 Doc ID 018909 Rev 3<br />

0xF3<br />

software waits<br />

until TXE=1<br />

ignored by the DMA because<br />

DMA transfer is complete<br />

software waits until BSY=0<br />

DATA 2 = 0xA2 DATA 3 = 0xA3<br />

b0 b1 b2 b3 b4 b5 b6 b7 b0 b1 b2 b3 b4 b5 b6 b7 b0 b1 b2 b3 b4 b5 b6 b7<br />

DMA reads<br />

DATA1 from<br />

SPI_DR<br />

clear by DMA read<br />

0xA1 0xA2 0xA3<br />

DMA reads<br />

DATA2 from<br />

SPI_DR<br />

set by hardware<br />

DMA reads<br />

DATA3 from<br />

SPI_DR<br />

reset<br />

by hardware<br />

ai17349<br />

clear<br />

by software<br />

The DMA transfer is<br />

complete (TCIF=1 in<br />

DMA_ISR)<br />

ai17350

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!