10.1.3 Interfacing in SPI Mode

The SAMA7G54 SOM Series offers 11 FLEXCOM interfaces configured in SPI mode.

The SPI circuit is a synchronous serial data link that provides communication with external devices in Host or Client 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 SPI devices. During a data transfer, one SPI system acts as the “host,” which controls the data flow, while the other devices act as “clients,” which have data shifted in and out by the host. Different CPUs can take turns being hosts (multiple host protocol, as opposed to single host protocol, where one CPU is always the host while all others are always clients). One host can simultaneously shift data into multiple clients. However, only one client can drive its output to write data back to the host at any given time.

A client device is selected when the host asserts its NSS signal. When multiple client devices are available, the host generates a separate client select signal (NPCS) for each.

The SPI system consists of two data lines and two control lines:
  • Host Out Client In (MOSI)—This data line supplies the output data from the host shifted into the input(s) of the client(s).
  • Host In Client Out (MISO)—This data line supplies the output data from a client to the input of the host. There may be no more than one client transmitting data during any particular transfer.
  • Serial Clock (SPCK)—This control line is driven by the host and regulates the flow of the data bits. The host can transmit data at a variety of baud rates; there is one SPCK pulse for each bit transmitted.
  • Client Select (NSS)—This control line allows clients to be turned on and off by hardware.
Table 10-24. FLEXCOM0 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM01125PA0SPI Host Output Client Input (MOSI)
130PA1SPI Host Input Client Output (MISO)
126PA2SPI Serial Clock (SPCK)
128PA3SPI Chip Select 0 (NPCS0)
121PA4SPI Chip Select 1 (NPCS1)
FLEXCOM0446PE3SPI Host Output Client Input (MOSI)
49PE4SPI Host Input Client Output (MISO)
48PE5SPI Serial Clock (SPCK)
50PE6SPI Chip Select 0 (NPCS0)
Table 10-25. FLEXCOM1 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM11127PA5SPI Host Output Client Input (MOSI)
124PA6SPI Host Input Client Output (MISO)
132PA13SPI Serial Clock (SPCK)
131PA12SPI Chip Select 0 (NPCS0)
133PA14SPI Chip Select 1 (NPCS1)
FLEXCOM1220PD12SPI Host Output Client Input (MOSI)
21PD13SPI Host Input Client Output (MISO)
22PD14SPI Serial Clock (SPCK)
19PD15SPI Chip Select 0 (NPCS0)
24PD16SPI Chip Select 1 (NPCS1)
FLEXCOM13126PA2SPI Host Output Client Input (MOSI)
128PA3SPI Host Input Client Output (MISO)
22PD14SPI Serial Clock (SPCK)
19PD15SPI Chip Select 0 (NPCS0)
24PD16SPI Chip Select 1 (NPCS1)
FLEXCOM1487PC9SPI Host Output Client Input (MOSI)
88PC10SPI Host Input Client Output (MISO)
22PD14SPI Serial Clock (SPCK)
19PD15SPI Chip Select 0 (NPCS0)
24PD16SPI Chip Select 1 (NPCS1)
Table 10-26. FLEXCOM2 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM21123PA7SPI Host Output Client Input (MOSI)
122PA8SPI Host Input Client Output (MISO)
119PA9SPI Serial Clock (SPCK)
120PA10SPI Chip Select 0 (NPCS0)
129PA11SPI Chip Select 1 (NPCS1)
FLEXCOM2223PD17SPI Host Output Client Input (MOSI)
111PD18SPI Host Input Client Output (MISO)
110PD19SPI Serial Clock (SPCK)
29PD20SPI Chip Select 0 (NPCS0)
26PD21SPI Chip Select 1 (NPCS1)
FLEXCOM23121PA4SPI Host Output Client Input (MOSI)
127PA5SPI Host Input Client Output (MISO)
110PD19SPI Serial Clock (SPCK)
29PD20SPI Chip Select 0 (NPCS0)
26PD21SPI Chip Select 1 (NPCS1)
FLEXCOM2489PC11SPI Host Output Client Input (MOSI)
90PC12SPI Host Input Client Output (MISO)
110PD19SPI Serial Clock (SPCK)
29PD20SPI Chip Select 0 (NPCS0)
26PD21SPI Chip Select 1 (NPCS1)
Table 10-27. FLEXCOM3 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM31180PA15SPI Host Output Client Input (MOSI)
179PA16SPI Host Input Client Output (MISO)
178PA17SPI Serial Clock (SPCK)
177PA18SPI Chip Select 0 (NPCS0)
182PA19SPI Chip Select 1 (NPCS1)
FLEXCOM3255PC0SPI Host Output Client Input (MOSI)
56PC1SPI Host Input Client Output (MISO)
53PB29SPI Serial Clock (SPCK)
58PB30SPI Chip Select 0 (NPCS0)
54PB31SPI Chip Select 1 (NPCS1)
FLEXCOM33124PA6SPI Host Output Client Input (MOSI)
123PA7SPI Host Input Client Output (MISO)
53PB29SPI Serial Clock (SPCK)
58PB30SPI Chip Select 0 (NPCS0)
54PB31SPI Chip Select 1 (NPCS1)
FLEXCOM3491PC13SPI Host Output Client Input (MOSI)
92PC14SPI Host Input Client Output (MISO)
53PB29SPI Serial Clock (SPCK)
58PB30SPI Chip Select 0 (NPCS0)
54PB31SPI Chip Select 1 (NPCS1)
FLEXCOM3524PD16SPI Host Output Client Input (MOSI)
23PD17SPI Host Input Client Output (MISO)
53PB29SPI Serial Clock (SPCK)
58PB30SPI Chip Select 0 (NPCS0)
54PB31SPI Chip Select 1 (NPCS1)
Table 10-28. FLEXCOM4 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM41175PA20SPI Host Output Client Input (MOSI)
178PA21SPI Host Input Client Output (MISO)
176PA22SPI Serial Clock (SPCK)
184PA23SPI Chip Select 0 (NPCS0)
183PA24SPI Chip Select 1 (NPCS1)
FLEXCOM4257PC2SPI Host Output Client Input (MOSI)
59PC3SPI Host Input Client Output (MISO)
60PC4SPI Serial Clock (SPCK)
61PC5SPI Chip Select 0 (NPCS0)
62PC6SPI Chip Select 1 (NPCS1)
FLEXCOM43122PA8SPI Host Output Client Input (MOSI)
119PA9SPI Host Input Client Output (MISO)
60PC4SPI Serial Clock (SPCK)
61PC5SPI Chip Select 0 (NPCS0)
62PC6SPI Chip Select 1 (NPCS1)
FLEXCOM4493PC15SPI Host Output Client Input (MOSI)
99PC16SPI Host Input Client Output (MISO)
60PC4SPI Serial Clock (SPCK)
61PC5SPI Chip Select 0 (NPCS0)
62PC6SPI Chip Select 1 (NPCS1)
FLEXCOM45111PD18SPI Host Output Client Input (MOSI)
110PD19SPI Host Input Client Output (MISO)
60PC4SPI Serial Clock (SPCK)
61PC5SPI Chip Select 0 (NPCS0)
62PC6SPI Chip Select 1 (NPCS1)
Table 10-29. FLEXCOM5 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM51187PA28SPI Host Output Client Input (MOSI)
188PA29SPI Host Input Client Output (MISO)
185PA26SPI Serial Clock (SPCK)
186PA27SPI Chip Select 0 (NPCS0)
181PA25SPI Chip Select 1 (NPCS1)
FLEXCOM5230PD25SPI Host Output Client Input (MOSI)
36PD26SPI Host Input Client Output (MISO)
34PD27SPI Serial Clock (SPCK)
35PD28SPI Chip Select 0 (NPCS0)
33PD29SPI Chip Select 1 (NPCS1)
FLEXCOM53120PA10SPI Host Output Client Input (MOSI)
129PA11SPI Host Input Client Output (MISO)
34PD27SPI Serial Clock (SPCK)
35PD28SPI Chip Select 0 (NPCS0)
33PD29SPI Chip Select 1 (NPCS1)
FLEXCOM54100PC17SPI Host Output Client Input (MOSI)
101PC18SPI Host Input Client Output (MISO)
34PD27SPI Serial Clock (SPCK)
35PD28SPI Chip Select 0 (NPCS0)
33PD29SPI Chip Select 1 (NPCS1)
FLEXCOM5529PD20SPI Host Output Client Input (MOSI)
26PD21SPI Host Input Client Output (MISO)
34PD27SPI Serial Clock (SPCK)
35PD28SPI Chip Select 0 (NPCS0)
33PD29SPI Chip Select 1 (NPCS1)
Table 10-30. FLEXCOM6 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM616PB2SPI Host Output Client Input (MOSI)
5PB1SPI Host Input Client Output (MISO)
4PA31SPI Serial Clock (SPCK)
7PB0SPI Chip Select 0 (NPCS0)
3PA30SPI Chip Select 1 (NPCS1)
Table 10-31. FLEXCOM7 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM7285PC7SPI Host Output Client Input (MOSI)
86PC8SPI Host Input Client Output (MISO)
87PC9SPI Serial Clock (SPCK)
88PC10SPI Chip Select 0 (NPCS0)
89PC11SPI Chip Select 1 (NPCS1)
FLEXCOM73181PA25SPI Host Output Client Input (MOSI)
185PA26SPI Host Input Client Output (MISO)
87PC9SPI Serial Clock (SPCK)
88PC10SPI Chip Select 0 (NPCS0)
89PC11SPI Chip Select 1 (NPCS1)
FLEXCOM7452PB28SPI Host Output Client Input (MOSI)
53PB29SPI Host Input Client Output (MISO)
87PC9SPI Serial Clock (SPCK)
88PC10SPI Chip Select 0 (NPCS0)
89PC11SPI Chip Select 1 (NPCS1)
Table 10-32. FLEXCOM8 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM81144PB8SPI Host Output Client Input (MOSI)
156PB9SPI Host Input Client Output (MISO)
148PB10SPI Serial Clock (SPCK)
158PB11SPI Chip Select 0 (NPCS0)
157PB12SPI Chip Select 1 (NPCS1)
FLEXCOM8292PC14SPI Host Output Client Input (MOSI)
91PC13SPI Host Input Client Output (MISO)
90PC12SPI Serial Clock (SPCK)
93PC15SPI Chip Select 0 (NPCS0)
99PC16SPI Chip Select 1 (NPCS1)
FLEXCOM83186PA27SPI Host Output Client Input (MOSI)
187PA28SPI Host Input Client Output (MISO)
90PC12SPI Serial Clock (SPCK)
93PC15SPI Chip Select 0 (NPCS0)
99PC16SPI Chip Select 1 (NPCS1)
FLEXCOM8458PB30SPI Host Output Client Input (MOSI)
54PB31SPI Host Input Client Output (MISO)
90PC12SPI Serial Clock (SPCK)
93PC15SPI Chip Select 0 (NPCS0)
99PC16SPI Chip Select 1 (NPCS1)
Table 10-33. FLEXCOM9 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM91151PB13SPI Host Output Client Input (MOSI)
155PB14SPI Host Input Client Output (MISO)
154PB15SPI Serial Clock (SPCK)
152PB16SPI Chip Select 0 (NPCS0)
159PB17SPI Chip Select 1 (NPCS1)
Table 10-34. FLEXCOM11 Interface Configurations in SPI Mode
Interface InstanceIO SetPin No.Pin NameFunction
FLEXCOM111139PB3SPI Host Output Client Input (MOSI)
140PB4SPI Host Input Client Output (MISO)
141PB5SPI Serial Clock (SPCK)
142PB6SPI Chip Select 0 (NPCS0)
143PB7SPI Chip Select 1 (NPCS1)
FLEXCOM1135PB1SPI Host Output Client Input (MOSI)
6PB2SPI Host Input Client Output (MISO)
141PB5SPI Serial Clock (SPCK)
142PB6SPI Chip Select 0 (NPCS0)
143PB7SPI Chip Select 1 (NPCS1)
FLEXCOM11460PC4SPI Host Output Client Input (MOSI)
61PC5SPI Host Input Client Output (MISO)
141PB5SPI Serial Clock (SPCK)
142PB6SPI Chip Select 0 (NPCS0)
143PB7SPI Chip Select 1 (NPCS1)