Forum: Projekte & Code XMEGA: UART Parameter zur Laufzeit


von Detlev T. (detlevt)


Angehängte Dateien:

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

von Peter D. (peda)


Lesenswert?

Detlev T. schrieb:
> die Veränderung der Taktquellen und -raten zur Laufzeit

Die Baudrate ist bei jeder UART zur Laufzeit änderbar, nur die feinere 
Einstellung ist neu.
Aber da die Xmega eh keinen CAN-Bus (1MBit) unterstützen werden, ist die 
Verwendung von Baudratenquarzen ja kein Problem.

von Detlev T. (detlevt)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.