On the i.MX6UL UARTs (RS232 mode), is there any way to add time between transmitted bytes so that the start bit doesn't immediately follow the stop bit?
I'm working around communicating with a flawed UART in a legacy device on the other end that can't keep up with tight-packed bytes on its UART input (the flaw is documented in that device's errata). The flaw is independent of bit-rate
We are using DMA for UART transfers and Linux 4.x is the OS. Currently running at 3Mbps, same issue on 1Mbps.
Using two stop bits doesn't work in our application because it affects the Rx side as well.
Since the two devices are on the same board with no noise or jitter issues, I'm considering slowing down the i.MX6UL UART bit rate to create the illusion in the other device UART of extra time between the stop bit center and the start bit leading edge. I'm not sure this will create enough extra time, however.
Thanks
Steve
imx6ul uart
uart transmit
The i.MX6UL UART hardware does not have possibility to insert delay between bytes. It is possible send BREAK condition to the receiver. See the UARTx_UCRx[SNDBRK].
You can also detect the Transmitter Empty Interrupt and insert a delay between data sending.
Linux driver does not support this possibility. It was developed for working as console.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------