
ST52F510/F513/F514
96/106
Figure 15.2 Serial Peripheral Interface Block Diagram
Procedure
– Select theSPR0, SPR1and SPR2 bits to define
the serial clock baud rate (seeSPI_CR register).
– Select the CPOL and CPHA bits to defineone of
the four relationships between the data transfer
and the serial clock (see Figure 15.4).
– The SS pin must be connected to a high level
signal during the complete byte transmit se-
quence.
– The MSTR and SPE bits must be set (they re-
main set only if the SS pin is connectedto a high
level signal).
In this configuration the MOSI pin is a data output
and to the MISO pin is a data input.
Transmit sequence
Transmit sequence begins when a byte is written in
the SPI_OUT register.
The databyte is loaded in parallelinto the 8-bitshift
register (from the internal bus) during a write cycle
and then shifted out serially to the MOSI pin most
significant bit first.
When data transfer is complete:
– The SPIF bit is set by hardware
– An interrupt is generated if the SPIE bit is set.
During the last clock cycle the SPIF bit is set, a
copy of the data byte received in the shift register
is moved to a buffer. When the SPI_IN register is
read, the SPI peripheral returns this buffered
value. Clearing the SPIF bit is performed by the
following software sequence:
1. An access to the SPI_STATUS_CR register
while the SPIF bit is set
2. A read to the SPI_IN register.
Note:
While the SPIF bit is set, all writes to the
SPI_OUT
register
are
SPI_STATUS_CR register is read.
inhibited
until
the
SPI_IN
Read Buffer
8-Bit Shift Register
Write
Read
Internal Bus
SPI
STATE
SPIE
SPE
MSTR
CPHA
SPR0
SPR1
CPOL
SPIF WCOL
MODF
SERIAL
CLOCK
GENERATOR
MOSI
MISO
SS
SCK
CONTROL
SPI_CR
SPI_STATUS_CR
-
IT
request
MASTER
CONTROL
SPR2
OR
SSI
SSM
SOD
SPI_OUT