Zweiter UART auf GPIO

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

    ich habe mir heute einen Raspberry 2 mit einer USP PIco zusammen gesteckt.
    Was mich nun jedoch stört ist das die USV den UART des Raspberry belegt um mit dem System zu kommunizieren.
    Diesen nutze ich aber recht häufig um per USB Kabel auf die Konsole zu kommen.

    Gibt es eine Möglichkeit die Serielle Konsole auch auf andere Pins der GPIO zu legen und somit beides nutzen zu können?

    Hoffe von euch hat jemand eine Idee, möchte eigentlich auf keines der beiden verzichten wollen ;)

  • Hallo McUles,

    herzlich Willkommen in unserem Forum!

    Über die GPIO-Pins kannst Du nur über die Pins RX/TX eine serielle Schnittstelle realisieren.

    Wenn Du andere Pins dafür verwenden willst, dann musst Du die serielle Schnittstelle über eine Methode, die Bitbanging genannt wird, selber programmieren. Dies erfordert eine entsprechende Programmiererfahrung.

    Möglicherweise kann man dieses Verhalten auch über die eine Kernel-Compilierung erreichen. Dies ist für Anfänger allerdings nicht zu empfehlen.

    Eine andere Möglichkeit, besteht darin, über sog. TTL-to-USB-Adapter eine serielle Verbinduing über USB herzustellen.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Meines Wissens nach nicht, nein.

    Man kann zwar mithilfe von "device tree overlays" uart1 einschaltet, aber nur GPIO 14/15, 32/33 oder 40/41 verwenden. Die letzten beiden sind nicht über die P1 Leiste abgreifbar und ehrlich gesagt grad auch keine Ahnung wo die sich befinden...
    Quelle: https://github.com/raspberrypi/fi…ays/README#L724
    Du kannst ja mal ausprobieren ob UART1 nicht doch auf anderen Pins funktioniert und dann bitte berichten ;)

  • Hallo Andreas und meigrafd,

    danke euch für eure Antworten.
    Andreas
    Mir geht es nicht darum die Schnittstelle nur einfach auf andere Pins zu legen, sondern eine zweite Schnittstelle zu initialisieren.
    Anfänger bin ich auch nicht mehr umbedingt also würde mir auch ein Kernel kompilieren nicht wirklich etwas ausmachen ;)

    @meigfrafd
    die Device Tree overlays könnten mich hier schon weiter bringen. Hab mich mit den Overlays noch nicht beschäftigt, schaue ich mir aber gleich mal genauer an.
    Danke dir für den Tip :)

  • Moin,
    das kannst Du Dir imho schenken ... der Pi hat afaik nur einen UART ...
    Wenn Du Dir mal die ALT-Funktionen der GPIOs anschaust wirst Du einen zweiten finden - meint man. Letzlich ist das aber wieder original der erste.
    Auch in den techn. Beschreibungen ( z.B. -> hier <- ) ist immer nur die Rede von einem UART.

    Am sichersten würdest Du imho mit einem, wie von Andreas vorgeschlagenen, USB<->rs232 adapter.

    cu,
    -ds-

  • Auf Pin 32/33 liegt noch ein TX1, welcher jedoch leider nur auf dem Compute Model verfügbar ist :(
    Nachdem mit Bitbanging nicht viel bringt wenn ich auf dem zweiten eine Console haben will, muss ich mir wohl doch was anderes überlegen.

    USB Währe schon eine Möglichkeit, ich weiß jedoch noch nicht wie Linux darauf reagiert wenn der USB nicht eingesteckt ist. Der Sollte eigentlich nur bei Bedarf angesteckt werden und dann, nach Möglichkeit, im laufenden Betrieb.

    Hat das schon mal jemand von euch versucht?

  • Tja,


    Auf Pin 32/33 liegt noch ein TX1 ...


    beim RPi ist dieser UART1_TX und UART1_RX eben auch auf Pin #8 und #10 (UART1_CTS usw. ditto) ... irgendwie sinnlos, wie ich finde.


    Hat das schon mal jemand von euch versucht?


    Die funktionieren recht gut. Wenn nix drin steckt passiert auch nix. Auch mit "Hotplug" hatte ich bisher keine Probleme. Du bekommst halt dann, je nach Chip, z.B. ein /dev/ttyUSB0 ...
    btw: angeregt durch einen Beitrag von meigrafd habe ich mir seinerzeit noch ein Adapter-Kabel mit einem PL2303 (so was wie z.B. -> der hier <-) zugelegt. Ist genial, der arbeitet mit 3V3 Pegeln (Achtung! Die Spannung - sw/rt - ist trotzdem 5V!)
    cu,
    -ds-

  • Habe jetzt mal zwei FTDI zusammen geklemmt und einen in den Raspi und einen in mein Notebook gesteckt.
    Die Console sollte ja nun eigentlich über systemctl enable serial-getty@ttyUSB0.service auf dem FTDI gestartet werden wenn ich mich nicht täusche.
    Hier bekomme ich aber nichts rein.
    inittab gibts ja nun nicht mehr...

    PS:
    ein echo "Test" > /dev/ttyUSB0 bringt mir eine Ausgabe auf dem Rechner. Jedoch mit der falschen Baud.

    Einmal editiert, zuletzt von McUles (24. Februar 2016 um 00:50)

  • Hm ... zur Einstellung der Baudrate mit systemctl kann ich leider nix sagen ... das hab' ich bisher auch noch nie benötigt.
    Klar ... FTDI sollte genau so gehen - ist ja auch nur ne serielle Verbindung :)

    Na, Du wirst das schon hinkriegen, da bin ich mir sicher.
    cu,
    -ds-

  • Hmm, warum auch immer, nach einer Weile gehts jetzt einfach -.-

    Lösung ist nun auf jeden Fall zwei FTDI Adapter zusammen gelötet und auf dem Pi:
    systemctl enable serial-getty@ttyUSB0.service

    Dann kann man per USB auf die Serielle Console zugreifen.
    Das macht die Sache für mich sogar noch einfacher da ich keine Aussparung für einen D-Sub schneiden muss ;)

    Danke euch allen und gute Nacht :)

Jetzt mitmachen!

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