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 />

27.3 SPI functional description<br />

27.3.1 General description<br />

The block diagram of the SPI is shown in Figure 270.<br />

Figure 270. SPI block diagram<br />

MOSI<br />

MISO<br />

SCK<br />

NSS<br />

Read<br />

Rx buffer<br />

Shift register<br />

Tx buffer<br />

Write<br />

Baud rate generator<br />

Master control logic<br />

Address and data bus<br />

LSB first<br />

BR[2:0]<br />

LSB<br />

FIRST<br />

SPI_CR2<br />

BIDI<br />

MODE<br />

Usually, the SPI is connected to external devices through 4 pins:<br />

● MISO: Master In / Slave Out data. This pin can be used to transmit data in slave mode<br />

and receive data in master mode.<br />

● MOSI: Master Out / Slave In data. This pin can be used to transmit data in master<br />

mode and receive data in slave mode.<br />

● SCK: Serial Clock output for SPI masters and input for SPI slaves.<br />

● NSS: Slave select. This is an optional pin to select a slave device. This pin acts as a<br />

‘chip select’ to let the SPI master communicate with slaves individually and to avoid<br />

contention on the data lines. Slave NSS inputs can be driven by standard IO ports on<br />

the master device. The NSS pin may also be used as an output if enabled (SSOE bit)<br />

and driven low if the SPI is in master configuration. In this manner, all NSS pins from<br />

devices connected to the Master NSS pin see a low level and become slaves when<br />

they are configured in NSS hardware mode. When configured in master mode with<br />

NSS configured as an input (MSTR=1 and SSOE=0) and if NSS is pulled low, the SPI<br />

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

TXE RXNE ERR<br />

IE IE IE<br />

SPI_SR<br />

BSY OVR MOD<br />

F<br />

Communication<br />

control<br />

SPE BR2 BR1 BR0 MSTR CPOL CPHA<br />

BIDI<br />

OE<br />

CRC<br />

EN<br />

0<br />

CRC<br />

ERR<br />

SPI_CR1<br />

CRC<br />

Next<br />

DFF<br />

0 SSOE<br />

0 0<br />

RX<br />

ONLY<br />

TXDM<br />

AEN<br />

TXE<br />

0<br />

1<br />

SSM SSI<br />

RXDM<br />

AEN<br />

RXNE<br />

ai14744

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

Saved successfully!

Ooh no, something went wrong!