Ligne 2 : |
Ligne 2 : |
| | | |
| == Introduction == | | == Introduction == |
− | {{bloc-etroit|text=Si vous avez eu l'occasion de lire nos autre tutoriel I2C pour '''Arduino''' et '''Raspberry''', vous vous êtes certainement rendu compte que vous êtes face à une technologie à la fois simple et puissante. | + | {{bloc-etroit|text=Si vous avez eu l'occasion de lire nos autres tutoriels I2C pour '''Arduino''' et '''Raspberry''', vous vous êtes certainement rendu compte que vous êtes face à une technologie à la fois simple et puissante. |
| | | |
− | Comme toutes les technologies, il y a parfois quelques limites qui sont, de temps à autre, contournable. | + | Comme toutes les technologies, il y a parfois quelques limites technique qui peuvent, de temps à autre, être contournées. |
| | | |
− | Le but de cet article est d'en rassembler quelques hacks assez simple mais terriblement efficaces :-) | + | Le but de cet article est de rassembler quelques hacks assez simple mais terriblement efficaces :-) |
| | | |
− | Ces hacks sont très facile à mettre en oeuvre avec Arduino... peut être un peu mois aisé a faire fonctionner avec Raspberry (dans le cas du Pi, c'est l'OS qui décide quand il faut communiquer sur le BUS I2C... pas votre code).}} | + | Ces hacks sont très facile à mettre en oeuvre avec Arduino... peut être un peu moins aisé a faire fonctionner avec Raspberry car, pour ce dernier, c'est l'OS qui décide quand il faut communiquer sur le BUS I2C... pas votre code).}} |
| | | |
| == En savoir plus sur I2C == | | == En savoir plus sur I2C == |
Ligne 15 : |
Ligne 15 : |
| Nous vous proposons les lectures suivantes... n'hésitez pas à consulter la liste de nos [[Accueil|'''tutoriels pour Arduino''']] et [[RaspberryPi-Accueil|'''tutoriels pour Raspberry-Pi''']] }} | | Nous vous proposons les lectures suivantes... n'hésitez pas à consulter la liste de nos [[Accueil|'''tutoriels pour Arduino''']] et [[RaspberryPi-Accueil|'''tutoriels pour Raspberry-Pi''']] }} |
| | | |
− | {{ambox|text=A remplir pour Arduino et pour Pi}} | + | {{ttuto-begin}} |
| | | |
− | == Le cas du BMP085 == | + | {{ttuto |
− | {{ambox|text=A mettre dans un article différent}}
| + | |label=Introduction à I2C |
| + | |descr=Qu'est ce que I2C, sa mise en oeuvre sur Arduino, code source, etc |
| + | |img=tlogo-I2C.jpg |
| + | |link=Arduino I2C Intro |
| + | }} |
| | | |
− | Sur un bus I2C, chaque périphérique doit avoir sa propre adresse, adresse qui doit être unique sur le bus.
| + | {{ttuto |
| + | |label=I2C Bus Extender |
| + | |descr=Comment étendre un bus I2C jusqu'à 25m! Sa mise en oeuvre avec un '''P82B715PN''' sur Arduino, code source, etc |
| + | |img=tlogo-P82B715PN.jpg |
| + | |link=P82B715PN: I2C Bus Extender |
| + | }} |
| | | |
− | Dans le cas du BMP, vous ne pouvez donc avoir qu'un seule périphérique à l'adresse 0x77 (etc.). Comme ce composant ne dispose pas de broches permettant de modifier son adresse, il ne peut normalement y avoir qu'un seul BMP sur le bus I2C :-/
| + | {{ttuto |
| + | |label=SjtBits I2C Extender |
| + | |descr=Comment étendre un bus I2C avec une ligne différentielle! Sa mise en oeuvre avec un '''I2C Extender de SJTBits''' |
| + | |img=tlogo-JSTBITS-I2C.jpg |
| + | |link=SjtBits I2C Bus Extender |
| + | }} |
| + | |
| + | {{ttuto |
| + | |label=ArduPi-I2C |
| + | |descr=<strong>Raspberry-Pi et Arduino qui communiquent via le bus I2C</strong>... de la dynamite! |
| + | |img=tlogo-ArduPi-I2C.jpg |
| + | |link=ArduPi-I2C |
| + | }} |
| + | |
| + | {{ttuto-end}} |
| + | |
| + | == Ressources == |
| + | Voici quelques références glanées ici et là sur le Net. |
| + | |
| + | * [http://letsmakerobots.com/blog/unixguru/running-both-5v-and-33v-devices-i2c Running 3.3v and 5v I2C peripherals on the same I2C bus] (''letsmakerobots.com, anglais'') |
| + | * [http://www.gammon.com.au/i2c I2C - Two-Wire Peripheral Interface - for Arduino] ('''http://www.gammon.com.au, anglais''') |
| + | ** Une '''ressource chaudement recommandée''' avec des recherches détaillées sur les signaux, ACK et NAK |
| + | ** Etude sur les résistances pull-up présentes sur le bus (voir plus bas dans les messages) |
| + | ** Utilisation d'une EEProm I2C |
| + | ** I2C Scanner pour Arduino (en fin de billet). |
| + | * [http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/i2c-bus/frequently-asked-questions/i2c-faq.html IC2 FAQ] (''esacademy.com, anglais'')<br />Propose des réponses aussi intéressantes que: |
| + | ** I'd like to extend the I2C bus. Is there something like a repeater for I2C?+** |
| + | ** Can I do galvanic decoupling of my I2C bus? |
| + | ** Are there stand-alone I2C controllers? |
| + | ** How can I generate a repeated start condition? |
| + | ** Can I abort an ongoing I2C bus transmission? |
| + | ** Do I need to generate an ACK in read mode on the last byte? |
| + | ** How can I monitor the I2C bus? |
| + | ** ... |
| | | |
− | === Le BMP085 ===
| |
− | '''SAUF QUE''' le BMP085 dispose aussi d'une broche RESET qui permet de le désactive! En fin de compte, il est possible d'avoir plusieurs BMP à l'adresse 0x77 sur le même bus I2C. Il faut seulement veiller à activer le RESET (broche XCLR=Reset à LOW) pour tous les périphériques BMP à l'exception de celui avec lequel nous voulons dialoguer (broches XCLR = HIGH pour désactiver le Reset). Le périphérique I2C qui ne sera pas en Reset répondra sur le bus I2C.
| |
| | | |
| {{I2C-Hacking-TRAILER}} | | {{I2C-Hacking-TRAILER}} |