Hi,
I am using 6 channels of UART 921600 baud (termios using FD_SET event) on iMX7d 1GB eMMC, and seeing high latency. (probed uart lines, calculated expected and actual time).
Could you please help me find a way to reduce latency or increase kernel tick/timers or any other way.
Thank you
Neeraj
Hi @neeraj.verma
Thanks for writing to the Toradex Community!
I am using 6 channels of UART 921600 baud (termios using FD_SET event) on iMX7d 1GB eMMC, and seeing high latency.
How do you see this latency?
Could you provide some log?
What is your Application? If you need higher communication rate, then you should switch to faster communication as SPI.
Best regards,
Jaski
Hi @jaski.tx,
We have measured time to transmit 10 bytes along with our protocol, should take X ms but it takes almost 2x and time is not consistent, let’s say onetime it takes x ms, another times it takes x+5 ms and so on.
as per the board design we have only UART interfaces to all the motors controller.
I request you to help to make UART real-time, time-bound.
I also read about kernel tick can help in this, could you please let me know how to modify?
Thank you
Neeraj
HI @neeraj.verma
We have measured time to transmit 10 bytes along with our protocol, should take X ms but it takes almost 2x
How did you measure this time? Using oscilloscope?
and time is not consistent, let’s say onetime it takes x ms, another times it takes x+5 ms and so on. as per the board
This is expected, since Linux is not a real-time OS.
as per the board design we have only UART interfaces to all the motors controller. I request you to help to make UART real-time, time-bound.
I think, UART is not an issue, but the OS. Depending on your real-time requirement (maximum time jitter), you should either use real-time patch for Linux or use FreeRTOS on M4 of iMX7.
I also read about kernel tick can help in this, could you please let me know how to modify?
I never heard of this. Could you share any link?
Best regards,
Jaski