Rasp-Hack-GPIO Configurer I2C

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

I2C is a very commonly used standard designed to allow one chip to talk to another. So, since the Raspberry Pi can talk I2C we can connect it to a variety of I2C capable chips and modules.

Voici quelques projets et produits qui utilisent des modules et composants I2C:

The I2C bus allows multiple devices to be connected to your Raspberry Pi, each with a unique address, that can often be set by changing jumper settings on the module. It is very useful to be able to see which devices are connected to your Pi as a way of making sure everything is working.

To do this, it is worth running the following commands in the Terminal to install the i2c-tools utility.

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

Installer le support noyau (avec Raspi-Config)

Run sudo raspi-config and follow the prompts to install i2c support for the ARM core and linux kernel

Go to Interfacing Options (Options d'interface):

Rasp-Hack-GPIO-Config-I2C-10.png

On older versions, look under Advanced (Options avancées)

Rasp-Hack-GPIO-Config-I2C-11.png

puis I2C

Rasp-Hack-GPIO-Config-I2C-12.png

Et activez le bus I2C (en répondant Yes / Oui).

Rasp-Hack-GPIO-Config-I2C-13.png

Rasp-Hack-GPIO-Config-I2C-14.png

Then reboot!

Installer le support noyau (à la main)

If you're not using a modern Raspbian or you want to do it by hand, you can! Open LXTerminal or console or ssh and enter the following command:

sudo nano /etc/modules

and add these two lines to the end of the file:

i2c-bcm2708 
i2c-dev

Ce qui ressemble à ceci :

Rasp-Hack-GPIO-Config-I2C-20.png

Then save the file with Control-X Y <return>

Depending on your distribution, you may also have a file called /etc/modprobe.d/raspi-blacklist.conf

If you do not have this file then there is nothing to do, however, if you do have this file, you need to edit it and comment out the lines below:

blacklist spi-bcm2708
blacklist i2c-bcm2708

.. by putting a # in front of them.

Open an editor on the file by typing:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

.. then edit the file so that it appears as below, and then save and exit the file using CTRL-x and Y.

Rasp-Hack-GPIO-Config-I2C-21.png

If you are running a recent Raspberry Pi (3.18 kernel or higher) you will also need to update the /boot/config.txt file. Edit it with sudo nano /boot/config.txt and add the text

dtparam=i2c1=on
dtparam=i2c_arm=on

at the bottom. note that the "1" in "i2c1" is a one not an L!

Rasp-Hack-GPIO-Config-I2C-22.png

Once this is all done, reboot!

sudo reboot


PREVIOUS CONTENT

Si vous utilisez Occidentalis, alors votre Pi est déjà prêt à supporter I2C (pour autant qu'il soit possible au programme d'accéder au broches matérielles).

Par contre, si vous utilisez Raspbian, vous aurez besoin d'ouvrir LX Terminal et d'encoder la commande suivante:

sudo nano /etc/modules

et d'ajouter les deux lignes suivantes à la fin du fichier

i2c-bcm2708 
i2c-dev

Rasp-Hack-GPIO-I2CConfig-1.png

Après la modification du fichier, vous devrez redémarrer (rebooter) votre Pi pour les modifications soient appliquées.

Si vous avez des problèmes I2C avec votre Raspbian, il est préférable de passer à la toute dernière version. Les instructions ci-présentes ont été testées sur une "release" datée du 28/10/2012.

Le bus I2C permet à plusieurs périphériques d'être connecté sur votre Raspberry Pi, chacun avec une adresse unique. Cette adresse unique peut souvent être modifiée sur le module à l'aide de cavalier (ou de pontage à souder pour réaliser des connexions).

Il est très utile de pouvoir visualiser les appareils qui sont connectés au Pi. C'est une façon bien pratique de s'assurer que tout fonctionne correctement.

Pour effectuer cette tâche il faut installer des utilitaires I2C, il est préférable d'utiliser la commande suivante dans un terminal poutr les installer

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Une fois qu'ils sont installer, vous pouvez taper la commande suivantes pour voir tous les périphériques connectés (si vous utilisez un Raspberry Pi Modèle B 512MB)

sudo i2cdetect -y 1

Rasp-Hack-GPIO-I2CConfig-2.png

Cela montre deux adresses I2C en cours d'utilisation – 0x40 et 0x70.

Notez que si vous utilisez l'un des tout premiers modèle de Raspberry Pi (Raspberry Pi Modèle B 256MB ) alors vous aurez besoin de changer la commande comme suit:

sudo i2cdetect -y 0

En effet, les concepteurs du Raspberry Pi on modifier le brochage du port I2C entre les deux "release" de Raspberry.

Pi B et Pi B+: la compatibilité du GPIO

Avec l'arrivée du Raspberry Pi 3, Raspberry Pi-2 et Raspberry Pi-B PLUS, Raspberry Pi Zero W vient également un GPIO étendu de 40 broches rétro-compatible avec le GPIO des premières générations du Raspberry-Pi qui, lui, n'avait que 26 broches.

GPIO-Compatibility-00v3.jpg

La seule vraie différence réside dans la longueur du GPIO du modèle Pi-3, Pi-2 ou B+ qui contient des broches en plus... et le Pi-Cobbler PLUS qui à également grandi pour accueillir les broches en plus.

Avec l'apparition du Pi Zero, nous pouvons reparler de la correspondance des GPIO.

Pour notre plus grand bonheur, le GPIO du Pi Zero et du Pi 3 (ou Pi 2) sont identiques :) chouette.

RASP-PIZERO-Correspondance-GPIO v2.jpg
Cliquez pour agrandir


Brochage

Voici le nom des broches du bus I2C matériel et leurs positions sur le GPIO.

Les 26 premières broches étant identiques entre le modèle Pi B et Pi B+, le schéma ci-dessous s'applique donc aussi à votre Pi PLUS :-).

RaspberryPi-GPIO-SPI.png

Elles sont:

  • SDA - Broche 3 - GPIO #0 (Ligne de donnée du Bus I2C, ligne dite DATA)
  • SCL - Broche 4 - GPIO #1 (Ligne du signal d'horloge du BUS I2C, ligne dite CLOCK et son diminutif CL ou CLK)

Source: GPIO Setup, créé par Simon Monk pour AdaFruit Industries.

Traduit et augmenté par Meurisse D. pour MCHobby.be, également basé sur des informations provenant du GitHub RaspberryPi

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.