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.

TMS570LS3137: Difference Between Hardware and Software Triggering for DMA Application

Part Number: TMS570LS3137


Hello,

I could not find satisfying and enough information about difference between them. When it is set as "DMA_HW", it works for dmaSetChEnable function. However, there is no transfer occured when it's set as "DMA_SW". 

What are the possible reasons and what are the differences between them? At first sight, I thought that "hardware triggering" is a way of triggering by doing something like pushing a button but it is not the case obviously. 

Could you help me please?

Best Regards,

Caner

  • Hi Caner,

    DMA controller has 16 channels and up to 32 DMA request lines. The dmaReqAssign() is used to map the DMA requests to the DMA channels.

        dmaReqAssign((DMA_CH0, 3) --> map SPI2 transmit to DMA channel 0. By default, the SPI2 TX DMA request is mapped to DMA channel 3

    The SPI generates a request each time the TX data is copied to the TX shift register. --> this is HW trigger

    SW trigger, if DMA is enabled and DMA packet is configured properly, dmaSetChEnable(DMA_CH0, DMA_SW) should trigger the DMA transfer.

  • Thank you so much, Sir!