SAM3X8E: SPI Read Transaction via DMA on H/W Trigger

1 post / 0 new
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello Community,


I want to develop a data acquisition system on basis of the SAM3X8E (Arduino Due Board) and an external 24-Bit Analog Digital Converter (ADC) which operates with SPI (no chip select used!). 

When the ADC finishes a sampling process (one sample!), thus the data is ready to be read out, it changes the level on its DRDY (data ready) pin, which can be used e.g. by the microcontroller as a trigger 

to read the valid sample via SPI. Now the idea is to use that DRDY signal as trigger event / external interrupt for the SPI DMA Read Transaction on the SAM3X8E. I have just looked in the data sheet of the SAM3X8E 

and found that:


1.) SPI0 is DMA'able with the DMAC

2.) DMAC is connected with the "Trigger Manager" (Fig. 22-1 "DMA Controller (DMAC) Block Diagram", p. 340) and is capable of "External Trigger". The configuration can be made via the DMAC Hardware Handshake Interface.


My Questions:

1.) Can I use for the SPI DMA Transaction as Hardware Trigger the DRDY (data ready) signal coming from the ADC ? This approach would make it possible not "disturb" the CPU, means: no polling, no interrupt handler by GPIO external interrupt etc.. Unfortunately, I could not find further information about the "DMAC Hardware Handshake Interface" in the data sheet.


2.) Is the SPI DMA mode restricted to SPI Master Mode or SPI Slave Mode only or are both operating modes are possible with DMA ?


3.) Are a "DMA" Connection between the SPI and the USART Peripheral possible, meaning sending the data read out on the SPI peripheral directly to the USART transmission buffer ?



I appreciate every help/hint !


Best regards,


Last Edited: Sat. Apr 4, 2020 - 09:31 PM