USART + CRC with ping-pong DMA

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

USART + CRC with ping-pong DMA

1,225 次查看
pck20
Contributor I

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.

0 项奖励
回复
2 回复数

1,173 次查看
pck20
Contributor I

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

 

pck20_0-1632769115224.png

 

0 项奖励
回复

1,214 次查看
xiangjun_rong
NXP TechSupport
NXP TechSupport

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

标记 (1)
0 项奖励
回复