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.

AM335x external DMA control possible?

Can I use an external pin to control the EDMA engine when transferring data from external memory to internal memory? eg a DREQ signal

I think it might be possible using GPIO0 and/or GPIO1 as these can generate GPIOEVT0 and GPIOEVT1 events respectively.

I'd just like confirmation that these can be driven by external signals to achieve this function and if so, would they be edge triggered (ie generating events only) or can they also be setup to be level triggered ie to allow the DMA to proceed when there is data to transfer?

Even better would be some sample driver code already setup to do this (I couldn't find any).

A timing diagram of how the DMA starts and stops in this mode would also be helpful (eg to work out thresholds on an external FIFO)

Thanks and best regards,

David

  • Hi David

    my problem is same as yours 

    Did you find any solution about external pin to start DMA transfer??

    I hope that you got the answers and just let me know

    Thanks

    Moonsun

  • Unfortunately not. We have some work planned to see if we can do this on the EVM.

    All the best,

    David

  • HI David

    Actually my work is success.

    these are my works

    1. you have to check  where your external pin is in schematic

    2. you should set your GPIO to External PIN by using PIN_MUX (you don't have to register INTERRUPT)

    3. In my opinion. external pin dma triggerd by rising edge signal so makes your button pull-down

    4. My DMA Code was AM335x starterware 2.00.00.05\evmAM335x\uart_edma

    maybe my answer will be not enough to you

    and don't hesitate ask me

    wish you Good luck 

  • Hello Moonseon,

    That's very good news.

    Were you limited to the pins I mentioned above or can you use any pin? Which pin did you use? I was looking at using the XMDA_EVENT_INTR1 pin although haven't yet checked that this can be routed through to the EDMA.

    Did your DMA run to completion after the first rising edge on the external pin or did you need multiple pulses?

    Best regards,

    David

  • ok~ check this out

    just a few pin can be XDMA_EVENT_PIN (it was already predefined)..  so you must check your board's schematic. see above picture 

    In my board(beagle bone) GPIO0_7 can have 8 different functions by setting PIN_MUX

    focus on DMA completion..  My example is sending charecter to Uart0 so every pushing button show me 1 character via terminal

    and after 26 character sending , DMA completion Hook fucntion was called.

    after reading your procceser User Guide(about PIN-MUX, EDMA). that's not that difficult.

  • Thanks Moonseon. This is most helpful.

    I will post back our results when they're done. We hope to transfer 64k in every DMA block.

    David