Pi Zero W - Soft_UART Probleme

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen.

    Ich habe ein Problemchen. Die Hardware-UART-Schnittstelle ist belegt (von nem Neo6m). Jetzt möchte ich noch eine andere serielle Schnittstelle auslesen. Da habe ich Soft_UART gefunden und installiert. Aber irgendwie komme ich nicht weiter. Ich kriege keine Daten von der Schnittstelle.

    Es handelt sich dabei um einen Laderegler mit einer seriellen Schnittstelle. Bautrate muss 57600 sein. Ich muss „DIAG + CRLF“ (HEX -> 44 73 41 47 13 10) senden, damit mir der Laderegler seine Daten schickt. Ich hatte das schon mal mit einem Arduino probiert und da ging es. Hier bekomme ich es einfach nicht zum laufen. Hab auch ein Python Skript probiert... nix.

    TX ist auf Pin 38 (GPIO 20) und RX auf Pin 40 (GPIO 21).

    Kann mir jemand einen einfachen Shellbefehl sagen, mit dem ich das testen kann? Oder kurz erklären wie ich das mit Minicom hinbekomme (ich komme damit nicht klar).

    Danke und viele Grüße.

  • Moin HeAdLeSs,

    tja, bei diesen vagen Angaben kann man nur in die Kristallkugel schaun.

    Welche Soft-UART hast du gefunden?

    Wird ein Device erstellt?

    Gibt es eine Conf?

    wie du siehst gibt es einiges zu klären.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Moin HeAdLeSs,

    kein Problem. Nu is ja alles da.

    In dem Readme steht alles drin, was man mit dem Teil machen kann. Wichtig scheint mir, in deinem Fall, aber der letzte Satz:

    Zitat

    As a result, you can expect communication errors when using fast baud rates. So I would not try to go any faster than 4800 bps.

    Der Autor schreibt, das er für Baudraten über 4800 nicht garantiert. Du aber

    Bautrate muss 57600 sein

    haben möchtest.

    Kannst du die Schnittstellen tauschen?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Der TTL-232R PCB von FTDI wäre eine mögliche Lösung: https://www.ftdichip.com/Support/Docume…TL-232R_PCB.pdf
    Eine 5V Variante gibt es auch.

    Die Preise fangen bei 16 € an. Ziemlich frech, aber die Dinger funktionieren immer.

    Du müsstest dann nur noch einen USB-Adapter besorgen, da der Rabsperry Pi Zero W nur Micro USB-Buchsen hat.

    Witzige Information nebenbei: Der Raspberry PI 4 hat 5 UARTS (PL011) und einen mini UART.

  • Moin @DeaD_EyE,

    Witzige Information nebenbei: Der Raspberry PI 4 hat 5 UARTS (PL011) und einen mini UART.

    Diese Aussage ist richtig, suggeriert beim Leser aber eine falsche Annahme.

    Diese Aussage nützt dem TE HeAdLeSs überhaupt nix!!

    Auf dieser Seite: https://www.raspberrypi.org/documentation/…uration/uart.md

    heisst es:

    Zitat


    On the Raspberry Pi, one UART is selected to be present on GPIO 14 (transmit) and 15 (receive) - this is the primary UART. By default, this will also be the UART on which a Linux console may be present. Note that GPIO 14 is pin 8 on the GPIO header, while GPIO 15 is pin 10.

    https://www.deepl.com übersetzt es wie folgt:

    Zitat
    Auf der Raspberry Pi wird eine UART ausgewählt, die auf GPIO 14 (Senden) und 15 (Empfangen) vorhanden ist - dies ist die primäre UART. Standardmäßig wird dies auch der UART sein, auf dem eine Linux-Konsole vorhanden sein kann. Beachten Sie, dass GPIO 14 Pin 8 auf der GPIO-Stiftleiste ist, während GPIO 15 Pin 10 ist.

    Fakt ist, auf der GPIO-Leiste ist nur eine Hardware-UART vorhanden!!

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Falsch im angegebenen Kontext des PI4. In dem von dir verlinkten Dokument ist wenig später von overlays die Rede, mit denen man andere uarts einschalten kann. Und die liegen auf dem Pin Header. https://www.raspberrypi.org/documentation/…nary.pdf#page11 Sektion 5.1.2

    Natürlich hast du recht, dass das dem TE mit seinen zero nichts nützt. Aber das hat Dead_Eye ja auch nicht behauptet.

    Was dem TE nützen könnte ist sowas hier: https://www.dfrobot.com/product-2001.h…_BoCvYgQAvD_BwE

    Das ist von der Programmierung dann natürlich eine Spur anspruchsvoller, aber gibt einem zusätzliche 2UARTs. Und sind billiger und kleiner als ein dickes usb ftdi Kabel.

  • Diese Aussage ist richtig, suggeriert beim Leser aber eine falsche Annahme.

    Nein, tut sie nicht, es seiden der Leser hat nicht die Fähigkeit zwischen Raspberry Pi Zero W und Raspberry Pi 4 zu unterscheiden.

    Ich unterstelle den Mitgliedern hier eine gewisse Grundintelligenz, auch Schülern.

    Beim Raspberry Pi 4 lassen sich die UART auf die Pins mappen.

    https://github.com/raspberrypi/fi…r/boot/overlays [UART0 - UART5]

    https://www.raspberrypi.org/forums/viewtopic.php?t=244827

    Alle anderen Modelle können das nicht.

    Die können entweder miniUART oder den vollwertigen UART (PL011) auf die beiden Pins mappen.

    Das ist der große Unterschied. Dann kann man sich noch entscheiden, ob man Bluetooth deaktivieren möchte oder auf den miniUART ummappen, was dann die Geschwindigkeit von Bluetooth einschränkt.

    Den FTDI habe ich vorgeschlagen, da ich den in ungefähr 20 Radar-System verbaut habe, die immer noch funktionieren und für Lehrzwecke eingesetzt werden. Auch wenn sie teurer sind, weiß ich, dass sie bis 921600 Baud fehlerfrei funktionieren und die komplette Logik ist auf dem PCB. Ich habe die Dinger angeschlossen, musste keine Treiber suchen, sondern kann ganz einfach mit PySerial auf /dev/ttyUSB0 zugreifen.

    Die vorgeschlagene Alternative von __deets__ ist günstiger und die Logik ist auch im PCB integriert.

    Bisher habe ich noch nicht herausgefunden, wie man den Konverter beim Raspberry Pi einsetzen kann.
    Die schreiben zwar was vom Raspberry PI, aber die Bibliotheken sind für den Arduino.

    Für den Schüler, der basteln möchte, ist das eine günstige Alternative, sofern er herausfindet, wie man die Hardware nutzt. Beim Überfliegen der Dokumente habe ich leider nichts gefunden.

  • Hallo zusammen.

    Sorry für die späte Rückmeldung. Ich hatte jetzt ein paar Tage 'Bastelpause'. In der Zwischenzeit hat sich das Thema, für mich, erledigt.
    Ich habe den Solarladeregler rausgeschmissen (der hatte eine UART Schnittstelle zum auslesen der Daten) und bin auf einen anderen gewechselt. Da der keine Schnittstelle mehr hat (TP4056) habe ich jetzt einen INA219 dazwischen gesetzt. Der wird glücklicherweise per I2C angeschlossen.

    Trotzdem danke für eure Hilfe ... und habt euch lieb ;)

  • Moin HeAdLeSs,

    danke für die Rückmeldung!

    Dann, bitte, noch dein Thema als erldigt markieren.

    Das geht oben bei "Thema bearbeiten".

    Danke.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!