Antworten:
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:
/etc/modprobe.d/raspi-blacklist.conf
und kommentieren Sie den Eintrag für i2c-bcm2708
; dann editieren /etc/modules
und anhängen i2c-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
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 und i2c-dev
zur Erzeugung des Charakters für die Busse. Sich bewerben ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
zum Laden im laufenden Betrieb. Sich bewerben ...
sudo sh -c 'echo "i2c-dev" >> /etc/modules'
sudo sh -c 'echo "options i2c_bcm2708 baudrate=<your preferred baudrate>\n" > /etc/modprobe.d/custom.conf
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