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.

GPIO DMA Event in C6748



Hello, 

How can I generate a DMA Event from a GPIO input pin, preferably without generating an interrupt? 

The Technical Reference Manual of C6748 section "19.2.11 EDMA Event Support" doesn't say anything just "The GPIO peripheral may provide synchronization events to the DMA controller."

Thank you in advance,

David.

  • David,

    We can be a bit simplistic in our documentation, it appears. A little more description would be a big help, although we did hide the cryptic answer in section 19.2.10.1. I will give you my comments, and I think these comments are correct, but I do not have a C6748 board near me to test this. You will be able to confirm them pretty easily (I hope).

    1. The datasheet lists the EDMA Synchronization Events in Table 5-12. For this device, you get access only to the ganged GPIOs of a bank and not strictly a single GPIO event.

    2. The description for each of the GPIO events in the table say they are "interrupts". This is because the exact same signals go to the DSP's INTC module to act as an interrupt.

    3. To use a GPIO as an EDMA event, you follow the same instructions in the TRM as for generating an interrupt through one of the Bank interrupts.

    4. This GPIO Bank interrupt signal will then go to the EDMA where you can choose to enable that event or not. If you enable it through the EDMA's EER register, it will cause an EDMA event to trigger the respective DMA channel.

    5. If you choose not to route that GPIO Bank interrupt signal to a DSP interrupt through the INTC, then you will not get a DSP interrupt from that GPIO Bank interrupt.

    If this just raises more questions, please ask them. If you test this out, please reply back with your successes or problems.

    Regards,
    RandyP

  • So this means using a GPIO pin to enable a DMA event means remaining 15 pins on the bank cannot be used for other possible EDMA events, which is a waste, since any interrupt enabled on a bank will also trigger an unwanted EDMA event. Luckily there are 9 banks to choose from. 

  • David Luca said:
    Luckily there are 9 banks to choose from.

    This was our hope, that we gave you enough flexibility to do what you need to do, even if there are limitations.

    For interrupts, it will be convenient to have multiple pins going to a single DSP interrupt because there are so few (12) physical interrupts to the DSP.

    Please let us know how it works out for you. Positive and negative comments will be appreciated.

    Regards,
    RandyP