Yahoo Groups archive

Lpc2000

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

Message

Re: UART baudrate

2006-03-02 by icapapindi

Very good example !!

I think that I did calculations correct, the problem is that I use 10
Mhz as core clock with pll=1 and maybe this clock is not big enought
to get 115200 baudrate, isn't it?

Thanks !!


--- In lpc2000@yahoogroups.com, Xtian Xultz <xultz@...> wrote:
>
> Em Qui 02 Mar 2006 12:04, Iván Cayón escreveu:
> > Hi !!
> > I'm trying to send data with the UART at 115200 bps with a Xtal of
10 Mhz
> > and the PC doesn't receive the data correctly. Is the baud rate
limited
> > with this equation?
> >
> > ratemax = PCLK / (16 x (2 + databits + paritybits + stopbits)
> >
> > if this is correct then I can't get this baudrate with 10 Mhz xtal
> >
> > Regards,
> >
> > Ivan
> 
> Are you using PLL?
> I am using right now an LPC2106 with 10MHz crystal.
> To calculate the baudrate, you must first pick you pclk. For
example, I am 
> using 50MHz (pll * 5) and pclk = 1 (the pclk is the same as the core
clock).
> So, if I have a 50MHz, first divide it by 16. I get: 3,125,000 and
at that 
> frequency thats the clock that UART uses.
> So, to calculate the dividers, divide that clock by the desired
baudrate, 
> which at 115,200 gives me: 27,1267 
> Note that I have 0,1267 as decimal error on my divider, because the
divider 
> accpets only integer numbers. If I made the other side calculation,
dividing 
> 3,125,000 by 27, I get 115741 bps which is the speed my LPC will talk.
> If, for example, I make the pll running at 60MHz, my divider is 32,5521
> Note how big is my decimal error, is practicaly the worst case,
where the 
> error resides in the middle betweem 0 and 1. If I use the divider as
33, my 
> UART speed is 113636 bps. Very bad, huh?
> 
> So, to use 10MHz crystal, check this before. The lesser the decimal
error, the 
> best your serial communication will be. For example, with the pclk
at 10MHz, 
> the UART speed will be 125000bps. Try to calculate it.
>

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.