Baudratenumschaltung 10400->19k2

Gast #264377
Lesenswert?
• ▲
▼
Hi,

wie kann ich mit einem Controller mit 2 UARTS die Baudrate so
einstellen, dass der eine mit 10400 Baud laeuft und der andere z.B. mit
19200?

beim 8051 kann man mit den passenden Reload-Werten und einem 11,0592MHz
Quartz 19200 Baud genau einstellen, aber keine 10400. Dies geht aber mit
einem 12Mhz Quartz, damit kann ich aber wiederum keine 19k2 einstellen.
2 Quartze benutzen und umschalten?

Da 10400 Baud nun wirklich kein PC-Standart ist, soll der uC erst mal
als Baudratenwandler dienen und spaeter noch mehr machen bzw. einiges
selbsstaendig machen.

 - Martin
Gast #264378
Lesenswert?
• ▲
▼
Martin,

baudraten werden dadurch erzeugt, dass von einer nennen wir sie mal CPU
frequenz Vorteiler da sind und wie du schon bemerkt hast lassen sich
Standardbaudraten und 10400 schlecht verheiraten. Also was Du machen
musst ist eine Grundfrequenz zu haben, die schnell genug ist, damit du
beide Baudraten HINREICHEND GENAU hinbekommst. Ein UART kann locker 2%
Abweichung hinnehmen ohne dass es zu Problemen in der Uebertragung
kommt. Wie genau soll denn die 10400 sein, scheint was spezielles zu
sein, da gibt es manchmal (unsinnige) Genauigkeitsforderungen. Nehmen
wir mal die 12 MHz her, damit kannst du die 10400 auch nicht genau
erreichen (10417). UARTs haben oft eine 16-fache Oversampling Rate,
d.h. die Frequenz verfuegbar zur Baudratenerzeugung waere 12 MHz / 16 =
750kHz. Der Teilerfaktor 39 von dieser Zahl ergibt ca. eine Baudrate von
19231 Baud. Das ist definitiv hinreichend genau zur Kommunikation ueber
einen normalen UART.
Also das Geheimnis heisst verschiedene Vorteiler fuer die beiden
seriellen Schnittstellen.

Robert
Gast #264379
Lesenswert?
• ▲
▼
Wie Baudraten erzeugt werden ist mir schon klar, nur mal eben bei der
8051 Serie den Autoreloadwert um 1 zu ändern bringt einen ziemlichen
Sprung mit sich. Ich habe vorhin mal bei Atmels AVR Serie gekukkt, da
geht das etwas leichter. Wenn UBRR = 39 bei 12 MHZ ist, habe ich 19231
Baud (+0,16%) und bei UBRR = 72 erhalte ich 10417 (+0,16%). Das wäre
doch oké. Also ist hier schonmal AVR im Vorteil.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.