Raspberry Pi Zero W: zwei Uart Geräte nutzen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Moin,
    ich habe einen Raspberry Pi Zero W auf dem ich Raspbian laufen habe und den ich über ein GSM Modul (über Uart angeschlossen) steuern möchte. Der Raspberry hat die Aufgabe ein weiteres über Uart angeschlossenes Gerät zu steuern.

    Das Problem:
    Der Raspberry Pi Zero hat nur die eine Uart Schnittstelle auf den GPIO Pins 14/15. (ttyAMA0)

    Ich suche jetzt schon ziemlich lange nach einer Möglichkeit und bin dabei auf folgende Ideen gestoßen:

    Einen USBzuUart Konverter an den USB Port anschließen.
    -Das zweite Gerät ist auf einer von mir entworfenen Platiene, auf der auch das Gsm Modul ist und auf die ich den Raspberry einfach draufstecken möchte. Das Ganze soll dann in ein Gehäuse, in dem ich keinen klöternden USBzuUart Konverter bammeln haben will.

    Einen Software Uart auf zwei der freien GPIOS einrichten:

    -Da habe ich als einzige nutzbare Lösung das hier gefunden: https://github.com/adrianomarto/soft_uart/
    Dabei bekomme ich aber, wenn ich die neu eingerichtete Schnittstelle, den Error: "soft_uart: Invalid parity." Als ich nach einer Lösung für das Problem gesucht habe, habe ich nur Antworten gefunden, die meinen, dass eine Software Uart Schnittstelle für Continues Operation nicht geeigent ist.

    Ein anderes Board vewrwenden:

    -das einzige Board, in der gleichen Preisklasse, wie der RaspberryPi Zero W, das ich gefunden habe und das mehr als eine Uart Schnittstelle hat ist der OrangePi Zero. Hier habe ich aber oft gelesen, dass es viele Kompatiblitätsprobleme mit der Hardware gibt.

    Darum meine Frage: Hat jemand schonmal das gleiche Problem gehabt und ein Lösung gefunden?

  • Vielen Dank für die schnelle Antwort!

    Ich habe mir das mal angeguckt und herausgefunden, dass der Uart0(PL011) und der Uart1(mini Uart) nicht gleichzeitig benutzt werden können, da sie beide nur die Pins 14/15 zur verfügung haben (oder der Uart0 halt auf dem Bluetooth-Modul). Liege ich da richtig oder kann man einen von beiden auch auf andere Pins mappen ?

  • Die Kontrukteure von Linux+Pi wären ziemliche Trotteln, wenn das nicht ginge.

    Das Geheimnis steht in /boot/overlays/README sowohl für uart0, als auch für uart1.

    Servus !

    Vielen Dank. Das probiere ich mal aus.

  • Bei dem Versuch den Uart1(mini Uart) auf andere Pins zu mappen bin auf ein Problem gestoßen:

    in der "/boot/overlays/README" steht, wenn ich das richtig verstanden habe, dass man den txd1_pin auf die GPIOpins 14, 32 oder 40 legen kann und den rxd1_pin auf die GPIOpins 15, 33 oder 41:

    Der Raspberrypi Zero hat aber keine GPIOpins 32, 33, 40 und 41. Und ich wüsste auch von keinem Raspberry Pi, der überhaupt mehr als 40 Pins hat. :/

    Habe ich da etwas falsch verstanden ?

  • morob65 hat er doch beschrieben. Ging nicht.

    Progi deine Erkenntnisse sind richtig. Auch wenn die PI und Linux-Leutz keine Trotteln sind, die Belegung der Pins erlaubt das NICHT, entgegen der Behauptung von RTFM.

    Es gibt aber zB I2C-basierte UART-Expander. Damit ist es dir moeglich ohne USB einen UART zu nutzen. Die Programmierung sieht natuerlich ein bisschen anders aus als bei einem klassichen UART, aber fuer das angeschlossene Geraet ist kein Unterschied bemerkbar.

  • Es gibt aber zB I2C-basierte UART-Expander.

    Da muss ich mich nochmal genauer mit beschäftigen. Vielen Dank für die Berichtigung!

    ich verwende soft uart meist bei gps bei 4800, da gibt es keine probleme, die hard uart wird vom gsm verwendet.

    Ich brauche für mein zu steuerndes Gerät nur 2400. Hast du eine Idee, warum ich den im Thema beschiebenen Fehler bekomme ?

  • Also ... Vielen Dank für die ganze Hilfe! Das hat mir echt geholfen die Thematik besser zu verstehen. Ich habe mich aber jetzt doch dafür entschieden ein USB-GSM-Modul zu verwenden, obwohl das etwas teurer ist.

  • ps915 2. Februar 2024 um 20:21

    Hat das Label Zero W hinzugefügt.

Jetzt mitmachen!

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