Gast
#155574
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.
|
Anzeige
|
UART Break
Gast
#155574
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.
Gast
#155575
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
#155576
Hallo Yagan. wie kann ich so eine Break Anweisung mir meinem µC (Mega16) per Hardware UART senden ?
Gast
#155577
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
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
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
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
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
Gast
#155582
ist 0x00 eine ASCII NULL??? wohl eher eine Hex-NULL !? Ich hoff ich hab nicht schon wider shit gelabert. Trotzdem Danke ! MfG
Gast
#155583
@Dietmar: http://www.asciitable.com/ behauptet, dass 0x00 das ASCII-Nullzeichen bezeichnet. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|