UART Baudratenabweichung

Gast #462402
Hallo allerseits!!!

Ich verwende ein 8052 Derivat (ADuC812) und moechte das Teil mit einem 
16MHz Quarz betreiben. Jetzt habe ich mal die Timer-Berechnung fuer den 
UART-Takt durchgefuehrt (Timer2, 16Bit, Autoreload) und komme auf 
folgende Abweichungen:

Soll: 1200   Ist: 1199  => 0,1%
      2400        2403  => 0,2%
      4800        4807  => 0,2%
      9600        9615  => 0,2%
     19200       19230  => 0,2%

Sind die Abweichungen tolerierbar oder sollte ich doch besser 'nen 
anderen Quarz verwenden?

Gruss, Jan
Gast
@Joe

> Ein Fehler von bis zu 4% ist zulässig, kannste so lassen.

VORSICHT! Offiziell sind es 3%, dann muss aber die Gegenseite (meist der 
PC) mit 0% Fehler arbeiten (Tut er auch). Da gabs mal von Maxim eine 
Application note, wo das haarklein vorgerechnet wird. Bis 1% ist im 
Normalfall OK.

MfG
Falk

P.S. Hier mal mein UART-Deluxe Excel-Sheet
Angehängte Dateien:
Joe wrote:

> Ein Fehler von bis zu 4% ist zulässig, kannste so lassen.

Bei 4% ists nur noch ne reine Glückssache und über 19200 Baud geht 
garnichts
mehr.


Bis zu 1% ist o.k., darüber nimmt die Störanfälligkeit merkbar zu.


Peter
Ich gehe von einem maximal zulässigen Fehler von 2% aus, unter der 
Berücksichtigung, dass die Gegenseite ebenfalls einen Fehler von 2% in 
die andere Richtung haben könnte. Um genügend Reserve zu haben, schaue 
ich sogar darauf, dass ich unter 1.5% Fehler bleibe.

Ich verwende oft 12 MHz als F_CPU, damit lasen sich die üblichen 
Baudraten ausreichend genau erzeugen.



Angehängte Dateien:
Gast
Na, sein max. Fehler liegt bei 0,2 %, darauf bezog sich "kannste 
lassen".

+- 2% sind doch 4% oder ;-)) mir ist klar das man üblicherweise das 
Optimum sucht daher der Hinweis auf Baudratenquarz.

Warum seid ihr so empfindlich ? ist doch bald Weihnachten ;-))
Gast
Hallo zusammen.
ich arbeite mit dem Board ADuC812 (8051er) von Phytec.
Mein Board läuft mit Timer 1 auf 9600 baud.

TMOD |= 0x20;  // mit 9600 Baud 8N1, mit 11,059 Mhz Quarz
TH1  = 0xFD;
TR1  = 1;
PCON &= 0x7F;
SCON = 0x52;

Vielleicht weiss einer wie ich mit dem Timer 2 die Baudrate auf 19200
erhöhen kann.
Welche Parameter muss ich für

SCON
TMOD
TCON
RCAP2H
RCAP2L

eingeben?

Thanx Calimero

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 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.