Tool/software: Linux
We are using UART2 and UART3 of AM335x as RS485 ports.
The application(1) which is using UART3 port with real-time high priority and UART port is configured with 1200 bps as it is receiving IRIG-B data from GPS to synchronize the system time with GPS time.
Where as other application(2) which is using UART2 with default priority and UART port is configured with 115200 bps and it is polling the devices data those are connected with RS485 ports.
The problem is that application(1) data is delayed when the application(2) is active with more data.
Observations are as follows,
This behavior is not only limited to only UART2 but also other UARTs of our board, means data from UART3 is delayed when other UART ports are busy with more data.
And this behavior is purely depends on data flow of UARTs not related to processes priorities as I have already tested with test application which is consuming more CPU time than the application(2), but no impact on application(1) data flow.
The Questions are
How does the UART2 or any other UARTs data flow effects the data flow of UART3? Or, to make the question more open, what is the dependency of one UART port data flow on other ports data flow?
Are there any shared memory/buffers/structures of UART driver between different UART ports which causes delays in data transmitting/receiving?
Data received by application(1) is meeting the timing requirements when other UART ports are not active but observed random delays in receiving data when other ports are active with more data.
Hope my question and explanation is clear.
Thanks,
Prabhak.