lpcware

UART and DMA

Discussion created by lpcware Employee on Jun 15, 2016
Latest reply on Jun 15, 2016 by lpcware
Content originally posted in LPCWare by madis on Fri Nov 01 15:58:30 MST 2013
Hello!

I have question regarding UART and DMA operation.

In my project I need to receive variable length packets over the UART. As there is rather heavy computing involved and packet/data rate is quite high, I decided to use DMA for data reception.

I checked from the LPC17xx manual that UART is able to detect character receive timeout in FIFO mode. Designed to fire the interrupt in case end of the packet does not fill up the FIFO up to the trigger level. Reasonable.

Is there any possibility to use the same interrupt schema while using DMA? Like I set up DMA to receive maximum number of bytes expected from UART (maximum packet length) and in case of not that many bytes arrive (inter character timeout), interrupt will fire? It seems for me now that DMA will wait for the exact amount of bytes it was programmed to, it does not seem to care if there is huge timeout between shorter packets... Any idea how to implement character timeout with DMA?

BR, Madis

Outcomes