SPI small packets B IG delay due to DMA init overhead

Hi folks,

We need to read blocks of 4 bytes from different SPI devices. (6 x ADC devices, at max 4KHz from each device)

When using the standard NASpiReadWrite function, the operation is EXTREMELY slow due to the overhead of setting up DMA-transfer for each call (only 4 bytes read per call).

The DMA init time is measured to be approx 250 uS (microsec). This is the time spent in setupDMA funciton inside NASpiReadWrite.

Between each call we must set some GPIO outputs to control CS of the various SPI devices.

Is it possible to disable the use of DMA and read directly, or is it possible to minimize the DMA init time somehow?

Thanx for any replies!!

Additional question:

Would it be possible to setup a DMA-buffer of e.g. 1024 bytes, and then issue multiple SPI-reads (without reinit of DMA), and then all data being pushed correctly in sequence into our DMA buffer?

-G