UART unter Python auslesen

  • Mein Gedankengang ist folgender :


    Ich habe es ja schon geschafft das der Tx-Pin einen Datenstrom rausschmeißt => Tx ist in Ordnung.


    Aber Ich habe es bis jetzt noch nicht hinbekommen mit einem selbstgeschriebenen Pythoncode Irgendwas zu senden.


    Also denke ich das irgendwelche Einstellungen außerhalb des Codes nicht stimmen.

  • Senden bringt Dich doch nicht weiter ...
    Und wenn Tx und Rx verbunden sind, und Du mit Bordmitteln ( also ohne ein evtl. selbstgeschriebenes, und daher fehlerhaftes Script ) noch nicht mal die vom UART selbst gesendeten Zeichen empfangen kannst, dann liegt da imho ein Hardware-Defekt vor.
    Bei einer Kurzschluss-Brücke zwischen Pin #8 und Pin #10 muss da was ankommen ...


    cu,
    -ds-

  • Ich bezweifele sehr, dass Python da schuldig ist bzw. weitere Einstellungen moeglich sind - das ist alles sehr simpel & Standard-Unix-Kram, da gibt es nichts einzustellen jenseits dessen, was die API schon anbietet, und selbst wenn du die Parameter verfummelt haettest (also falsche BPS-Rate, Start/Stopbit, Paritaet etc) kommt da *irgendwas* an.


    Und mit SSH hat das schon mal gar nichts zu tun.

  • Nochmal deinen Code angeschaut - kann es sein, dass da ein simples "connection.open()" fehlt?

  • Über Python geht nix, minicom sendet/empfängt nichts bzw. blockiert (vermutlich eben weil Rx gestorben ist), eine Kurzschlussbrücke zwischen Rx und Tx schafft ebenfalls keine Abhilfe - es werden keine Daten gesendet und auch nicht empfangen.

    Ich denke, hier ist alles gesagt, vorausgesetzt unser TE hat die Versuche wie beschrieben auch durchgeführt ...


    ciao,
    -ds-

  • Nein, er betrifft vor allem das abklemmen des Bluetooth vom taktunabhaengigen UART. Ob du darauf eine serielle Konsole faehrst oder nicht ist dir ueberlassen, du musst sie ja nicht anschalten.

  • Das mit dem Rs232 Wandler ist gar nicht das Problem... Mir war von Anfang an klar dass der Pi keine 12V verträgt...


    Hast Du einen MAX232 dran oder nicht? Ist es denn wirklich so schwer, mal klare Angaben zum Aufbau zu machen.


    -12V/+12V ist/war doch das berühmt-berüchtigte V24 Teil, wenn ich mich nicht irre...
    Der Regelfall ist m.E. TTL-Level 0 ... +5V


    RS232 ist IMMER definiert als -3..-12V für high! und +3..+12V für low! Und vernünftige RS232-Wandler geben auch diese Pegel aus, USB-Wandler üblicherweise -8 und 8V, weil die 5V vom USB spannungsverdoppelt und mit Verlusten diese Spannungen ergeben.


    Viele Empfänger akzeptieren dennoch 0V als high! und 3V als low! Das ist aber immer noch nicht der TTL-Pegel, weil das Signal invertiert ist.


    TTL-Pegel 0 und 3.3V / 5V gibt es nur auf Seite der Mikrocontroller und des Raspi. Das ist dann ein Uart, aber keine RS232, auch wenn es oft so bezeichnet wird, weil die Pegel nicht den RS232-Spezifikationen entsprechen.


    Und da man davon ausgehen sollte, daß das Gerät an seiner RS232 ein konformes Signal ausgibt, bringt eine reine Pegelwandlung gar nichts, das Signal muß für den Raspi invertiert werden. Sonst sind Nullen Einsen und Einsen Nullen, das Startbit ist falsch und das Stopbit ist falsch => Daten werden nicht erkannt.


    Im Ruhezustand liegt Tx auf high: Am Raspi mußt Du +3.3V messen, nach dem Wandler dann -5..-12V. Auch eine aktive RS232 am PC hat im Ruhezustand Highpegel mit -12V an Tx.