AutoBaud für UART

Gast #30059
Lesenswert?
• ▲
▼
geht eigentlich nur, wenn man ein Zeichen vereinbart, welches als erstes 
empfangen wird, üblich sind 0x20 oder 0x00. Einfach den seriellen 
Eingang pollen und mit einem Timer die Bitzeiten messen, daraus dann die 
Baudrate berechnen.
Gast #30060
Lesenswert?
• ▲
▼
ich dachte eher an die überprüfung des frame-flags (FR).
z.b. könnte ich es doch 50x prüfen, und wenn dann noch immer keine 
fehlerfreie übertragung gegeben ist, auf die nächst höhere 
übertragungsrate umschalten.
nur die frage ist, kann ohne besondere vorkehrungen einfach das UBRR und 
UBRRHI neu beschrieben werden?
#30061
Lesenswert?
• ▲
▼
Das frame-flags sagt Dir nur, daß das Stop-Bit falsch ist, mit der 
Baudrate hat es also überhaupt nichts zu tun.


Wie schon gesagt wurde, muß der Sender ein bestimmtes vereinbartes 
Zeichen senden und danach auch eine längere Pause lassen, damit der 
Empfänger die Baudrate erkennen und sich darauf einstellen kann.


Hier mal ein Beispiel in C:

http://www.specs.de/users/danni/appl/soft/c51/abaud/abaud.c51


Peter
Gast #514472
Lesenswert?
• ▲
▼
Hallo,

da dieser Thread schon älter ist und der oben angegebene Link nicht mehr 
funktioniert nochmal dieselbe Frage:

Hat schon jemand für den atmega128 (o.Ä.) -uart eine automatische
baudratenerkennung, möglichst in c, geschrieben?

Ich möchte ein Gerät anschließen, welches u.A. NMEA-Daten liefert und 
mit 4 unterschiedlichen Baudraten betrieben werden kann. Gibt es eine 
Möglichkeit ohne vorher vereinbartes Zeichen ? Ich habe daran gedacht 
nach dem häufig vorkommenden Zeichen '$' oder LF zu suchen. Eventuell 
auch nach der Kombination CR,LF um eine höhere Sicherheit zu bekommen.

Tobias

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