Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: UART clock tolerance question.

2005-12-16 by Ken Wada

--- In lpc2000@yahoogroups.com, Sean <embeddedrelated@w...> wrote:
>
> 
> Generally speaking the tolerance for all RS232 devices is about 3%.  
Some 
> go higher, but most can handle 3%.  0.16% is almost certainly fine 
for any 
> rs232 device.
Interesting; your number...> 3%. The 16C550 UART statemachine uses a 
16x over-sampling statemachine for detecting the NRZ bit-frame, 
(start/stop + each data bits). Given this, we have a 1/16 per bit 
frame detection that is used by the 16C550 silicon. This gives us a 6.
25% per state detection for the UART.

So...if we say that for adequate and reliable bit-frame detection, we 
require at least 1/2 an LSB for bit-acquisition, this gives us a value 
of 1/32 which equals 3.125%, which is very close to your number.

Now...these are numbers that are valid for the 16C550 IP. Other 
16C550, or for that matter, 8250 compatible UARTs, in general may not 
use the same detection methods that were pioneered by National 
Semiconductor.

Therefore, be very careful about UART clock frequencies, some PC's and 
devices may be ok, and others not! Some of those clone PC's are really 
picky and cannot tolerate any deviations!

Ken Wada

> 
> At 04:48 AM 12/15/2005, you wrote:
> >Fellows,
> >
> >In my application the best I can get is 115384 Baud for uart0 
whereas data 
> >source has
> >speed of 115200 exactly. The error is about 0.16%. The question is 
- will 
> >lpc (2148)
> >handle it?
> >
> >Thanks in advance,
> >Dmitry.
>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.