mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Berrechnung von Toleranz-Fehler bei UART


Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo zusammen,
ich habe eine Frage. Im Datenblatt(Seite 202) von Mikrocontroller
at90can128 gibt es eine Formel für die Fehler während einer serielle
Kommunikation.Die Formel ist:Error[%]=(1- Baudrate closet
Match/Baudrate)*100%
kann jemanden mir sagen was ist die Baudrate closet Match?

Danke

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Closest match bedeutet, es gibt je nach Frequenz des Quarzes nur eine 
Naeherung an die gewuenschte Baudrate. Bei dem Teilerfaktor n, ist die 
Baudrate noch zu hoch, bei n+1 ist sie dann zu niedrig. Der Wert von n 
oder n+1 ist "closest match". (Uebrigens, "closet" match waere etwas mit 
dem Kleiderschrank und wuerde echt wenig Sinn machen)

Brush up your English ;-)

Gruss, Robert

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
verstehe nicht. ist es die Clock-Frequenz?

Autor: Z8 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>verstehe nicht. ist es die Clock-Frequenz?

Was denn sonst? Die Freq. Deines U-Hosenwechsels bestimmt nicht. Z8

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, sondern die mit dem vorhandenen Baudratenteiler aus dem zur 
Verfügung stehenden Takt erzeugbare Baudrate, die am nächsten an der 
gewünschten Baudrate liegt.

Angenommen, der Takt beträgt 1 MHz, und es ist eine Baudrate von 19200 
gewünscht.

1 MHz / 19200 = 52.0833

Da der Baudratenteiler aber nur mit ganzen Zahlen arbeiten kann, ergibt 
sich ein Teilerwert von 52.

Und damit lässt sich die tatsächlich erzielte Baudrate berechnen:

1 MHz / 52 = 19230.77

19230.77 / 19200 = 1.0016

Also ist dieser Wert 0.16 % zu groß - schon ziemlich genau.


Reale UARTs aber verwenden einen Vorteiler von i.d.R. 16, so daß der 
Ausgangstakt in unserem Beispiel nicht 1 MHz, sondern tatsächlich nur 
62500 Hz beträgt.

62500 / 19200 = 3.255

62500 / 3 = 20833.33

20833.33 / 19200 = 1.085

Somit ist dieser Wert erhebliche 8.5 % zu groß, eine fehlerfreie 
Übertragung ist damit praktisch unmöglich.

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.