764
SAM4CP [DATASHEET]
43051E–ATPL–08/14
Figure 36-36. Example of RTS Drive with Timeguard
36.6.7 SPI Mode
The Serial Peripheral Interface (SPI) Mode is a synchronous serial data link that provides communication with external
devices in Master or Slave Mode. It also enables communication between processors if an external processor is
connected to the system.
The Serial Peripheral Interface is essentially a shift register that serially transmits data bits to other SPIs. During a data
transfer, one SPI system acts as the “master” which controls the data flow, while the other devices act as “slaves'' which
have data shifted into and out by the master. Different CPUs can take turns being masters and one master may
simultaneously shift data into multiple slaves. (Multiple Master Protocol is the opposite of Single Master Protocol, where
one CPU is always the master while all of the others are always slaves.) However, only one slave may drive its output to
write data back to the master at any given time.
A slave device is selected when its NSS signal is asserted by the master. The USART in SPI Master mode can address
only one SPI Slave because it can generate only one NSS signal.
The SPI system consists of two data lines and two control lines:
Master Out Slave In (MOSI): This data line supplies the output data from the master shifted into the input of the
slave.
Master In Slave Out (MISO): This data line supplies the output data from a slave to the input of the master.
Serial Clock (SCK): This control line is driven by the master and regulates the flow of the data bits. The master
may transmit data at a variety of baud rates. The SCK line cycles once for each bit that is transmitted.
Slave Select (NSS): This control line allows the master to select or deselect the slave.
36.6.7.1 Modes of Operation
The USART can operate in SPI Master Mode or in SPI Slave Mode.
Operation in SPI Master Mode is programmed by writing 0xE to the USART_MODE field in US_MR. In this case the SPI
lines must be connected as described below:
The MOSI line is driven by the output pin TXD.
The MISO line drives the input pin RXD.
The SCK line is driven by the output pin SCK.
The NSS line is driven by the output pin RTS.
Operation in SPI Slave Mode is programmed by writing 0xF to the USART_MODE field in US_MR. In this case the SPI
lines must be connected as described below:
The MOSI line drives the input pin RXD.
The MISO line is driven by the output pin TXD.
D0
D1
D2
D3
D4
D5
D6
D7
TXD
Start
Bit
Parity
Bit
Stop
Bit
Baud Rate
Clock
TG = 4
Write
US_THR
TXRDY
TXEMPTY
RTS
1