Arduino Due how to connect 8 spi devices


I am developing board that will have 8 SPI chip that needs to communicate with an ARM microcontroller and I need to figure out how to connect them. I would like to have my ADC on separate hardware SPI than rest.

Below is the list of stuff I need to connect,

  1. Ethernet (W5500) x1
  2. SD card x1
  3. Flash (AT25SL641-MHE-T) x 1
  4. ADC (ADS8688) x 4

So base on my understanding I can use:

  1. Ethernet : PA28(111) Ethernet CS and PA25,PA26, and PA27 for MISO, MOSI,SPCK
  2. SD Card: PA29(112) SD Card CS, and same SPI as Ethernet
  3. Flash: PC29(102) Flash CS, and same SPI as above
  4. ADC: I don't know what to choose for chip select and MISO, MOSI, SCK

Please let me know if you have any questions.

Thank you

CS = ChipSelect

That pin must be unique for each device, and can be any I/O pin.
The other (data) pins are shared.

The ADS8688 has a CS pin (pin38).

@Leo Thanks for the reply, I understand that each Cheap select needs to be unique, but do I have to share, data with other ICs(there is a single SPI data in DUe), since this will slow down the data.

Yes. When a device is 'de-selected', it's not talking/listening to the SPI bus.

The Due has a single core processor, so can only do one thing at the time.
But usually so fast that for the user it seems it's all happening at the same time.

Thanks for the answer


1/ The USART peripheral is usable in SPI mode too.

2/ There is a TurboSpi library for the DUE (leverages SPI DMA)

@Ard_newbie I did not know that thanks