Forum: Mikrocontroller und Digitale Elektronik USART/RS232 Empfangsproblem ATmega8


von Flo (Gast)


Lesenswert?

Hallo,

Ich will eine Übertragung mit 1 Stopbit machen. Der AVR empfängt die
Daten aber nur richtig, wenn ich 2 Stopbits sende. Wenn ich nur mit 
einem Stopbit sende, zeigt mir der ATmega einen Frame Error an. Ich 
übertrage mit HTerm probeweise Buchstaben auf den ATmega

Laut Datenblatt braucht der Atmega8 nur 1 Stopbit. Das kann man auf der
Empfansseite auch nicht einstellen. Nur in Senderichtung kann man die
Anzahl der Stopbits festlegen.

Woran könnte das liegen? Wie bekomme ich das hin, dass Daten mit einem
Stopbit vom AVR richtig empfangen werden?

Gruß
Flo

von Justus S. (jussa)


Lesenswert?

Flo schrieb:
> Das kann man auf der
> Empfansseite auch nicht einstellen.

was bringt dich auf diese Idee?

von spess53 (Gast)


Lesenswert?

Hi

>Woran könnte das liegen?

Baudratenfehler?

>was bringt dich auf diese Idee?

Wie kann ein Empfänger die Anzahl der Stopbits bestimmen?

MfG Spess

von Flo (Gast)


Lesenswert?

An einen Baudratenfehler hab ich auch schon gedacht. Habs mit 4800 und 
9600 getestet, das hat nix am Problem geändert.
Das mit dem Stopbit auf der Empfangsseite steht auch im Datenblatt des 
ATmegas.

Gruß
Flo

von Tobi (Gast)


Lesenswert?

Flo schrieb:
> Habs mit 4800 und
> 9600 getestet, das hat nix am Problem geändert.

Langsamer bedeutet nicht auch ein kleineren Fehler.

von Paulchen Panther (Gast)


Lesenswert?

Das Stoppbit dient als Pause zwischen den Bytes. Wie lange benötigt 
deine Routine zur Verarbeitung der ankommenden Daten?

von spess53 (Gast)


Lesenswert?

Hi

>Das Stoppbit dient als Pause zwischen den Bytes.

Von der Verarbeitung her nicht. Mit 2 Stopbits hat er 11 Bitzeiten, mit 
einem nur 10 Bitzeiten für die Verarbeitung zur Vefügung.
Außerdem hat er einen Frameerror und keinen Data-Overrun.

>An einen Baudratenfehler hab ich auch schon gedacht.

Benutzt du einen Baudratenquarz?

MfG Spess

von Flo (Gast)


Lesenswert?

Ich benutz ein 4MHz Quarz.

Gruß
Flo

von Paulchen Panther (Gast)


Lesenswert?

Welche Werte hast du in den Baudratenregistern eingestellt?

von justme (Gast)


Lesenswert?

Das zweite Stoppbit wird beim Empfang sofern nicht erwartet weggeworfen.
"The Receiver ignores the second stop bit. An FE (Frame Error) will 
therefore only be detected in the case where the first stop bit is zero" 
Da Startbits low und Stoppbits high sind, kann man ein low Stoppbit 
nicht einfach per Protokoll erzeugen. Ein low Stoppbit, das der Grund 
für den FE ist, entsteht z.B. wenn das letzte Datenbit bereits für das 
Stoppbit gehalten wird.

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.