AnsweredAssumed Answered

Problem with 2D array DMA transfer

Question asked by ThierryNolf on Nov 27, 2015
Latest reply on Dec 11, 2015 by jeyanthi.jegadeesan

I'm trying to adapt the ADC-DAC loopthrough code for the EZ-kit SC-589 to copy the data to DDR memory, and read it back from the memory.

I'm try to do the deïnterlacing of the channels in the DMA transfer, with a 2D array DMA.

In the enclosed code the data-buffers should be at 0x80600000 ordered per channel with an offset of 0x800 between the channels.

 

Although the DMA cycle is launched within one command it seems like I get some strange behaviour in the data copy.

Since there is an inner loop (X) and an outer loop (Y) in the transfer, it seems like for each sequent outer value, one inner word (4 bytes) less is copied.  In my case I try to copy 64 words, for the 4 channels and the result I get seems to be something like a copy of 64 words for channel 1, 63 words for channel 2, 62 words for channel 3 and 61 words for channel 4.

 

Of course this gives som strange results at the output in the 64 word boundaries...

 

sine.jpg

 

Could anybody review my DMA code please ?

I don't know where to look, since I cannot change the inner loop while the DMA is processing ?

 

Thanks in advance,

 

Br,

Thierry

Attachments

Outcomes