i.MX6UL UART Tx time-delay option between bytes?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i.MX6UL UART Tx time-delay option between bytes?

1,517件の閲覧回数
sraynesford
Contributor I

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‌

#uart data transmission

ラベル(2)
0 件の賞賛
返信
1 返信

1,269件の閲覧回数
Pavel
NXP Employee
NXP Employee

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!
-----------------------------------------------------------------------------------------------------------------------

0 件の賞賛
返信