Raspberry Pi und serielle Schnittstelle


Ein nettes Spielzeug so ein kleiner Raspberry Pi. Um seinen Funktionsumfang noch um eine RS232 Schnittstelle zu erweitern, wird alles notwendige hier beschrieben:

 

Nötige Hardware

Ohne spezielle Hardware geht nichts, dazu holt man sich am einfachsten z. B. sowas: http://www.amazon.de/Erweiterungsplatine-Raspberry-Board-1RS232-Standard/dp/B00CBDQ9L8

 

Serielle Schnittstelle ermitteln

Zunächst schaut man, welche seriellen Schnittstellen vorhanden sind:

dmesg | grep  tty

 

ergibt z. B.:

[    0.000000] console [tty1] enabled

[    0.584102] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3

 

Der tty1 und ttyAMA0 sind also vorhanden, wobei der ttyAMA0 interessant ist. Wer nähere Infos dazu sucht, wird hier ab Seite 164 fündig: http://www.amazon.de/dp/1430249714.

 

Zugriffsrechte auf die Schnittstelle abklären

Zur Sicherheit kann man nun noch überprüfen, ob man als aktueller Benutzer auch die passenden Rechte zur Benutzung der seriellen Ports hat:

ls  -l  /dev/ttyAMA0

 

was zur Ausgabe haben sollte:

crw-rw—T 1 root dialout 204, 64 Aug  2 15:50 /dev/ttyAMA0

 

Es hat also die Gruppe dialout Schreib-/Leserechte. Mittels

groups $USER

 

bekommt man die Ausgabe:

pi : pi adm dialout cdrom sudo audio video plugdev games users netdev input indiecity

 

Welches Bedeutet, dass der aktuelle Benutzer, also pi in der Gruppe dialout enthalten ist. Falls er fehlen sollte, kann man ihn mittels

sudo adduser $USER dialout

 

hinzufügen.

 

Umwidmung der seriellen Schnittstelle für externen Gebrauch
Die Schnittstelle ttyAMA0 findet man wieder in der Datei /boot/cmdline.txt. Dort muss man den Kerneldebugger und Konsolenausgabe deaktivieren. Dazu führt man diese Befehle aus:

sudo cp /boot/cmdline.txt /boot/cmdline.txt.bak

sudo nano /boot/cmdline.txt

 

Dort dann

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

 

entfernen und speichern. Da man sich auch per serieller Konsole am Raspberry anmelden kann, muss noch der entsprechende Dienst abgeschaltet werden. Dazu muss die Datei /etc/inittab bearbeitet werden.

sudo cp /etc/inittab /etc/inittab.bak

sudo nano /etc/inittab

 

Nach dem Speichern muss der Pi neu gestartet werden, mittels

sudo shutdown -r now

 

Terminalprogramm zum Testen

Jetzt wird noch ein Terminalprogramm benötigt, minicom ist sehr beliebt:

sudo apt-get install minicom

 

Nun muss nur noch das Terminal gestartet werden:

minicom -b 115200 -o -D /dev/ttyAMA0

 

Nun steht der Kommunikation nichts im Wege.

 

Auf der anderen Seite der seriellen Leitung,  nimmt man am einfachsten putty, welches man vielleicht sowieso schon für die SSH-Einwahl zum Pi benutzt.

 

Weitere Quelle: http://www.irrational.net/2012/04/19/using-the-raspberry-pis-serial-port/

3 Antworten to “Raspberry Pi und serielle Schnittstelle”

  1. pmac Says:

    Ls geht bei mir nicht und auch das Verzeichnis boot existiert nicht, wenn ich ls mache … Habe ich grundsätzlich etwas falsch verstanden? Wenn ja, was?

  2. hansi Says:

    Ls => ls

    • newyear2006 Says:

      Danke für den Hinweis, ist gefixt. Raspbian ist halt kein Windows🙂

      Ich hoffe es hat die Formatierung jetzt nicht völlig zerhauen oder schlimmer noch, etwas anderes zerstört. WordPress ist echt grausam.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: