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.

C6748 EDMA - LINK

Hello,

I'm trying to setup a link for EDMA to McASP on the C6748.  OPT0 is used for the initial McASP Rx and OPT1 for Tx.  The user guide says to link the initial PARAM that to another PARAM, which is linked back to itself.  So I've used an offset of 2, i.e. OPT0 will link to OPT2, which will link back to itself.  OPT1 will link to OPT3.  So for Rx:

    OPT0.LINK_BCNTRLD0 =  0x4060    // link to OPT2

    OPT2. LINK_BCNTRLD2 = 0x4060   // link to itself

 Is there a reason not to just stick with OPT0, and have the link back to itself, instead of to OPT2?  The user guide seemed to imply that OPT0 is just for the initial DMA, and the another OPT (2 in my case) is needed for all subsequent.

Please advise,

Robert

 

  • The DMA will use Parameter RAM 0/1 as "scratch pad".  If you are A-B synchronized (which I would expect if you are using the FIFO) then after each transfer request from the McASP Audio FIFO the EDMA Channel Controller will submit a transfer request to the EDMA Transfer Controller which will transfer ACNT*BCNT bytes.  The channel controller will decrement CCNT by 1 in the parameter set.  So at the end of the entire transfer you will have CCNT=0 in your parameter RAM.  That's why you need to link to a different parameter set, i.e. to refresh the parameters.

  • Thanks Brad.  Some followups questions:

     

    1)     the linked Parameter Set should lie outside the known EDMA Synchronization Events (0 through 31 for C6748)?  There appears to be a total of 128 PARAM Sets available, so is not an issue.

     

    2)     Let’s say I link Parameter Set 0 (McASP to RX) to Parameter Set 32.  The correct Link Address is 4400? (32 parameter sets at 32 bytes each). 

     

    3)     If I want this link to continue endlessly, retrieving data from the McASP, I then set the Link Address of Parameter Set 32 to itself (4400)?

     

    4)     Using the above example, is it that the Parameter Set 32 is contantly reloaded into Parameter Set 0?, but Parameter Set 32 is not changed itself (CCNT of Parameter Set 32 is not decremented to 0, etc. )?

     

    Robert

  • Robert56682 said:
    1)     the linked Parameter Set should lie outside the known EDMA Synchronization Events (0 through 31 for C6748)?  There appears to be a total of 128 PARAM Sets available, so is not an issue.

    That's not required.  For example, if you're not using McBSP0 (events/channels 2-3) then you can utilize parameter sets 2-3 for linking.

     

    Robert56682 said:
    2)     Let’s say I link Parameter Set 0 (McASP to RX) to Parameter Set 32.  The correct Link Address is 4400? (32 parameter sets at 32 bytes each). 

    Yes.

     

    Robert56682 said:
    3)     If I want this link to continue endlessly, retrieving data from the McASP, I then set the Link Address of Parameter Set 32 to itself (4400)?

    Correct.

     

    Robert56682 said:
    4)     Using the above example, is it that the Parameter Set 32 is contantly reloaded into Parameter Set 0?, but Parameter Set 32 is not changed itself (CCNT of Parameter Set 32 is not decremented to 0, etc. )?

    Correct.