VF50 module does not reliably receive all messages from serial port


In some cases in the installed base we have detected problems in serial communication between our product using the VF50 serial port and a customer device. Typically problems are in UART B and sometimes with other UARTs as well. We use UART B for RS-485 bus. Problem: VF50 module does not reliably receive all messages from the other device. We suspect the VF50 based solution is not able to read the Rx buffer fast enough to avoid overflow, but we have not been able to confirm the root cause and have not been able to solve this issue. We need your expertise and support, please.

Our product

  • Colibri VF50 128MB, HW 1.2B
  • Linux kernel (4.4.39) and drivers from Toradex and build framework by Buildroot (automates the process building Linux system for an embedded system)
  • Own base card with RS-485 and RS-232 circuits.

Test environment

  • Colibri VF50 128MB, HW 1.2B
  • OpenEmbedded core form Toradex (ready image, 2.8 | 2019-04-01)

Our test:

  1. The PC sends test message to the VF50 over RS-232.
  2. VF50 receives message and sends it back to PC.
  3. Software in the PC checks the time out and receives message from VF50 and compares that the received and sent messages are identical.

In this test we have identified the problem. The VF50 will not receive all characters
if a new message is sent from the PC to VF50 quickly after the previous message (less than 100ms).
In our application the VF50 should be able to receives messages even if they are transmitted
very soon after each other.
The receiving should work if the delay between the messages is 5ms (our requirement).

Our questions

  • Should the VF50 be capable of receiving messages every 5ms?
  • Could there be some configuration wrong in our implementation?
  • What are the parameters we should check that could affect the serial port operation?
  • What are your recommendations for us to check and modify to get SW correctly configured so that communication will be robust?