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.

[OMAP3530] EDMA3 and ping-pong buffer

Other Parts Discussed in Thread: OMAP3530, TMS320C6472

Hello,

 

I have some questions about EDMA3 programming, I work on OMAP3530 and I choose to program directly the registers (without CSL or LLD).

I have found some documentation about EDMA3 functioning on TI forum, but I still have some issue.

 

So my questions are about the guide: EDMA3, QDMA and IDMA for TMS320C6472.

Pages 55 to 59. Section: Example2: Multiple Block Transfer

 

There is an explanation for a ping-pong buffering process and everything is not clear for me.

 

This is what I think I have understood:

-         There is 3 different PSET X, Y and Z

-         PSETx is the active PSET (that means it is event triggered by McBSP request, and it is mapped on eDMA channel 14)

-         The others PSET are mapped on a same “sleeping” eDMA channel (number 20 for example) (may be this is a point that needs more explanation)

How does this channel is triggered and is it triggered? Indeed if I am right, the linking process does not trig the channel.

Does this channel produce an interrupt?

I don’t understand what exactly means: “to copy a PSET to an other (the active one)”.

Do this means I can copy the registers of the PSETy to the PSETx (active) during the execution of the ISR for example, or perhaps I have to change the TPCC_DCHMAP(3).PAENTRY with the new PSET value ?

Well, I am a little lost…

 

Thank you for your help.

 

Regards,

 

Michael

  • Michael:

    The SDMA is recommended for peripheral to memory transfers.  The OMAP 3530 Tech Ref Manual has an example of SDMA configuration to transfer data between McBSP and External DRAM (Section 9.6.1.2).   Is there any specific reason why you would need to use EDMA instead? 

    Michael Tadyshak

  • Hello Michael,

     

    I have red the example use case of SDMA you advised me, but in my case I think using EDMA is a better choice because my project needs the use of the C64x+ located in the IVA2.2 subsystem.

    I had to transfer data between McBSP2 and a memory space that allows making a processing on data. And this processing has to be done by the C64x+ for speed reason. So I choose to use a memory space like the L1D that the EDMA and C64x+ can quickly access.

    Indeed C64x+ and EDMA can access to memories in the same contiguous view and this permits to make a faster processing.

    Moreover I have seen some TI examples of ping-pong buffer using McBSP (for audio data transfer). I noticed that EDMA was used so I followed this way with my own program. I managed to use EDMA with McBSP2 but I still get some issue. That why I was asking some questions about the functioning of ping-pong buffer programmed with EDMA transfers.

     

    May be I will use SDMA if I don't solve my issues.

     

    Thank you for your interest,

    Michael

     

  • Michael:

    The EDMA peripheral to memory transfer is not an officially documented or supported feature of OMAP3530.

    Please get with your local TI Field Applications Engineer for further assistance.

    Regards,

    Michael

  • Hi Michael,

    I want to know why "The EDMA peripheral to memory transfer is not an officially
    documented or supported feature of OMAP3530.", because there is a section (14.3.2.1)
    discussing EDMA in omap35x TRM(spruf98f).

    I just successfully use EDMA doing a ping-pong buffer transfer (from memory to
    memory). And, the same program can do a loopback transfer from McBSP2_DXR to McBSP2_DRR
    by EDMA with sufficient triggers.  The problem I'm facing now is to transfer the whole
    block of data to McBSP2 (say, eight 16-bit words at a time from EDMA to McBSP2).

    Could you please provide more information on your comment?


    Juliann