Hi All
I would like to do ping-pong DMA with CRC, ie.,
USART6 -> buffer1 -> CRC -> USART6 -> buffer0 ->CRC.
UM11126 user manual chapter has provided instruction on how to do chain DMA.
Nonetheless, I followed the instructions and demo codes from LPC55S69 but I am not able to configure to the ping-pong USART6 with CRC
The reason that I am not able to do the ping-pong DMA with USART + CRC is that
in order to do ping-pong config, dma_xfercfg_t needs reload=true, clrtrig=false, whereas for
chain DMA to work, clrtrig=true, but this breaks ping-pong config.
Can someone help to see if this is something that is fundamental limitation to the LPC55S66 MCU. If not, can I get help in how to configure it properly?
I have attached the code. The macro definition #define TRY_CRC 1 will work for single uart+crc transfer but not in ping-pong config. Setting TRY_CRC 0 will do ping-pong but not CRC transfer.
Thank you in advance for all the help.
Ping.
Hi XiangJun,
Thank you for your response. Can I assume that then the documentation from UM11126.pdf which I did a screen capture below is not correct then?
The user guide explicitly use a UART + CRC DMA as an example.
Thanks
Regards
Ping
Hi,
As you said that the DMA channel chain requires to set the CLRTRIG in the
channel's transfer configuration in the descriptor, but DMA ping-pong mode requires to clear the CLRTRIG bit, so I think you can not use the same DMA channel to set up both channel chain and ping-pong mode.
Hope it can help you
BR
XiangJun Rong