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.

MSP432P411V: how can i test whether my DMA ping pong mode is working correctly or not by using MSP432 Launch Pad

Part Number: MSP432P411V

Hi All,

i am working on the DMA using ping pong mode for achieving continuous SPI transfer of 2048 bytes of data, i am able get the code implementations for DMA with ping pong, but i have some queries:

1. how to know that DMA ping pong mode is working as expected or not?

2. with respective the TIRTOS, what are the implementations changes to be done for making the DMA work in ping pong mode?

Thank you,

Maniram   

  • Hi maniram,

    You can examine the buffer contents with an SPI loopback configuration.

    With respective the TIRTOS, you only need use the TI Drivers for DMA. There are ping-pong mode APIs.

    Please see TI Drivers documents:https://dev.ti.com/tirex/explore/node?node=AB5W0nkusWo2BXUVd-F0Fw__z-lQYNj__LATEST

  • Hi Winter Yu,

    Thank you for the inputs.

    From the above given API's it is clear that we can configure the DMA Ping Pong Method.

    But after referring the driver it is observed that, before calling this API UDMAMSP432_setupPingPongTransfer(), there is Pre-condition given:

    as per the above given image the UDMAMSP432_open() call should also be called and parameters need to be initialized:

    here when i am using the API call in the code, the point where i am getting stuck is at the Hardware interrupt parameter:

    how can i initialize this parameter?

    whether i can use the UDMAMSP432_setupPingPongTransfer() directly without calling UDMAMSP432_open()?

    if no, can u please confirm on this flow on implementing the ping pong API:

    UDMAMSP432_init()

    UDMAMSP432_open()

    UDMAMSP432_setupPingPongTransfer()?

    whether this driver can be used to test on the example project code "dma_array_transfer_software_trigger_MSP_EXP432P4111_nortos_ccs"?

    if there is any reference code please share using this driver API's?

    Thank you,

    Maniram

  • Hello,

    Yes, the UDMAMSP432_init() and UDMAMSP432_open() has to be called first. You should follow the below flow

    UDMAMSP432_init()

    UDMAMSP432_open()

    UDMAMSP432_setupPingPongTransfer()

    "here when i am using the API call in the code, the point where i am getting stuck is at the Hardware interrupt parameter"

     Which parameter?

    The above driver can only be used in RTOS project, not nortos project.

  • Hi Winter Yu,

    Thanks for the reply, with regards your query, please find the below answer inline:

    "here when i am using the API call in the code, the point where i am getting stuck is at the Hardware interrupt parameter"

     Which parameter?

    In the given below the DMA API call, the parameter highlighted with Bold is where i am stuck:

    UDMAMSP432_Handle UDMAMSP432_open(uint32_t channel, uint8_t intNum, uint32_t priority,
    void (*hwiFxn)(uintptr_t), uintptr_t arg)

    how can i initialize this parameter?

    Thank you,

    Maniram

  • You need give this parameter your own ISR function name - my_isr. The ISR function should be:

    void my_isr(uintptr_t arg)

    {

    // process the interrupt 

    }

**Attention** This is a public forum