UART Break

Gast #155575
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
Gast #155577
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.
Gast #155578
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 ?
Gast #155579
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.
Gast #155580
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 ?
Gast #155581
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren