This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DMA 32 bit Datasize behaviour

Other Parts Discussed in Thread: TMS320F28335

Hi,

I am using the DMA of my TMS320F28335 to transfer the ADC results toRAM (XINTF7).

I have configured the datasize of the DMA to 32 bit. 

In order to transfer 16 results ( each 16 bit ), I would think that I would have to set the burst size to 8 (8*32 bit = 16*16 bit).

Unfortunately this seems to be incorrect; it seems that I have to set the burst size to 16 (as for a datasize of 16 bit).

I've searched the whole DMA reference manual for a hint on how to setup the burst size correctly but I did not find anything.

Can anyone point out to me, why the DMA behaves as it does? Or did I misconfigure something?

Thanks!

  • Hi,

    Burst size is always in term of 16bit word and doesn't depends on data size. So even though data size is 32 bit, burst size need to be programmed as 16 to read 16, 16bit words.

    Regards,

    Vivek Singh

  • Thank you Vivek for this clarification. 

    It would be best, if you could include this in the DMA manual, because this is really a big tripping stone.

    Thanks!

  • Thanks for your feedback Kai. We'll look into options to make it more clear in TRM.

    Regards,

    Vivek Singh

  • Hi Kai,

    I looked at the DMA manual and see that there is a note (one below) in register bit definition for DATASIZE which mentions this.


     

     

     

  • Hi Vivek,

    there is a note

    "Regardless of the value of this bit all of the registers in
    the DMA refer to 16-bit words. The only effect this bit
    causes is whether the databus width is 16 or 32 bits.
    It is up to you to configure the pointer step increment and
    size to accommodate 32-bit data transfers. See section
    Section 6 for details."

    The last sentence means to me, that I have to configure pointer step increment and size to accomodate for 32-bit transfers. In my eyes, this means, that I would have to accomodate size of the transfer, which would in turn mean, that I have to give the size in 32-bit words.

    I see your point here (the first sentence clearly states, that all reigsters refer to 16-bit words. But the second sentence kind of unclarifies this.