Der Versuch eine Serielle Schnittstelle zu aktivieren... RS232, RS485 (modbus)

  • Hallo zusammen,

    ich verzweifel aktuell an dem Porblem die Serielle Schnittstelle an meinem RPI3 zu aktivieren.

    Folgende Einstellungen habe ich schon vorgenommen:

    Code
    enable_uart=1
    dtoverlay=pi3-miniuart-bt

    Selbst wenn ich das BT Modem deaktiviere, bekomme ich es über die Schaltfläche trotzdem angeschaltet.

    Desweiteren habe ich versucht auf den "/dev/ttyAMA0" und ".../serial1" mit gebrückten RX und TX bytes zu senden ohne Erfolg.

    Hat jemand noch eine Idee wie ich über diese beiden Pins Daten lesen und senden kann.


    Folgende Platinen möchte ich später verwenden:

    https://www.reichelt.de/?ARTICLE=162304&PROVID=2788&gclid=EAIaIQobChMIqaaqj_7a2QIVoTLTCh37JgivEAQYAiABEgJQY_D_BwE

    und

    https://www.pollin.de/p/rs232-ttl-wandler-mit-max3232-810358?&gclid=EAIaIQobChMIgYCnrv7a2QIV1TLTCh1_GAP9EAQYAyABEgI3-_D_BwE

    Was ich beobachten konnte, wenn die rs232 angeschlossen ist, dass eine LED konstant an ist und die andere in einem bestimmten Takt leuchtet.

    Schließe ich ein PC mit einem Port-Programm, mit dem ich Signal senden kann an, gehen die LED´s aus und beim Senden blinkt pro Impuls eine LED an. (scheinbar ok) Aber Daten kommen nicht durch.


    Vielen Dank schonmal. Bin über jede Hilfe dankbar.

  • Vielen Dank.


    Leider auch nicht.

    Ist in der cmd vill ein Fehler?


    dwc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=/dev/mmcblk0p7

    rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait splash plymouth.ignore-serial-consoles


    Ohne Umbruch natürlich.

  • Brauchst du die serielle Console ?

    Sonst kannst du mal das console=serial0,115200 weglassen, vllt. hilfts.

    Gibt es einen speziellen Grund, warum du NOOBS installiert hast ?

    Hast du noch eine andere SD zum testen mit Stretch ?

  • Das probiere ich mal. Was passiert, wenn diese deaktiviert ist?

    Quote

    Gibt es einen speziellen Grund, warum du NOOBS installiert hast ?

    nein, aus dem jugendlichem leichtsinn vill. Würde das einen Unterschied machen?

    Quote

    Hast du noch eine andere SD zum testen mit Stretch ?

    Das wäre heute Abend zo erledigen.

  • Quote

    Sonst kannst du mal das console=serial0,115200 weglassen, vllt. hilfts.

    Das war es :bravo2: Danke. SOOOOO jetzt kann es endlich an die Sensoren gehen :danke_ATDE:

  • Hallo zusammen.


    Ich möchte gerne diesen Thread nochmal rauskramen, da ich vor dem gleichen Problem stehe.


    Zu meiner Hard- und Software:


    Raspberry Pi 3 Modell B+

    Netzteil: RS Components Raspi Netzteil Modell DSA-13PFC-05 FCA (Output: 5.1 Volt, 2.5 A)

    RB-RS485 Erweiterungskarte von Joy-IT Link zu Karte bei Conrad


    cat /etc/os-release:

    Raspian GNU/Linux 9 (stretch)

    uname -r:

    4.14.52-v7+

    lsusb:

    Bus 001 Device 004: ID 03f0:a407 Hewlett-Packard

    Bus 001 Device 005: ID 03f0:0024 Hewlett-Packard KU-0316 Keyboard

    Bus 001 Device 006: ID 0424:7800 Standard Microsystems Corp.

    Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub

    Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    cmdline:

    dwc_otg.lpm_enable=0 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait dtoverlay=pi3-miniuart-bt


    Zum Überwachen verwende ich ein Nanotec ZK-RS485-USB Kabel, das an einem Windows Rechner hängt und den Controller problemlos ansteuern kann. Ich lass das Programm "Free Serial Port Manager" laufen, um zu überprüfen, welche Daten rauskommen.

    Mein Problem ist wie oben:

    -Es kommt beim Port Manager nichts an.


    Erklärung: Der Befehl "#3$\r" soll in ascii codiert werden, damit der Controller angesprochen werden kann.

    Dabei beginnt jeder Befehl mit einer Raute und endet mit "\r".

    Die 3 bedeutet, dass Controller Nummer 3 (und damit auch Motor Nummer 3) angesprochen werden soll.

    Der Befehl "$" fordert den Controller auf seinen aktuellen Status zurück zu senden.


    Wenn ich das Nanotec Programm laufen lasse und den Serial Port überwache, ist mir aufgefallen, dass die erste Meldung lautet: Port geöffnet. Daher habe ich meinen Code um ser.close() bzw ser.open() Befehle erweitert (hier auskommentiert). Dies hat aber keine Veränderung gebracht.


    Weder wenn ich über die Schnitstelle gehe, noch wenn ich direkt an das Board gehe wird mir etwas im Port Manager angezeigt.

    Ich habe einen eigenen 5V Pegelwandler nachgebaut nach dem Schaltbild, das der Joy-IT Erweiterungskarte beiliegt, aber ebenfalls ohne Erfolg.


    Hat noch jemand eine Idee, was ich probieren könnte?


    Der Python Praktikant