XMEGA: UART Parameter zur Laufzeit

OP #3437069
Lesenswert?

Die XMEGAs bieten im Vergleich zu den MEGAs diverse Neuerungen. Zum 
Beispiel die Veränderung der Taktquellen und -raten zur Laufzeit sowie 
eine deutlich flexiblere Erzeugung der Taktraten für den U(S)ART, die 
"Baudratenquarze" überflüssig macht.

Allerdings ist die Einstellung der Baudrate jetzt ziemlich kompliziert. 
Die allermeisten Möglichkeiten zur Berechnung, die ich im Netz fand, 
sind offline Lösungen als Excel-Sheet o.ä. Die wenigen Laufzeitlösungen, 
einschließlich Atmel Software Framework, haben mich nicht überzeugt.

Daher habe ich ein wenig experimentiert und diese Lösung gefunden. Sie 
sollte dank Integer-Arithmetik ausreichend schnell und kompakt sein. Ich 
hoffe, der Algorithmus ist durch die Kommentare nachvollziehbar, sonst 
bitte nachfragen.

Kommentare sind natürlich auch willkommen.

Gruß, DetlevT
Angehängte Dateien:
OP #3437797
Lesenswert?

Peter Dannegger schrieb:
> Die Baudrate ist bei jeder UART zur Laufzeit änderbar
Gemeint war hier natürlich der Systemtakt des Microcontrollers.

> ist die
> Verwendung von Baudratenquarzen ja kein Problem.
man kann die XMEGAs auch sehr gut mit dem internen, ab Werk 
abgeglichenen Oszillator betreiben. Solange man halbwegs auf 
Zimmertemperatur bleibt, gibt es mit dem Usart keine Probleme. Das war 
früher bekanntermaßen ja nicht so. Spart Platz und Geld.

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