Raspberry Pi I2C aktivieren

In diesem Tutorial zeige ich euch wie man am Raspberry Pi I2C aktivieren kann. Ich habe bereits sehr viel mit der GPIO Schnittstelle gearbeitet, jedoch hatte ich bis jetzt noch keinen Sensor, der über I2C angesteuert wird. Das ist nun endlich anders und deshalb habe ich hier übersichtlich zusammengefasst was man alles machen und kontrollieren muss bevor man mit dem angeschlossenen Sensor arbeiten kann.

Raspberry Pi I2C aktivieren

Ich habe die Aktivierung des I2C Bus in 3 Abschnitte geteilt. Wer alle Schritte genau befolgt hat am Ende eine korrekt funktionierende I2C Schnittstelle und kann damit Sensoren und Geräte die auf der GPIO Schnittstelle hängen verwenden.

Kernel Support aktivieren

unter dem Punkt „Advanced Options“ findet man eine Liste mit allen zusätzlichen Funktionen die man über das Konfigurationsprogramm bearbeiten kann. Darunter auch die I2C Schnittstelle:

I2C raspi-config

Man wird nun gefragt ob man das ARM I2C Interface aktivieren möchte, man bestätigt mit „JA„, in der folge wird man dann noch gefragt, ob man will, dass die I2C Kernel Module automatisch geladen werden – wieder bestätigen wir mit „JA

Raspberry Pi I2C aktivieren

Nach erfolgreicher Einstellung startet man den Raspberry Pi neu.

Kontrolle

Die I2C Schnittstelle sollte nun schon funktionieren, jedoch kann es aus den unterschiedlichsten Gründen dazu kommen, dass es nicht so ist. Kontrolle ist wie immer besser, deshalb zeige ich euch wie man die I2C Kernel Support manuell aktiviert. Sollten Einstellungen bei euch fehlen, einfach laut dieser Anleitung hinzufügen.

Die Datei /etc/modules legt fest welche Kernel Module beim Systemstart automatisch geladen werden. Aus diesem Grund finden wir dort auch Einträge für die I2C Schnittstelle:

I2C Kernel ModuleSollten die beiden Zeilen mit i2c fehlen, dann sind diese manuell zu ergänzen. Die Datei wird mit STRG+X und dann mit J für ja gespeichert. Sollte das nicht funktionieren hat man die Datei nicht mit root Rechten geöffnet!

Mit modprobe können Module wärend des Betriebs ge- oder entladen werden. In der Datei /etc/modprobe.d/raspi-blacklist.conf sollten deshalb keine Einträge für i2c zu finden sein. Ist das doch der Fall, dann bitte entfernen:

I2C ModprobeZuletzt müssen wir uns noch die Datei /boot/config.txt ansehen in der Parameter festgelegt sind die wärend des Bootvorgangsbenötigt werden. Die meisten Parameter die man in dieser Datei findet werden über das raspi-config Programm festgelegt.

i2c boot config txt

Am Ende der Datei sollte man folgende Einträge finden:

  • dtparam=i2c1=on
  • dtparam=i2c_arm=on

Falls nicht sollte man diese Zeilen hinzufügen.

Wenn man nun manuell irgend eine Einstellung ändern musste, dann sollte das System nun neu gestartet werden:

Test

Nun wird es Zeit die I2C Schnittstelle zu testen. Informationen über angeschlossene Geräte oder Sensoren bekommt man mit dem i2cdetect Kommando. Das Programm scannt den I2C Bus nach angeschlossenen Geräten und zeigt gibt die Information darüber in einer Tabelle aus:

i2c i2cdetect

In meinem Fall ist der BMP085 Luftdrucksensor angeschlossen. Dieser wird auch erkannt und mit der Nummer 77 in der Tabelle ausgegeben. Je nach Typ das angeschlossenen I2C fähigen Sensors oder Geräts sieht diese Ausgabe anders aus. Wird kein Gerät erkannt, dann ist die Tabelle leer, alle Einträge sind mit „–“ gekennzeichnet.

Aufgerufen wird i2cdetect mit folgendem Kommando:

Je nach Version des Betriebssystems muss der Parameter 0 mit 1 ersetzt werden. In meinem Fall gab 0 die Fehlermeldung:
Error: Could not open file ‚/dev/i2c-0‘ or ‚/dev/i2c/0‘: No such file or directory

Es gibt auch den Fall, dass das Programm i2cdetect gar nicht installiert ist und man mit der Fehlermeldung:

das ist kein Problem, das Programm kann wie folgt nachinstalliert werden:

Fazit

Will man am Raspberry Pi I2C aktivieren, dann muss man dieses entweder automatisch über raspi-config machen oder manuell. Ob die Aktivierung geklappt hat kann man mit dem Programm i2cdetect prüfen, welches auch verwendet wird um angeschlossene i2c Geräte am Bus zu finden.

(Visited 11.292 times, 2 visits today)

Das könnte auch interessant sein...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.