[lug] Latency for serial port hardware handshake?

Wagner, Carl Carl.Wagner at level3.com
Thu Nov 16 17:35:42 MST 2006


If I remember correctly the 16550A has a 16 byte FIFO.
After you de-assert CTS does it continue to send bytes out the wire?
Is it possible that the FIFO on the 16550A is being overrun?

Do you need to use one of the real-time Linux extensions?
Can you slow the baud rate down to compensate for possible interrupt
Can you de-assert CTS after 2 packets?

I am not sure I would expend a lot of time on this if your target is a
StrongARM, unless the StrongARM implements a virtual 16550A.

That is about as much help as I can give.

-----Original Message-----
From: lug-bounces at lug.boulder.co.us
[mailto:lug-bounces at lug.boulder.co.us] On Behalf Of Dan Julio
Sent: Thursday, November 16, 2006 4:20 PM
To: lug at lug.boulder.co.us
Subject: [lug] Latency for serial port hardware handshake?

Hey all,

Does anyone know how Linux processes de-assertion of
CTS on a typical PC-based serial port?  I need to
understand how many more characters may be sent from
the Linux box (DTE) to a DCE device when the DCE
device de-asserts CTS. 

Specifically I am running on a Dell 4100/RH7.3.  The
built-in port uses the 16550A UART chip.  I am talking
to an embedded controller with a small buffer.  This
buffer holds 4 up-to-16 byte packet entries.  The
controller de-asserts CTS when 3 buffer entries are
full allowing for transmission of part-of or a
complete 4th packet.  

I have enabled my linux control software to look at
CTS (options.c_cflag |= (CRTSCTS);)   I verified this
works by manually de-asserting CTS (the computer won't
send anything until it is re-asserted).  However it
looks like there is some latency between the serial
driver acting on CTS when there is data in some
internal FIFO.  It looks like I get another packet+
sent to the device after it de-asserts CTS and, of
course, it loses the packet after #4.  

And...then...if any of you wizards know how this all
works I have another question.  Can I expect this to
be different on different hardware (probably yes). 
The eventual target for the control software is
another embedded system running on a StrongARM
(built-in UART and probably different drivers).

Thanks, Dan

Sponsored Link

Rates near historic lows - 
$200,000 mortgage for $660/ month - 
Web Page:  http://lug.boulder.co.us
Mailing List: http://lists.lug.boulder.co.us/mailman/listinfo/lug
Join us on IRC: lug.boulder.co.us port=6667 channel=#colug

More information about the LUG mailing list