Post Go back to editing

UART data loss

Category: Software
Product Number: ADUC848
Software Version: Keil

Hello.
There is a problem with data loss in UART communication.
If the end of the received (RX) string is LF (0x0A), we sent it again (TX) without LF.

For example
*IDN? + LF = When receiving a total of 6 bytes
*IDN? = Send a total of 5 bytes.

This action continues at about 30 ms intervals, and the bit breaks about 1 to 3 times a day.
The image is the Scope waveform when the problem occurs.

Below is description of the Scope waveform
C1: set the trigger signal at low when a problem occurs.
       it generated if it is not a promised *IDN?
C2: TX waveform of MCU.
       Send data(*IDN?) collected by RX for verification as it is.
       After that, about 40 bytes will be sent as a result of processing for *IDN?
       The important thing is that one bit of data is broken when sends the received data as it is.
C3: The RX waveform of the MCU.
       Receive *IDN? + LF 6byte from PC Application.
C4: it generated in Low when Read/Write to E2PROM.
       The measured waveform is not close to the E2PROM.
M3: RX waveform of MCU when it’s normal.
Z2: Zoom In waveform of C2.
Z3: Zoom In waveform of C3.

I marked the part in question in a red box.
When it is a normal receiving waveform, the TX output waveform is broken by 1 bit by Echo.
Actually, in F/W determines that it is wrong data.
As mentioned above, these symptoms occurs about 1 to 3 times a day.

In F/W, if a receive interrupt occurs, we only get the 1byte value of SBUF, but there is no part that re-process by bit.
In other words, return (Echo) the value of SBUF as it is.

In my opinion, I think that the MCU is handling it incorrectly rather than the F/W bug.

Parents Reply Children
No Data