Although I'm not sure if the following sample of mine could provide you some hints,
at least I've been using it for a while now.
Note: Please try the latest version in the discussion (tty_utils_test_5LP_200504)
Can you provide your project to this thread?
I wonder if your DMA TD is reading the serial buffer memory instead of the FIFO. The serial buffer memory is the immediate capture value. The FIFO is the secondarily stored value of the serial buffer once the Rx data is fully received.
In the case of the UART you should be reading from UART_RXDATA_REG.
i dont use the dma.
i check how many bytes are in the fifo in my main isr, and then reads that amount of bytes.
i dont use the uart interrupt , but my own isr.
i will upload the project later.
I downloaded your project. I'll take a look at it to see if I can reproduce your results. It might take a few days. I have an uber-critical project that needs to be completed.