Forum: Mikrocontroller und Digitale Elektronik UART Break


von Dietmar H. (Gast)


Lesenswert?

Hallo.
Kann mir jemand erklären was ein UART-Break ist ?
Im datenblatt steht, dass ich um aus einem bestimmten modus
herauszukommen ein UART Break senden muss.

von Yagan Z. Dongobar (Gast)


Lesenswert?

Hallo Dietmar,

eine BREAK-Bedingung wird von vielen UARTs erkannt, wenn nach einem
Startbit nicht innerhalb eines bestimmten Zeitraums ein Stopbit folgt.
In der Praxis zieht man den /TXD-Ausgang für mehrere Byte-Zeiten auf
LOW. Manche UARTs kennen auch eine 'Send Break'-Anweisung.

Ciao, Yagan

von Dietmar H. (Gast)


Lesenswert?

Hallo Yagan. wie kann ich so eine Break Anweisung mir meinem µC (Mega16)
per Hardware UART senden ?

von mmerten (Gast)


Lesenswert?

Einfache Antwort: Der Hardware UART des AVR kennt weder eine direkte
BREAK Detektion noch kann er ein BREAK senden.
Mit Software ist dies aber möglich, z.B. FE-Detektion und RX-PIN
Abfrage für RX BREAK, und UART disable und TX-PORT auf L für den
Sender.

von Dietmar H. (Gast)


Lesenswert?

Na klasse ! Wie integrier ich das nun am besten in mein Vorhandenes
(hardware based uart) system ?
Soll ich eine routine schrieben, die den UART vorübergehend disabled
und "manuell" den uart break sendet und dann den uart wieder enabled
?
Oder wie mach ich das am besten ?

von Michael (Gast)


Lesenswert?

Soll ich eine routine schrieben, die den UART vorübergehend disabled
und "manuell" den uart break sendet und dann den uart wieder enabled
?

Entweder so oder Du schaltest einen Transistor parallel zum TX-Ausgang,
der diesen eine gewisse Zeit kurzschließt, falls das mit dem disable
doch viel zu kompliziert sein sollte.

von Dietmar H. (Gast)


Lesenswert?

Wie soll ich denn das mit dem "kurzschließen" machen. Klar ist ich
brauch wiederstände, die den "kurzschlussstrom" begrenzen. Aber woher
weiss ich wann ich den Transistor "an" schalten muss ? bzw. woher
weiss ich wann das start bit gesendet ist ?

von Jörg Lindemeier (Gast)


Lesenswert?

Ein einfaches <break> kann auch erzeugt werden, indem man
die Baudrate kurzzeitig verkleinert (z.B. halbiert) und dann
eine ASCII-NULL (0x00) sendet. Dies sollte beim Empfänger zu
der gewünschten Break-Funktion führen.
Gruss Jörg

von Dietmar H. (Gast)


Lesenswert?

ist 0x00 eine ASCII NULL??? wohl eher eine Hex-NULL !?
Ich hoff ich hab nicht schon wider shit gelabert.
Trotzdem Danke !

MfG

von Chris (Gast)


Lesenswert?

@Dietmar:
http://www.asciitable.com/
behauptet, dass 0x00 das ASCII-Nullzeichen bezeichnet.

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.