Komunikation mit RS232 (FTDI) und Terminal

  • Hallo zusammen,


    ich besitze seit gestern meinen ersten PI und bin soweit begeistert von dem Gerät. Ich möchte mit dem PI eine RS232 Schnittstelle auslesen, die mit einem USB to Serial Port Wandler (FTDI) Kabel am PI angeschlossen ist. Ich habe mir mit google soweit geholfen, dass das Gerät bereits mit ls /dev als ttyUSB0 angezeigt wurde. Jetzt wird mir das nicht mehr angezeigt, dafür erscheint ttyAMA0. Ist das so korrekt?


    Ich würde gerne zum Testen der Schnittstelle Befehle per Terminal senden und schauen was da zurück kommt. Kennt jemand ein gutes Tutorial wo das gut beschrieben wird? Im Netz finde ich nur zusammengestückelte Snipets wo sich mir die Zusammenhänge nicht so recht erschließen.


    Über eure Tipps freue ich mich sehr! :)


    LG

    Christoph

  • Hallo,

    nimmst du Putty
    sudo apt install putty
    gehst auf Serielle, trägst die neue Schnittstelle bei /dev/ ein, und passt ggf die anderen Übertragungsparameter an.
    Anschließend kannst du senden und empfangen.
    Warum nutzt die nicht die interne Serielle Schnittstelle via GPIO ? Oder reichen dir die RX/TX nicht, das du auf die anderen Leitungen auch angewiesen bist ?

    Steffen.

  • Der Weg mit dem Adapter ist richtig. So hast du keine Probleme mit den Pegeln.


    Normalerweise werden die als /dev/ttyUSBx angezeigt. ttyAMA0 duerte die interne Schnittstelle sein.


    Anstelle von putty kannst du auch minicom verwenden.

  • Vielen Dank für die Tipps! Ich habe mich jetzt für Putty entschieden, da ich das Programm bereits bei der Installation des PI etwas kennengelernt habe. Leider kann ich bisher keinen Port öffnen. Die Frage ist sicher, warum nicht mehr ttyUSB0 angezeigt wird, wie gleich nach meinen ersten Tests. ttyAMA0 kann ich nicht öffnen. Habe ihr eine Idee was ich da machen kann?


    SteffenMurks Ich möchte ein Bauteil von meiner Heizungsanlage auslesen, dafür gibt es ein IR-Interface mit dem USB-Kabel. Leider gibt es zum auslesen nur Software für Windows. Der Hersteller war so freundlich und hat mir die Dokumentation der Schnittstelle ausgehändigt, damit ich eine Version für den PI bauen kann.

    [EDIT]



    Code
    FTDI USB Serial Device converter now attached to ttyUSB0


    Warum wird der dann nicht angezeigt? Öffen kann ich ihn auch nicht.

  • Hallo Christoph,


    Warum wird der dann nicht angezeigt? Öffen kann ich ihn auch nicht.

    Wie versuchst du , dir die Schnittstelle anzeigen zu lassen und wie versuchst du sie zu öffnen?

    Anzeigen sollte mit ls -l /dev/ttyUSB0 gehen.

    Vielleicht musst du nur deinem normalen User die entsprechende Gruppenzugehörigkeit geben.

    Wenn bei dir die Gruppe "dialout" ist, dann sudo usermod -a -G dialout $USER.


    Gruß Martin

  • Ich habe immer ls /dev verwendet, da wurde mir nach dem ersten Versuch auch ttyUSB0 angezeigt.


    ls -l /dev/ttyUSB0 gibt crw-rw---- 1 root dialout 188, 0 Sep 24 13:21 /dev/ttyUSB0 aus.


    Wenn ich mit Putty ttyUSB0 öffne, geht ein "Terminal" Window auf:




    Wie kann ich ein Sendebefehl absetzen so das etwas in dem Terminal ankommt?


  • Wie kann ich ein Sendebefehl absetzen so das etwas in dem Terminal ankommt?

    Es reicht nicht, dass Du nut /dev/ttyUSB0 einstellst, Du musst auch alle seriellen Parameter wie Start-/Stopbits, Parität, Geschwindigkeit, einschl. Sofwareprotokpll (Xon/Xoff ?) einstellen, wenn das RS232 Protokoll tatsächlich verwendet wird.

    Laut #5 hast Du ja eine Schnittstellendokumentation vom Hersteller erhalten, dort sollte alles drinstehen.


    Servus !


    Ed.: Welches Kabel hast Du überhaupt [ USB VendorID, ProduktID], oder genaue Bezeichnung von hier: https://ftdichip.com/product-category/products/

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM ().

  • Moin Moin! :)

    Es reicht nicht, dass Du nut /dev/ttyUSB0 einstellst, Du musst auch alle seriellen Parameter wie Start-/Stopbits, Parität, Geschwindigkeit, einschl. Sofwareprotokpll (Xon/Xoff ?) einstellen, wenn das RS232 Protokoll tatsächlich verwendet wird.

    Laut #5 hast Du ja eine Schnittstellendokumentation vom Hersteller erhalten, dort sollte alles drinstehen.

    Ich habe die Parameter gemäß der Doku in Putty eingetragen. Der Control Flow wird in der Doku nicht angegeben, habe ich bei XON/XOFF gelassen.

    Ed.: Welches Kabel hast Du überhaupt [ USB VendorID, ProduktID], oder genaue Bezeichnung von hier: https://ftdichip.com/product-category/products/


    Das ist ein normales USB-Kabel würde ich sagen. Der Chip wird in der IR-Schnittstelle verbaut sein, oder? Das steht auch nicht im Handbuch oder der Doku für die Schnittstelle. Ich werde mal schauen ob ich was beim Hersteller finden kann.


    [EDIT]
    Der Hersteller schreibt lediglich: Dazu ist auf dem PC ein lizenzfreier „Virtual Com Port Driver“ der Fa. FTDI® zu installieren

  • Wie kann ich ein Sendebefehl absetzen so das etwas in dem Terminal ankommt?

    Kommt nichts an, wenn du was tippst oder siehst du nur nicht, was du tippst?

    Bei letzterem:

    "Local echo" and "Local line editing" in Puttys Terminal-Einstellungen sind "force on"?

    Manche werden im Alter weise, manche nur alt.

  • lsusb ist schonmal ein guter Anfang, falls es ein passendes Device gibt, ist vlt. die Ausgabe von lsusb -v -d vendor:product  noch von Interesse.

    Man könnte mit lsmod auch mal nachschauen, ob ein zum Device passendes Kernelmodul geladen wurde.

  • Ich habe die Parameter gemäß der Doku in Putty eingetragen. Der Control Flow wird in der Doku nicht angegeben, habe ich bei XON/XOFF gelassen.

    da würde ich mal mit control flow == None beginnen

  • Hallo zusammen,


    ich besitze seit gestern meinen ersten PI und bin soweit begeistert von dem Gerät. Ich möchte mit dem PI eine RS232 Schnittstelle auslesen, die mit einem USB to Serial Port Wandler (FTDI) Kabel am PI angeschlossen ist. I

    Nun ist es kein Kabel mehr, sondern ein IR-Stick, der von einem (eingebauten) FTDI Chip gesteuert wird.

    Wenn die aus lsusb abgelesene VendorID:ProduktID in der Vendor Datenbank (/lib/udev/hwdb.d/usb-vendor-model.hwdb) auf ein Infrarot Gerät hinweist, dann muss wohl auch das Linux-Infrared-Remote-Control Paket [LIRC] installiert sein.


    Beispielsweise würde die Ausgabezeile von lsusb .... ID 0403:F850 ..., was der Vendor/Hersteller ID 0403 und der Produkt ID F850 entspicht, in der obigen .hwdb (Harwaredatenbank) als:

    usb:v0403pF850*

    ID_MODEL_FROM_DATABASE=USB-UIRT (Universal Infrared Receiver+Transmitter)

    aufscheinen.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Nun ist es kein Kabel mehr, sondern ein IR-Stick, der von einem (eingebauten) FTDI Chip gesteuert wird.

    Wenn die aus lsusb abgelesene VendorID:ProduktID in der Vendor Datenbank (/lib/udev/hwdb.d/usb-vendor-model.hwdb) auf ein Infrarot Gerät hinweist, dann muss wohl auch das Linux-Infrared-Remote-Control Paket [LIRC] installiert sein.

    Ein Stick ist das nicht. Laut Hersteller muss nur Virtual Com Port Driver“ der Fa. FTDI® installiert werden, demnach ist es ein Serial Port.


    Beispielsweise würde die Ausgabezeile von lsusb .... ID 0403:F850 ..., was der Vendor/Hersteller ID 0403 und der Produkt ID F850 entspicht, in der obigen .hwdb (Harwaredatenbank) als:

    usb:v0403pF850*

    ID_MODEL_FROM_DATABASE=USB-UIRT (Universal Infrared Receiver+Transmitter)

    aufscheinen.


    lsusb gibt mir folgendes aus:

    Code
    Bus 001 Device 004: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
    Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
    Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


    lsusb -v -d vendor:product gibt nichts aus.

    Welches Protokoll spricht die IR / USB Schnittstelle? Falls es modbus rtu ist wirst Du mit tippen nicht viel erreichen.

    https://westech-pv.com/mediafi…sInterface-DE-Westech.pdf

    Ich habe kein Modbus Interface, mein Bauteil nennt sich nur USB-Interface.

    ommt nichts an, wenn du was tippst oder siehst du nur nicht, was du tippst?

    Bei letzterem:

    "Local echo" and "Local line editing" in Puttys Terminal-Einstellungen sind "force on"?


    Danke, das werde ich jetzt auch noch mal untersuchen.


    BTW: Leider kann ich nur tagsüber testen, da das Gerät ohne Sonnelicht aus ist. Somit ist mein Zeitfenster für Versuche immer relativ kurz unter der Woche. :)

  • Ich habe gerade meinen Laptop mit Windows11 und die daür vorgesehenden Software angeschlossen. Der COM-Port wird automatisch von Windows angelegt und ich kann diesen in der Software zum öffnen anwählen. Wenn ich das mache, kommt nur die Meldung warte auf ELWA. Also scheinbar funktioniert da etwas nicht. Ich werde den Hersteller kontaktieren, was man da machen kann. Ich melde mich dann später zurück. Vielen Dank so weit für die ganzen Tipps! :thumbup::)