mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AutoBaud für UART


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo an alle!
hat schon jemand für die atmega8/16-uart eine automatische 
baudratenerkennung in c geschrieben?
vielleicht kann mir jemand weiterhelfen, wie ich diese thema angehen 
soll. alle bisherigen versuche sind eher im sande verlaufen!
peter

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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/abau...


Peter

Autor: Tobias F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, sicher. Baudrate einstellen und horchen. Die Fehler notieren. Falls 
zuviele Fehler auftreten, die Baudrate aendern.

Z

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es geht auch mit (fast) jedem Zeichen: Die kürzeste Bitdauer suchen, das 
wird dann die Baudrate sein. Man muss halt überprüfen ob der Wert 
plausibel ist, oder ob es nur ein Spike war. Man muss halt mehrmals 
messen, damit man wirklich 1 einzelne Bitdauer bekommt.

Autor: 1. Rahul nach Moiré (Gast)
Datum:

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

Leider nicht, war bisher nie notwendig.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobias F. wrote:
> Hallo,
>
> da dieser Thread schon älter ist und der oben angegebene Link nicht mehr
> funktioniert nochmal dieselbe Frage:


http://home.tiscali.de/peterd/appl/soft/c51/abaud/abaud.c51


Peter

Autor: Tobias F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die vielen schnellen Antworten. Ihr habt mir wirklich 
sehr geholfen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.