This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

High data rate SPI on Nrf52 using EasyDMA lists

My application involves the Nrf52 using softdevice and a slave only SPI ADC running at approximately 26khz. The ADC has a pin interrupt to indicate data ready. There seems to be no way that i can guarantee the softdevice won't hang up the ISR for more than ~40us so I am looking for other solutions.

The one that comes to mind is to use PPI to trigger TASK_START on the SPIM. Combined with what little I can glean from the EasyDMA lists description, it would seem that this could result in my samples getting stored successively in memory. The trouble is that I see no way to read the contents of the buffer and then reset the dma list without the possibility of yielding to the soft device somewhere in the middle of this process.

Is globally disabling interrupts the only solution here? Is there another way to read the ADC?

Related