cancel
Showing results for 
Search instead for 
Did you mean: 

Byte is lost from UART packet after being put into memory (DMA)

KVIZK.1
Associate II

We have run into a problem where a new run of boards with STM32F429ZIT MCU's have been losing a byte (always loses a single byte which seems odd) from the UART communications that are sent to DMA.

We send packets of UART data to the MCU and the data is then sent to DMA. When we read the data back from DMA we will occasionally read back a packet with a missing byte. The failure rate is about 1 in 10 Megabytes or 1 in 50,000 packets.

I have scoped the UART communications during the point of failure and the failed data packet looks perfect at the pin (so UART signal is ruled out) and there are no transients on VDD or 3V3. Several people have looked at the design and have not determined anything obviously wrong (though of course something is)

We have solved this issue by using retry logic in software, but management is demanding an answer as to why the new board run is having this issue.

So I have two questions:

1: Has anyone encountered an issue like this and have any advice on what could be the root cause?

2: From your experience, is such a failure rate of 1 in 10 Megabytes or 1 in 50,000 packets considered a normal or expected problem with these kinds of systems? In other words, did we just get lucky in the past with not needing retry logic for this kind of system?

Thanks for the help!

30 REPLIES 30

Hi, KVIZK, I understand your concern.

In my case, the hardware cable connection has a a very poor EMI condition because it was just an experiment environment. All the hardware were connected with pure DuPont wires. Considering the RF interference power by 4G module, the poor EMI resistance testing suite with high bit rate UART connection is very likely to catch and eat the EMI signal.

I believe if your hardware is carefully designed regarding EMI and effect of transmission line, high bit rate UART communication could be handled.