mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART: MSB oder LSB zuerst?


Autor: Gert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

ich habe ständig einen "Framing-Error" bei einer seriellen Übertragung.
8N1 ist auf beiden Seiten eingestellt.
Jetzt weis ich nicht woran es noch liegen könnte.
Der uC ist eingestellt auf LSB zuerst senden/empfangen. Aus Instinkt 
herraus hätte ich jedoch das MSB zuerst geschickt. Kann es daran liegen?

Autor: Aufreger deluxe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers einfach aus.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim UART wird immer das LSB zuerst übertragen. Ein Framing error ist 
meist definiert als ein ungültiges Stopbit (=0). Stimmen deine 
Baudraten/Quarzfrequenzen?

MFG
Falk

Autor: Gert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Baudraten usw. stimmen.
Ich nehme HTERM.

Da kann ich den Fehler eingrenzen:
Ales funktioniert solange ich Zahlen 0 bis 9 schicke.
Buchstaben oder zweistellige Zahlen verursachen den Fehler.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit wieviel Baud willst du die Daten übertragen? Welche Einstellungen 
haben Sender/Empfänger?

Mfg
Thomas

Autor: thkais (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal nach Deiner Einstellung der Stopbits. Kann sein, dass der 
Sender nur eines sendet, der Empfänger aber 2 erwartet.

Autor: Gert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
19200 Baud, beide Seiten haben 8N1 eingestellt.
Alles soweit in Ordnung. Komisch isses...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gert wrote:
>
> Ales funktioniert solange ich Zahlen 0 bis 9 schicke.
> Buchstaben oder zweistellige Zahlen verursachen den Fehler.

Das stinkt gewaltig nach Baudratenfehler.

Hast du auch wirklich nen Quarz angeschlossen und nicht den ungenauen 
internen RC ?

Hast Du auch für den Teilerfaktor keinen zu großen Fehler ?


Am besten nen Standardquarz z.B. 7,372MHz, dann klappts auch mit der 
UART und mit der Nachbarin.


Peter

Autor: unsichtbarer WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und mit der Nachbarin

Die iss Ü50... Warum sollte da was klappen?

Autor: Gert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK hab den Fehler. Aber ich verstehe nicht warum:

Auf dem Board ist ein 10MHz Quarz.

Das "Fertig-Beispiel" für das Board rechnet die Baudrate mit 16MHz aus.
Hatte also am Anfang auf 10 geändert. Jetzt...mit 16MHz funzt alles.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Peter Dannegger

Neben deiner Delay-Allergie hast du wohl auch einen 
Baudratenquarz-Fetisch? ;-)

UART Kommunikation geht mit so ziemlich jedem Quarz, man sollte nur die 
Berechnung von UBRR und dem Frequenzfehler beherrschen. Eigentlich 
Mathematik Klasse 7 oder so?

MfG
Falk

P.S.

@Gert

Prüf mal wie deine Fuse bits im AVR gesetzt sind, dort muss der externe 
Quarz als Taktquelle aktiviert sein.


Autor: Gert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso: ich nutze keinen AVR.

mein Controller ist ein 32Bit Fujitsu 91F467DA

Peter lag also richtig.

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.