Wie kann ich über die I²C-Schnittstelle mit digitalen Sensoren sprechen?
Hardware:
Welche Pins auf dem Raspberry Pi GPIO kann ich verwenden?
Software:
Welche I²C-Bibliotheken gibt es?
Hier finden Sie viele Informationen zum GPIO von RPi: http://elinux.org/Rpi_Low-level_peripherals
Demnach können Sie beliebige GPIO-Pins für I²C programmieren, aber:
Pin 3 (SDA0) und Pin 5 (SCL0) sind als I²C-Schnittstelle voreingestellt. Für diese Pins befinden sich 1,8 Kiloohm Pull-Up-Widerstände auf der Platine.
Diese Wiki-Seite enthält auch einige GPIO-Codebeispiele auf niedriger Ebene für verschiedene Sprachen, die Ihnen den Einstieg erleichtern sollen. Wenn Sie eine Auffrischung darüber benötigen, was I²C tatsächlich ist, finden Sie hier eine, die auch das RPi berücksichtigt.
Für ein spezifisches I²C-Controlling kann diese Python-Bibliothek hilfreich sein. Sie wird in diesem Blog-Beitrag erläutert , der ein Codebeispiel enthält.
Darüber wird viel diskutiert. Folgendes zeigt mir mein Lesen und Herumspielen:
quelle
/etc/modprobe.d/raspi-blacklist.conf
und kommentieren Sie den Eintrag füri2c-bcm2708
; dann editieren/etc/modules
und anhängeni2c-dev
; dann neu starten. Sie sollten jetzt eine/dev/i2c-0
spezielle Datei haben, die sehr einfach zu bedienen ist.Hier sind einige Beispiele, die ich gemacht habe
quelle
Hardware:
Wie von Tapio erwähnt, ist die Hardware unter http://elinux.org/Rpi_Low-level_peripherals gut dokumentiert
Software:
Es gibt einen i2c-dev-Header im Linux-Userspace (
#include <linux/i2c-dev.h>
). Außerdem brauchst du einen Charakter, aus dem du lesen kannst. Dies kann durch Laden der richtigen Module erfolgen.i2c_bcm2708
für den Low-Level-Fahrer undi2c-dev
zur Erzeugung des Charakters für die Busse. Sich bewerben ...zum Laden im laufenden Betrieb. Sich bewerben ...
und Unblacklist
i2c_bcm2708
in/etc/modprobe.d/raspi-blacklist.conf
zu machen/dev/i2c-0
und/dev/i2c-1
dauerhaft auftauchen.Ab sofort können Sie den Hinweisen zur Verwendung von I²C del maestro selbst folgen .
Ich bevorzuge diese Methode gegenüber anderen, weil sie plattformunabhängig ist. Sie können es auch
linux/i2c-dev.h
mit anderen Geräten verwenden, sofern ein niedriger I²C-Treiber vorhanden ist.Grüße
quelle