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
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"??
Der UART generiert das Startbit automatisch. Es kann auch nichts Anderes als genau EIN Startbit geben, anders als beim Stopbit (1, 1.5, 2).
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?
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?
Jipi.... Es funktioniert, vielen Dank für die vielen schnellen Tips! Das Forum hier ist echt der Hit! Danke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.