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.

EDMA3 EMR

Hello,

    I  have a  problem  that has troubled me for  days.when the channel number is 12 or 55, I manully  manually  trigger  the channel,then  the   EMR  is immediately set  1

the  data  cannot  be  transfered.But  when  the channel  number  is  0,1 or others,it can be transfered  nomally.Why it  is  like  that?

I   really  need your help ,thank  you.

  • Hu Shushu,

    The EDMA3 User's Guide has the descriptions of the situations that cause EMR to be set. To clear the error condition, you must first clear SER until it stays clear, and then clear EMR. To avoid a test loop for SER, it is robust to clear SER 4 times and then clear EMR.

    There is not reason for the channels to behave differently in your example. This means something is wrong. You may compare your example to the attached C6455_Edma.zip which has a CCSv4.2 archived project that uses CSL for doing DMA transfers using two DMA channels and manual triggering. I have not used it for many months, but it should work.

    The main.cpp file is not pretty. It was designed for my own use and I build up evaluations using it. There are #if 0 code exclusions and it is possible that some comments are incorrect. But if it works for you, perhaps you can figure out what is wrong with your version.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

    C6455_Edma.zip