Hi,
I am trying to use two EDMA channels in parallel. One channel is driving SPI DAC and the second channel is used for copying data chunk from SDRAM (connected to EMIFA) to DSP L2 RAM, I am using some unused DMA channel for this purpose (let's say channel 0). The SPI DMA channel is configured to move two bytes on each SPI TX event and the second DMA channel is configured to move some amount of data (about 15KBytes) as single burst and stop. The most important requirement is that the SPI events will be surved by DMA on time.
I have configured the SPI EDMA channel to use queue 1 and the data EDMA channel to use queue 0, I have also configured the masters bus access priority so, the EDMA0_TCC1 will have higher priority than EDMA0_TCC0. Dispite all this configuration I can still see that during the operation of the second DMA channel (data copy) the SPI DMA is not surved on time as the delay between SPI transactions is much higher than the delay in case of no activity on second DMA channel.
I was trying to understand the reason for such behaviour, and I saw that minmal DMA transaction size is 16 bytes, so I guess once and the second DMA channel gets bus access, it reads 16 bytes from the SDRAM and only then it can switch to SPI processing.
What is the correct EDMA configuration I should use in order to make sure the SPI events will be served in time (I don't care that the data copying from SDRAM will take a little more time).
Thanks, Alexey.