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.

TMS320C6748 McASP/EDMA problem

Hi

I am trying to get the edma and mcasp hooked up. Basically the mcasp is connected to a codec (lcdk board) and I want to get the a/d data via the edma. The application runs ok with a/d interrupts but is not efficient.

I have got the edma and the mcasp running ok. However I am having problems triggering the edma port 0 which is mapped to the mcasp receive channel. The rx event is not showing on the edma event register however the tx events are showing up. So for now I have done a work around by using the tx events to read the a/d data. This works fine. This presents a problem though, as when I want to use edma for the d/a side, the associated tx event in the evt reg would already be used up by the rx side.

My questions are:

1. Why doesn't the rx events show up in the edma event register bit 0? From what I have read it should show up by default even if the edma is used or not.

2. The rx and tx are ganged together via sync mode in the mcasp. Does this have any bearing on the problem of the rx events not showing up on the event register.

I have read and re-read the manuals and I cannot find any clues as to what is going on.

Your help is greatly appreciated.

Thanks

Manjula

  • Manjula,

    For #2, I will recommend that you turn off sync mode (set ASYNC=1) and see if that changes the behavior of the AREVT.

    When you are operating in sync mode (ASYNC=0), only one event is needed since both Tx and Rx need to occur after the same event. You can set your EDMA Tx channel to chain (using intermediate mode AND completion/final mode chaining, OPT.TCCH=OPT.ITCCH=1) to your EDMA Rx channel so each event from the McASP will cause both channels to initiate transfers.

    Regards,
    RandyP

  • Hi Randy

    Thanks for the suggestion. I will explore and try it out. It would have been great if the RX stream still triggers the evt in EDMA even if in SYNC or ASYNC mode. The next point is that there is nothing in the documentation to say that the RX event does not trigger in the EDMA if in SYNC mode. Is this an omission in the documentation? I spent a lot of time trying to find out.

    Will let you know how I go with your suggestion above.

    Thanks

    Manjula
  • Hi Randy


    I looked into your suggestion and it worked. Please also not that the documentation should explicitly state that in McASP SYNC mode the AREVT does not trigger in the EDMA event register.

    Thanks for your help.

    Manjula

  • Manjula,

    We are glad this suggestion helped you get your project to work.

    I completely agree that the documentation should have pointed this out, both in the SYNC mode section of the User Guide and in the DMA events section of the User Guide. We have someone looking into the issue to confirm it, but your experience has been very helpful.

    Thank you for pointing this out, and we will let you know what happens for the future.

    Regards,
    RandyP