AM13E23019: DMA Configuration issue

Part Number: AM13E23019
Other Parts Discussed in Thread: SYSCONFIG

Hello there

I am doing experiments with DMA in multiple modes. I am observing inconsistencies in DMA configuration. One of the example is when I configuring Single mode and repeat single mode back and forth, sometimes it sticks to repeat single mode and does not configure back to single mode. Please see the screenshot of the configuration.
e7c3b55c-05b7-48ac-98b2-0e8860a9b962.png
08f3d167-71f1-4fca-a5f4-f57fd0e8761c.png

on further evaluation i found that DMACTL registor is not updating as expected, I have to reset DMA Channel before DMA initialisation by calling api 
DL_DMA_resetChannel(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID);

int main()
{
    Device_Init();
    DL_DMA_resetChannel(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID); 
    SYSCFG_DL_init();


    /* DMA initialization and settings */
    DL_DMA_setSrcAddr(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID, (uint32_t)tcf_txbuffer);
    DL_DMA_setDestAddr(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID, (uint32_t)rxbuffer);
    DL_DMA_setTransferSize(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID, MML_TX_BUFFER_SIZE_TCF);
    DL_DMA_enableChannel(APP_DMACH_0_DMA_INST, APP_DMACH_0_CHANNEL_ID);


    // Further code 
}




Is it expected to reset channel before DMA initilisation ?
what is reason for DMACTL not updating ?


  • Hi Dheeraj,

    Just to make sure, you are updating the Sysconfig selection, saving the .syscfg file, rebuilding the project, and reloading the program onto the device right?

    Also, can you toggle on Continuous Refresh in the CCS Register view to make sure the register contents are updating properly?

    Best Regards,

    Delaney

  • Yes, Rebuilding and Continuous refresh was taken care of. 
    If I reset DMA before initialization, the issue never came. 

    I will add more inputs on this by EOD

  • Hi Dheeraj,

    I was not able to replicate this behavior myself. If I switch the transfer mode in sysconfig, rebuild the project, and reload the code, I see that the sysconfig generated code is able to properly update the DMACTL register with the new selection. Please make sure you are loading the updated .out file the device after rebuilding.

    Best Regards,

    Delaney

  • Hi Dheeraj,

    I will add more inputs on this by EOD

    1. Do you have any more inputs here? Do you always see this issue after a cold restart as well after a power cycle? Or only after having used one DMA channel and re-initializing it?

    2. Do you have a sample application you could share for the LaunchPad that we could use to reproduce and debug this?

    Regards,
    Shaunak

  • Hi Dheeraj,

    As per our debug call:

    1. DMA mode not changing from repeat single -> single (As discussed on call, i saw the issue being reproduced, i will communicate the issue with the SDK team and file a JIRA accordingly after some internal testing. FYI, i also tried to reproduce it on CH0, CH3 i was still not locally able to reproduce, but we will try on different setups as well and file the bug accordingly.

    2. Bug for CH6 being configured as Full channel: jira.itg.ti.com/.../MSDK-2368

    Regards,
    Shaunak