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

nrf52 SPIM easyDMA

Hi In my application I need to transfer several paires of bytes to a slave device, and it's mandatory for CS signal to go high between pairs. (This actually means I have to use several SPIM transfers) Is there a way to configure the DMA module to use consecutive TX pointer addresses between transfers? (for example: in the first transfer I configure TXD.PTR to 0x1000, so that data from address 0x1000 & 0x1001 are sent on the first transfer. I want the second transfer to use addresses 0x1002-1003, without the need to re-configure TXD.PTR).

Thanks Yaron

  • This seems to be exactly what EasyDMA List mode does. Check the manual and make sure you have the latest engineering revision of the chip because the first version's EasyDMA List mode wasn't functional.

  • Thanks for your answer. I have tried using the EasyDMA List mode, but couldn't get it to work. (It should work as I have the second engineering revision). Is there an example for EasyDMA List mode usage? Thanks

  • I haven't seen an example - but it looks pretty simple - you set it up for list mode, you set the size of a 'chunk' and the initial pointer. Every time you START the SPI transaction it moves to the next chunk, updating the pointer.

    In what way couldn't you get it to work?

  • I did all that, but every time I START the SPI transaction it uses same the pointer, sending the same data.

  • did you set the thing into DMA list mode as opposed to DMA normal mode?

1 2