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.