i am experiencing DMA direct mode errors in an application which writes big amounts of data to SPI at high speed.
The errors are raised by the spi rx channel although i am doing SPI tx only.
According to the reference manual, DMA direct mode errors appear in peripheral-to-memory mode with MINC bit cleared only when
a DMA request occurs while the previous data have not yet been fully transferred into the memory (because the memory bus was not granted)
It seems that i was able to fix this by raising this particular DMA streams priority over the others but i don't feel good for a couple of reasons:
a.) I can't be sure this will happen again randomly because of my lack of understanding the issue.
b.) I don't see why peripheral-to-memory DMA is used at all when doing SpiSend (and not Transceive or Receive).
c.) As this data is discarded anyway doing a port_halt() in response creates the problem in the first place.
I would be very glad if someone could shed some light on this for me (and possibly others).
Thanks and with best regards,
Vinz