Réponses:
Il y a beaucoup d'informations sur le GPIO de RPi ici: http://elinux.org/Rpi_Low-level_peripherals
Selon lui, vous pouvez programmer toutes les broches GPIO pour I²C, mais:
La broche 3 (SDA0) et la broche 5 (SCL0) sont préréglées pour être utilisées comme interface I²C. Il y a donc 1,8 kilohm tire des résistances sur la carte pour ces broches.
Cette page wiki contient également des exemples de code GPIO de bas niveau pour différentes langues qui devraient vous aider à démarrer. Si vous avez besoin d'un rappel sur ce qu'est réellement I²C, en voici un qui prend également en compte le RPi.
Pour un contrôle I²C spécifique, cette bibliothèque python peut être utile, elle est discutée dans cet article de blog , qui comprend un exemple de code.
Beaucoup de discussions en cours à ce sujet. Voici ce que ma lecture et mes plaisanteries me montrent:
/etc/modprobe.d/raspi-blacklist.conf
et commentez l'entrée pour i2c-bcm2708
; puis éditez /etc/modules
et ajoutez i2c-dev
; puis redémarrez. Vous devriez maintenant avoir un /dev/i2c-0
fichier spécial, très facile à utiliser.
Voici quelques exemples que j'ai faits
Matériel:
Comme mentionné par Tapio, le matériel est bien documenté sur http://elinux.org/Rpi_Low-level_peripherals
Logiciel:
Il y a un en-tête i2c-dev dans l'espace utilisateur Linux ( #include <linux/i2c-dev.h>
). De plus, vous avez besoin d'un caractère pour lire. Cela peut être fait en chargeant les modules appropriés. i2c_bcm2708
pour le pilote de bas niveau et i2c-dev
pour générer les décives de caractères pour les bus. Appliquer ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
pour les charger à la volée. Appliquer ...
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
et retirer de la liste i2c_bcm2708
en /etc/modprobe.d/raspi-blacklist.conf
pour faire /dev/i2c-0
et /dev/i2c-1
montrer en permanence.
Vous pouvez désormais suivre les conseils d'utilisation de I²C del maestro lui-même.
Je préfère cette méthode aux autres, car elle est plateformeagnostique. Vous pouvez également l'utiliser linux/i2c-dev.h
avec d'autres appareils, tant qu'il existe un pilote I²C de bas niveau.
Cordialement