11.1.3 Interfacing in SPI Mode

Ten FLEXCOM interfaces configured in Serial Peripheral Interface (SPI) mode are available on the SAMA7D65 SOM Series.

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, contrary 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 11-4. FLEXCOM Interface Configurations in SPI Mode
Interface InstanceIO setPin No.PIOPin NameDescription
FLEXCOM02179PC7FLEXCOM0_IO0MOSI Signal
182PC6FLEXCOM0_IO1MISO Signal
181PC5FLEXCOM0_IO2SPCK Signal
178PC4FLEXCOM0_IO3NPCS0 Signal
180PC3FLEXCOM0_IO4NPCS1 Signal
FLEXCOM11123PD7FLEXCOM1_IO0MOSI Signal
122PD6FLEXCOM1_IO1MISO Signal
121PD4FLEXCOM1_IO2SPCK Signal
124PD5FLEXCOM1_IO3NPCS0 Signal
125PD3FLEXCOM1_IO4NPCS1 Signal
126PD1FLEXCOM1_IO5NPCS2 Signal
127PD2FLEXCOM1_IO6NPCS3 Signal
FLEXCOM12210PC14FLEXCOM1_IO0MOSI Signal
208PC15FLEXCOM1_IO1MISO Signal
209PC16FLEXCOM1_IO2SPCK Signal
207PC17FLEXCOM1_IO3NPCS0 Signal
199PC18FLEXCOM1_IO4NPCS1 Signal
FLEXCOM13191PB28FLEXCOM1_IO0MOSI Signal
194PB29FLEXCOM1_IO1MISO Signal
192PB30FLEXCOM1_IO2SPCK Signal
193PB31FLEXCOM1_IO3NPCS0 Signal
FLEXCOM2115PE8FLEXCOM2_IO0MOSI Signal
16PE9FLEXCOM2_IO1MISO Signal
9PE4FLEXCOM2_IO2SPCK Signal
10PE5FLEXCOM2_IO3NPCS0 Signal
12PE6FLEXCOM2_IO4NPCS1 Signal
13PE7FLEXCOM2_IO5NPCS2 Signal
19PE10FLEXCOM2_IO6NPCS3 Signal
FLEXCOM3238PA24FLEXCOM3_IO0MOSI Signal
39PA23FLEXCOM3_IO1MISO Signal
40PA22FLEXCOM3_IO2SPCK Signal
37PA21FLEXCOM3_IO3NPCS0 Signal
41PA20FLEXCOM3_IO4NPCS1 Signal
FLEXCOM33126PD1FLEXCOM3_IO0MOSI Signal
127PD2FLEXCOM3_IO1MISO Signal
125PD3FLEXCOM3_IO2SPCK Signal
83PD12FLEXCOM3_IO3NPCS0 Signal
FLEXCOM413PA18FLEXCOM4_IO0MOSI Signal
6PA17FLEXCOM4_IO1MISO Signal
4PA16FLEXCOM4_IO2SPCK Signal
5PA15FLEXCOM4_IO3NPCS0 Signal
7PA14FLEXCOM4_IO4NPCS1 Signal
36PA19FLEXCOM4_IO5NPCS2 Signal
41PA20FLEXCOM4_IO6NPCS3 Signal
FLEXCOM5180PD16FLEXCOM5_IO0MOSI Signal
79PD17FLEXCOM5_IO1MISO Signal
81PD14FLEXCOM5_IO2SPCK Signal
82PD15FLEXCOM5_IO3NPCS0 Signal
84PD13FLEXCOM5_IO4NPCS1 Signal
FLEXCOM5261PE3FLEXCOM5_IO0MOSI Signal
59PE2FLEXCOM5_IO1MISO Signal
60PE0FLEXCOM5_IO2SPCK Signal
62PE1FLEXCOM5_IO3NPCS0 Signal
64PD31FLEXCOM5_IO4NPCS1 Signal
FLEXCOM62141PB24FLEXCOM6_IO0MOSI Signal
143PB25FLEXCOM6_IO1MISO Signal
144PB23FLEXCOM6_IO2SPCK Signal
140PB22FLEXCOM6_IO3NPCS0 Signal
139PB21FLEXCOM6_IO4NPCS1 Signal
FLEXCOM6369PD24FLEXCOM6_IO0MOSI Signal
57PD25FLEXCOM6_IO1MISO Signal
56PD21FLEXCOM6_IO2SPCK Signal
70PD22FLEXCOM6_IO3NPCS0 Signal
66PD23FLEXCOM6_IO4NPCS1 Signal
FLEXCOM6473PD18FLEXCOM6_IO0MOSI Signal
74PD19FLEXCOM6_IO1MISO Signal
51PD20FLEXCOM6_IO2SPCK Signal
70PD22FLEXCOM6_IO3NPCS0 Signal
66PD23FLEXCOM6_IO4NPCS1 Signal
FLEXCOM7185PD8FLEXCOM7_IO0MOSI Signal
88PD9FLEXCOM7_IO1MISO Signal
87PD10FLEXCOM7_IO2SPCK Signal
86PD11FLEXCOM7_IO3NPCS0 Signal
83PD12FLEXCOM7_IO4NPCS1 Signal
FLEXCOM7258PD27FLEXCOM7_IO0MOSI Signal
67PD28FLEXCOM7_IO1MISO Signal
63PD29FLEXCOM7_IO2SPCK Signal
65PD30FLEXCOM7_IO3NPCS0 Signal
68PD26FLEXCOM7_IO4NPCS1 Signal
FLEXCOM73124PD5FLEXCOM7_IO0MOSI Signal
121PD4FLEXCOM7_IO1MISO Signal
122PD6FLEXCOM7_IO2SPCK Signal
123PD7FLEXCOM7_IO3NPCS0 Signal
FLEXCOM8295PC27FLEXCOM8_IO0MOSI Signal
96PC28FLEXCOM8_IO1MISO Signal
93PC29FLEXCOM8_IO2SPCK Signal
94PC30FLEXCOM8_IO3NPCS0 Signal
92PC31FLEXCOM8_IO4NPCS1 Signal
FLEXCOM91204PC8FLEXCOM9_IO0MOSI Signal
202PC9FLEXCOM9_IO1MISO Signal
206PC10FLEXCOM9_IO2SPCK Signal
201PC11FLEXCOM9_IO3NPCS0 Signal
205PC12FLEXCOM9_IO4NPCS1 Signal