Forum: Mikrocontroller und Digitale Elektronik UART Baudrate eingeben


von Hans (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin dabei, mir die UART zu konfigurieren. Hierbei weis ich nicht,
wie ich das BAUD Register füllen soll.

Die Baudrate soll 115200 Bd betragen.
Jetzt habe ich folgende Formel gegeben:

BAUD = 65536*(1- 16*fBAUD/FRef) mit FRef = 8 MHz; 16 ist Oversampling

Ich habe für fBAUD = 115200 eingesetzt:

BAUD = 65536*(1 - 16*115200/8000000) = 50436,5056 = C504(hex Vorkomma)

Damit funktioniert die Übertragung allerdings nicht.


Kann es sein, dass fBAUD != die Baudrate ist ?

von Fabian D. (fabi06)


Lesenswert?

Hallo,

wenn Du Zweifel an der Baudrate hast, kannst Du ja mal versuchen, ein 
Bitmuster zu übertragen (egal obs verstanden wird oder nicht) und mit 
einem Oszi die Baudrate kontrollieren.

Gruß

von Falk B. (falk)


Lesenswert?

Hans schrieb:
> ich bin dabei, mir die UART zu konfigurieren. Hierbei weis ich nicht,
> wie ich das BAUD Register füllen soll.

Gibt es dafür nicht Dutzende Tutorials?

> Die Baudrate soll 115200 Bd betragen.
> Jetzt habe ich folgende Formel gegeben:

Hmm, sieht nach MSP430 aus.

> BAUD = 65536*(1- 16*fBAUD/FRef) mit FRef = 8 MHz; 16 ist Oversampling
>
> Ich habe für fBAUD = 115200 eingesetzt:
>
> BAUD = 65536*(1 - 16*115200/8000000) = 50436,5056 = C504(hex Vorkomma)

Soweit OK.

> Damit funktioniert die Übertragung allerdings nicht.

Das kann noch viele andere Ursachen haben. Prüfe erstmal den Ausgang 
deines UARTs beim Senden mit einem Oszi oder Logicanalyzer.

> Kann es sein, dass fBAUD != die Baudrate ist ?

Nein.

von Jim M. (turboj)


Lesenswert?

Hans schrieb:
> Kann es sein, dass fBAUD != die Baudrate ist ?

Nein, aber der Compiler darf das IMHO als int berechnen.

Häng mal an die Baudrate ein UL hinten ran (115200UL), damit er das als 
unsigned long mit (meistens) 32 Bits berechnet.

Bei AVR ist auch gerne mal die CLKDIV8 Fuse an, dann stimmen die 8MHz 
nicht und man hat nur 14400 Baud.

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.