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

SPI EasyDMA MAXCNT limitation

Hi everyone,

I've been testing SPIM with easyDMA, using nrf_drv_spi. I'd like to flush a 6-axis sensor FIFO in one SPI operation (31 samples * 12 bytes = 372 bytes) but as soon as the size of the buffer exceeds 256 bytes, it doesn't work and I only read 10 samples (120 bytes).

I can't find anywhere that MAXCNT is limited to 256 bytes. Is it a bug or is it really limited?

(I assume the sensor supports more than 256-byte read operation)

Parents Reply
  • split up your array into 12 bytes buffer and use the LIST feature to transmit/receive 31 samples in succession.

    This array list does not provide a mechanism to explicitly specify where the next item in the list is located.  Instead, it assumes that the list is organized as a linear array where items are located one after the other in RAM.
    

    The above feature will help you transmit what you want. Remember that this does not happen automatic, If you want it to automatically transfer array list one after the another, you need to use PPI to trigger the next transaction when the previous one ended.

Children
No Data
Related