[$nb]

[+]readme.txt [+]sys.log

mit schnittstellen sprechen (usb -- ttl)

Es gibt verschiedene Gründe warum man mit seriellen Schnittstellen reden möchte.

Eine serielle Console ermöglicht bspw. das konfigurieren des RaspberryPi ohne ihn an ein Display oder ans Netzwerk anschließen zu müssen oder man halt alte Hardware wie Router und ähnliches zu Hause rumliegen und möchte wissen was da drinnen vor sich geht. Mit ein wenig Glück gibt es eine versteckte serielle Schnittstelle die eigentlich nicht dafür gedacht ist sie als "Normal User" zu benutzen.

Eins vorweg, das öffnen und modifizieren von Geräten lässt euch mit ziemlicher Sicherheit die Garantie verlieren, sollte noch eine auf dem Gerät sein. Das andere macht das nur bei Geräten die euch gehören. Wer Sachen aufschraubt die ihm nicht gehören und zu Kasse gebeten wird soll nicht behaupten ich hätte nichts gesagt.

Was brauchen wir also um loszulegen?

Als erstes einen USB <-> TTL Adapter



Den Adapter (s. Bild) gibt es von 3,00€ - 30,00€ im Netz. Er hat in diesem fall einen USB-2.0-Typ-A Stecker der in den Rechner kommt und 6 Pins die mit unserer seriellen Schnittstelle verkabelt werden. Zum verkabeln sind Jumper-Cables zu empfehlen, die lassen sich einfach auf die Pins des Adapters stecken und auf eventuell vorhandene Pins an der Schnittstelle. Sollten an der Schnittstelle keine Pins vorhanden sein sondern nur Lötpunkte könnt ihr die Jumper-cables einfach kürzen und auflöten. Jumper-Cables gibt es in verschiedenen Farben und die sollte man auch nutzen um den Überblick nicht zu verlieren.

jumper_cable

Was es noch braucht ist natürlich ein Gerät mit einer seriellen Schnittstelle. Die meisten Router haben eine, aber genau so auch andere Geräte auf denen irgendein OS (meist Linux) läuft. Wie erkennt man die Schnittstelle? Verdächtig sind hier zum Beispiel Lötpunkte die nicht benutzt werden. In manchen Fällen haben die Schnittstellen aber auch Pins wie unser Adapter. Das macht es natürlich deutlich einfacher da man hier die Jumper-Cables nur aufstecken muss anstatt sie ein zu löten.

serielle

Da ich hier momentan kein Gerät habe das ich zerlegen will bzw. kein Gerät mit Schnittstelle, können wir das ganz an einem Raspberry Pi ausprobieren. Die meisten sollten einen daheim rumliegen haben um damit zu experimentieren. Wir nehmen hier das Standart OS Raspian. Das sollte allerdings auch mit jedem anderem unterstützten OS funktionieren. Das OS schreiben wir wie beim Raspberry Pi üblich auf die SD Karte und schieben diese ein.

raspberry_pi

Jetzt müssen wir die Pins unseres Adapters mit den GPIO Pins des Raspberry verbinden. Dafür brauchen wir am Adapter und am Pi folgende 3 Pins:



Die GPIO Pin Belegung des Raspberry Pi findet ihr im Netz. Achtet dabei auf das Modell, da sich die Pinbelegung bei verschiedenen Modellen unterscheidet.

pi_ttl

Jetzt muss der Adapter nur noch an den Rechner. Welcher Rechner das ist, ist prinzipiell egal. Jedes OS kann grundsätzlich mit dem Raspberry Pi über die serielle Schnittstelle reden. Bei Windows braucht es das Tool PuTTy und unter Linux und macOS nehmen wir das Terminal Tool "screen" (ist bei Linux und macOS vorinstalliert).

Benutzt wird es wie folgt:

Linux / macOS

shell
screen -h


Doch bevor man mit "screen" arbeiten kann, brauchen wir die Hardwareadresse das Adapters.

macOS / Linux:

shell
ls -l /dev/tty.*


shell
crw-rw-rw- 1 root wheel 33, 2 3 Feb 06:59 /dev/tty.Bluetooth-Modem
crw-rw-rw- 1 root wheel 33, 0 3 Feb 06:59 /dev/tty.Bluetooth-PDA-Sync
crw-rw-rw- 1 root wheel 33, 8 3 Feb 11:28 /dev/tty.PL2303-00001004


Gehen wir davon aus, dass ein PL2303 Chipsatz von Prolific verbaut ist, dementsprechend ist die letztere, die Adresse die wir suchen. Nun können wir per screen die serielle Schnittstelle über den Adapter ansprechen und zwar mit folgendem Befehl:

shell
screen /dev/tty.PL2303-00001004 115200


115200 legt hier die Baudrate fest - sprich die Übertragungsgeschwindigkeit.

Jetzt noch Strom an den Raspberry Pi legen und schon solltet ihr im Terminal die Bootsequenz des Raspberry Pi sehen bzw. euch auf ihm einloggen können.

Das ist natürlich erstmal nur die Basis für viele Spielereien die mit der seriellen Schnittstelle möglich sind. Die Grenze ist nur die Fantasie und das vorhanden sein der Schnittstelle.

Viel Spaß beim ausprobieren.





//EOF