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


von Gert (Gast)


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?

von Aufreger deluxe (Gast)


Lesenswert?

Probiers einfach aus.

von Falk (Gast)


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

von Gert (Gast)


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.

von Thomas (Gast)


Lesenswert?

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

Mfg
Thomas

von thkais (Gast)


Lesenswert?

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

von Gert (Gast)


Lesenswert?

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

von Peter D. (peda)


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

von unsichtbarer WM-Rahul (Gast)


Lesenswert?

>und mit der Nachbarin

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

von Gert (Gast)


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.

von Falk (Gast)


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.


von Gert (Gast)


Lesenswert?

achso: ich nutze keinen AVR.

mein Controller ist ein 32Bit Fujitsu 91F467DA

Peter lag also richtig.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.