mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Start und Stopbits beim UART senden


Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe ein Problem mit meinem UART und zwar möchte ich Statusregister 
eines Bausteins über UART auslesen und habe dazu auch schon die nötige 
Routine geschrieben.
Ich muss ein Byte 0x1D übertragen, das der Baustein mir den 
Registerinhalt zurückschickt. Das schicken von 0x1D funktioniert auch 
soweit wunderbar, leider Antwortet mir der Baustein nicht. Jetzt habe 
ich volgende Vermutung:
Im Datenblatt des Bausteins steht es müssen immer 10 Bit übertragen 
werden. Das heißt 1 Startbitt (lowBit) dann 8 Datenbits und ein Stopbit 
(highBit) Jetzt habe ich bei meinem UART über das UCSR1C Register ein 
Stopbit eingestellt, Leider kann ich da aber kein Startbit definieren 
oder?
Das gibt zusammen mit den 8 Datenbits eben erst 9 Bits und vielleicht 
Antwortet der Baustein mir deshalb nicht?!?!? Wie bekomme ich ein 
solchen Startbit (lowBit) vor mein eigentliches 0x1D welches ich sende??
Gibts da ne einfache Möglichkeit?

Vielen Dank schon mal

Gruß
Simon

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zumindest ein Start- und ein Stopbit werden automatisch von der U(S)ART 
im asynchronen Modus hinzugefügt, du sendest also in jedem Fall min. 
10bit. Weiss im Moment gar nicht, ob man bei den Atmels auch mehr als 1 
Stopbit senden kann, ich habe bis jetzt immer 8N1 verwendet.
Wie heisst denn der "eine Baustein"??

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der UART generiert das Startbit automatisch.
Es kann auch nichts Anderes als genau EIN Startbit geben, anders als 
beim Stopbit (1, 1.5, 2).

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Startbit wird sowieso immer gesendet, das brauchst du nicht
extra einstellen. Das Startbit ist auch immer 1 Bit lang

Wegen der Stopbits. AUch wenn du 2 einstellst muss es egal
sein. Das Stopbit regelt im Grunde nur die Länge der Pause,
bevor der Sender wieder senden kann. Wenn also der Sender
2 Stopbits eingestellt hat, dann macht er einfach nur eine
längere Pause bevor das nächste Startbit kommt.

Dein Problem muss an anderer Stelle liegen.
Verwendet das Gerät Hardware-Handshake?

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

Bewertung
0 lesenswert
nicht lesenswert
Oder ist möglicherweise die Baudratenerzeugung nicht in Ordnung (das ist 
eine beliebte Fehlerquelle)?

Hast Du mal anstelle des von Dir anzusteuernden Gerätes einen PC mit 
einem Terminalprogramm (Hyperterminal) oder einem 
Schnittstellentestprogramm (Bray, hterm) angeschlossen?

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jipi....
Es funktioniert,
vielen Dank für die vielen schnellen Tips!
Das Forum hier ist echt der Hit!
Danke

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.