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.

Can I use edma like this?

Hello

     I have 4 dma transfers to do at same time. three of them are AB-Synchronized Transfers, and the last one is A-Synchronized Transfer.

     I want to use one edma channel, and four params. param links to next param, like 1->2->3->4

     and at end of each transfer except the last one, it generate chain event to the same channel.

     I want to start the edma only once for the four transfers, can it work?

Thanks!

BR

Vincent

    

  • Hi Vincent,

    May I know which processor and it's TRM you are referring to?

     

    Regards,

    Shankari.

  • Hi Shankari

          I use 814x and it has a 674x dsp. But I think my question is a common one because edma is same for all C67x dsp, is it right?

    Thanks!

    BR

    Vincent

  • Vincent,

    Actually the EDMA is a separate entity or IP from the C674x CPU. Devices may have the same C674x CPU but different versions of EDMA or sometimes different configurations of the same EDMA version based on the use cases of the target market of the particular device. Those of us monitoring this forum do not have expertise on the DM814x device. However, I will move your post to the right one and inform the moderators there of your post.

    Regards,

    Sunil

  • Vincent,

    I am from the DM81xx team.

    I have never tried your EDMA use case, but checking the DM814x EDMA TRM, this use case seems to be possible.  From what I understand, you need to use linking instead of chaining EDMA feature. Below is some extract from the EDMA TRM, which should help/explain:

    Chaining - A trigger mechanism in which a transfer can be initiated at the completion of another transfer or sub-transfer.

    Linking - The mechanism of reloading a PaRAM set with new transfer characteristics on completion of the current transfer.

    Link parameter set - A PaRAM set that is used for linking


    8.2 Features

    The EDMA3 channel controller has following features:
    • Flexible transfer definition:
    – Increment or FIFO transfer addressing modes.
    Linking mechanism allows automatic PaRAM set update.
    – Chaining allows multiple transfers to execute with one event.

     8.4.3 Parameter RAM (PaRAM)
    The PaRAM structure supports flexible ping-pong, circular buffering, channel chaining, and auto-reloading (linking).

    8.4.3.2.12 Link Address (LINK)
    The EDMA3CC provides a mechanism, called linking, to reload the current PaRAM set upon its natural termination (that is, after the count fields are decremented to 0) with a new PaRAM set.

    8.4.3.7 Linking Transfers


    Once the channel completion conditions are met for an event, the transfer parameters that are located at the link address are loaded into the current DMA or QDMA channel’s associated parameter set. This indicates that the EDMA3CC reads the entire set (eight words) from the PaRAM set specified by LINK and writes all eight words to the PaRAM set that is associated with the current channel. Figure 8-9 shows an example of a linked transfer.

    8.4.8 Chaining EDMA3 Channels

      Chaining is different from linking. The EDMA3 link feature reloads the current channel parameter set with the linked parameter set. The EDMA3 chaining feature does not modify or update any channel parameter set; it provides a synchronization event to the chained channel

    8.5.4.3 Continuous Operation

    Check also the EDMA driver user guide : http://processors.wiki.ti.com/index.php/TI81XX_PSP_EDMA_Driver_User_Guide

    Best regards,

    Pavel

  • Hi Pavel

         I test my case in the first mail and It is OK.

         It must use linking and chaining function both. because linking can only update param, but I need chainling to generate event automatically.

          If don't use chaining, I must start DMA manually 4 times in my case.