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.

TMS320F28376S: DMA Channel behavior

Part Number: TMS320F28376S

Dear Sir , 

I need some clarification regrading DMA completion behavior , i have 2 Channels defined in DMA module 

1. both of them trigger from the same source  

2. both of them are in mode of One shot enabled  and continues enabled (e.g. per trigger transfer all )

3.on the first channel the interrupt of end of transfer is enabled

assuming that both of channels transfer  the same amount of data , is it correct to assume when i get interrupt end of transfer the other channel is finish as well ?

how does multiple channels behave on single shot (round robin per burst or wait until transfer is completed) ?

what is the best way to measure the time that it takes both of the  DMA channels  to complete transfer (on same trigger ) ?

  • Hi Eyal Saban1,

    Please note that there is only a single DMA bus and when multiple channels are triggered at the same time, the DMA operates based on the Channel priority scheme which is detailed in the Section 5.6 in the TRM http://www.ti.com/lit/ug/spruhx5g/spruhx5g.pdf .

    Hence, the completion of the second channel DMA transfer depends on which are the 2 channels and which one channel will trigger the end of the transfer. 

    Yes, it will transfer on round robin basis per burst.

    Based in the channel priority, you can determine which channel is going to complete the transfer at last. Enable the interrupt on that channel. Additionally, Configure the timer to start at the time of the trigger and end the timer in the DMA ISR. With this method, you can approximately measure the time taken for the DMA channels to complete the transfer.

    Please click on the "verify answer" button if this response resolves your queries. 

    Thanks & Regards

    Pramod