baudrate berechnen auf LPC2134

(Firma: Brainit GmbH) #5279933
Lesenswert?

Hallo Leute,

entweder sehe ich den Wald vor lauter Bäumen nicht, oder ich bin einfach 
verwöhnt vom AVR und util/setbaud.h

Ich hab hier einen (ich weiss, uralten) LPC213x und möchte mal den UART 
in Betrieb nehmen. Nun ist die Baudraten-Berechnung da etwas komplexer, 
speziell wegen dem MULVAL & DIVADDVAL.

nicht dass ich diese (im betrieb) ändern möchte, aber ich würde schon 
gerne an einer zentralen Stelle (im Makefile oder wo auch immer) 
"BAUDRATE=57600" hinschreiben dürfen, und wer-auch-immer kümmert sich 
darum (unter Berücksichtigung von F_OSC = 11.0592MHz, PLL=5)

Ich nehme an es gibt eine ganz simple methode, das todelsicher zu 
erledigen, aber ich seh sich grad nicht...

Danke für Hinweise, auch RTFM-Pointer!
#5279990
Lesenswert?

Die Aufgabe ist hinreichend nicht-trivial. Ich hatte vor Jahren mal 
Example Code von NXP.com runtergeladen wo das Setzen der Baudrate nicht 
klappt, allerdings für LPC17xx.

In der Praxis holt sich die Funktion die (hoffentlich korrekte) PCLK und 
rechntet sich MUL und DIV per brute-force aus. Dabei gab es ein paar 
Fallstricke zu beachten.
Gast #5280044
Lesenswert?

hier ist ein bisschen Beispielcode für den LPC2134 drin:
https://www.nxp.com/downloads/en/snippets-boot-code-headers-monitors/LPC213x_Family.zip
Im common/inc sind da komischerweise die Header für die 214x drin, das 
sieht nicht korrekt aus. Oder sind die beiden Familien da gleich? Das 
habe ich nicht verglichen.
In der Lernbetty von W.S. ist auch Code für die LPC2220, vielleicht ist 
da auch was zu verwerten.
Das LPCXpresso habe ich auch mal nach den 2134 Headern durchsucht, da 
sind aber tief versteckt nur wenige defines für die Register, gezippt 
ist das nicht viel und ich habe es mal hier angehängt.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren