RS232 RxTx LED's

AndyErfurt

Neues Mitglied
19. Jan. 2024
2
0
1
Erfurt
Sprachen
  1. C#
  2. Assembler
Hallo in die Runde,

aus aktuellem Anlass habe ich letztens eine einfache Möglichkeit gesucht, den Traffic auf 2 RS232-Schnittstellen mit LED's anzuzeigen. Ich hatte auf dem PCB nur noch wenig Platz und so habe ich eine Variante gesucht, die mit minimalem Bauelementeaufwand auskommt.
Meine Lösung dafür: Nimm einen ATTiny84 und 4 LED's mit integriertem Vorwiderstand. 4 Pins vom ATTiny hören am MAX232 die beideen Rx und Tx-Leitungen mit. An anderen 4 Pins kommen die LED's dran. Der Rest ist ein bischen trickiger Assembler-Code, weil der zeitoptimiert sein muss, um die Start-Bits auf den Leitungen sicher zu detektieren. Funktioniert bei mir bestens bis 125kBaud. Die Blink-Frequenz kann man in der Software einstellen. Wenn auch nur 1 Byte gesendet/empfangen wird, blinkt die zugehörige LED zumindest 1 mal. Bei längeren Daten-Sequenzen blinkt es so lange, wie Daten-Traffic detektiert wird.

Hat jemand daran Interesse?

Gruß
Andy
 
Hallo und willkommen im Forum.
Auf den ersten(!) Blick erstmal recht simpel...
den Traffic auf 2 RS232-Schnittstellen mit LED's anzuzeigen. Ich hatte auf dem PCB nur noch wenig Platz und so habe ich eine Variante gesucht, die mit minimalem Bauelementeaufwand auskommt.
Einfachste Variante wären einfach LEDs nebst passenden (bzw ggf integrierten) Vorwiderständen gewesen, die bei einem "0-Bit", und damit insbesondere auch jedem Start-Bit aufleuchten.
Also entweder auf der TTL-Seite von Vcc nach TxD/RxD, oder auf der RS232-Seite von TxD/RxD nach Gnd (oder vielleicht besser der negativen Spannung der Ladungspumpe).
Allerdings werden so halt nur Pegel(!) signalisiert...
Der Rest ist ein bischen trickiger Assembler-Code, weil der zeitoptimiert sein muss, um die Start-Bits auf den Leitungen sicher zu detektieren.
Ein Start-Byte beginnt mit einer Hi-Lo-Flanke, welche sich sicher mittels Interrupt erkennen läßt.

Tricky ist hingegen die sichere Erkennung tatsächlicher Bits bzw Bytes - insbesondere wenn beliebige Baudraten und unterschiedliche Bit-Anzahlen pro Byte (UART unterstützt ja 5..9 Datenbits, (0..2 Stopbits) und 0..1 Paritätsbits) erkannt werden sollen.
Wenn auch nur 1 Byte gesendet/empfangen wird, blinkt die zugehörige LED zumindest 1 mal.
Woran erkennst Du ein fertiges gesendetes Byte, wenn nichts über Baudrate und Baudrate bekannt sind? Damit tun sich ja auch Logikanalysatoren schwer.
(Wann ordnest Du zB ein erkanntes Hi->Lo->Hi als einzelnes 0-Bit (mit folgendem 1-Bit), und wann als 0x00-Byte ein? (oder als 0x0F oder...))
 
Hallo LotadaC, wie Du richtig schreibst würden einfache LED's nur den "statischen" Pegel signalisieren. Da sieht man im allgemeinen gar nichts - dazu gibts genug Beiträge in Foren.
Ansonsten - ich brauche kein fertig gesendetes Bytge zu erkennen und habe auch keinen Anspruch Logik-Analyzern Konkurrenz zu machen (by the way - mit den Dingern kenne ich mich aus und habe auch welche hier stehen...). Ich will ja auch gar keine Aussage über die Baud-Rate und die Daten-Bits. Ich will ja nur wissen, ob Datenverkehr anliegt und genau das bekommst Du mit einer einfachen LED eben nicht raus.
Und ob man das nun mit Interrupt oder Polling macht ist ziemlich Wurscht bei einem Prozessor, der sonst nichts weiter zu tun hat...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)