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.

Event Set in EDMA Chaining Mechanism

Hi TI,

    I am transferring data from DDR to L2 SRAM Corepac 0 using chaining mechanism.

I am manually triggering the channel by using the function CSL_edma3HwChannelControl (hChannel, CSL_EDMA3_CMD_CHANNEL_SET, NULL).

According to my understanding –i)The event has to be set BCNT*CCNT times for Async.

                                                               ii) The TCC of one channel triggers another channel based on the TCC in the param set when the current channel is finished.

I found the Chaining happens when BCNT and CCNT is 1.Since the chaining will trigger the next channel.

When the BCNT and CCNT value is more than 1 do we have to manually set the event for BCNT*CCNT times or channel trigger itself  take care of it ?

Regards,

Janeeth

  • Hi Janeeth,

    You will need to enable the intermediate transfer completion chaining, ITCCCHEN to have the channel trigger itself for CCNT greater than zero. Please refer to section 2.8 of SPRUGS5A here.

    Thanks and regards,

    Tai Nguyen

  • Janeeth,

    Can you detail the data transfers you want to do from DDR to L2 SRAM on Corepac 0, please? There is no reason I can thing of to use Async for a memory-to-memory transfer like this, unless you want it to happen very slowly so you can do some processing on each ACNT bytes.

    But since you want to do chaining, it looks like you want to transfer a lot of bytes as quickly as possible. If that is the case, then you would use ABsync and also the ITCCHEN that Tai described. This is required to get the complete transfer to occur from a single CPU event when CCNT > 1. A single CHANNEL_SET command will only trigger one Transfer Request, and that one TR will be with ACNT (Async) or ACNT*BCNT (ABsync) bytes in length. Using the ITTCCHEN and setting TCC equal to the channel doing the transfer will result in chained events that will re-trigger that channel for the rest of the CCNT transfers that you want to do.

    Your detail may help us understand exactly what you want to do so you can do that as efficiently as possible.

    Regards,
    RandyP