Différences entre versions de « I2C-Hacking-Reset »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :
 
{{bloc-etroit|text=Sur un bus I2C, chaque périphérique doit avoir sa propre adresse, adresse qui doit être unique sur le bus.
 
{{bloc-etroit|text=Sur un bus I2C, chaque périphérique doit avoir sa propre adresse, adresse qui doit être unique sur le bus.
  
A cette fin, la plupart des breakouts dispose de cavalier (pastilles) d'adressage matériel.
+
A cette fin, la plupart des breakouts dispose de cavalier (pastilles) d'adressage matériel.}}
  
 
[[Fichier:ADF-LED-BACKPACK-ARD-01.jpg|300px]]<br />  
 
[[Fichier:ADF-LED-BACKPACK-ARD-01.jpg|300px]]<br />  
Ligne 11 : Ligne 11 :
 
En pontant certains de ces contacts, il est donc possible de modifier l'adresse du composant sur le bus... génial si nous voulons en placer plusieurs :-). Il suffit qu'il aient chacun une adresse différente.
 
En pontant certains de ces contacts, il est donc possible de modifier l'adresse du composant sur le bus... génial si nous voulons en placer plusieurs :-). Il suffit qu'il aient chacun une adresse différente.
  
Mais parfois, certains composants ne disposent pas de configuration d'adresse matériel... Arghh!!!
+
Mais parfois, '''certains composants ne disposent pas de cavalier pour configurer d'adresse matériel'''... Arghh!!!
  
 
C'est la cas du BMP085 ci-dessous (que nous utiliserons en exemple)  
 
C'est la cas du BMP085 ci-dessous (que nous utiliserons en exemple)  
Ligne 25 : Ligne 25 :
 
Dans le cas du BMP085, vous ne pouvez donc avoir qu'un seule périphérique à l'adresse 0x77 (etc.).
 
Dans le cas du BMP085, vous ne pouvez donc avoir qu'un seule périphérique à l'adresse 0x77 (etc.).
  
Mais si vous prêtez attention à l'image... vous noterez une entrée nommée XCLR.
+
Mais si vous prêtez attention à l'image... vous noterez une entrée nommée XCLR... qui n'est autre qu'une ligne '''RESET'''.
  
{{traduction}}
+
[[Fichier:I2C_Hack_BMP085.jpg|300px]]
 +
 
 +
Une ligne '''RESET''' réinitialise un composant... mais a ceci de particulier que le composant reste '''inactif''' aussi longtemps que le signal RESET est actif.
 +
 
 +
C'est un peu comme un Taser... le malheureux que vous avez visé ne bougera pas d'un poil (ni même prononcer un mot) aussi longtemps que vous pressez sur le bouton du Taser. C'est pareil pour le RESET... aussi longtemps qu'il sera actif, le composant sera ''Tasé'' et incapable de répondre! Quelle aubaine :-)
 +
 
 +
== Technique de la ligne Reset avec I2C ==
 +
Vous l'aurez compris... il faudra que votre composant I2C dispose d'une ligne Reset. Sachez que ce n'est pas toujours le cas!
  
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 :-/
+
Du coup, il est donc possible de mettre plusieurs BMP085 sur un même BUS I2C... puisque le BMP085 dispose d'une ligne Reset (sous le nom de broche ''XCLR'').
  
=== 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.
 
'''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}}

Version actuelle datée du 17 avril 2014 à 21:29


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.

Introduction

Sur un bus I2C, chaque périphérique doit avoir sa propre adresse, adresse qui doit être unique sur le bus.

A cette fin, la plupart des breakouts dispose de cavalier (pastilles) d'adressage matériel.

ADF-LED-BACKPACK-ARD-01.jpg
L'exemple issus des contrôleurs LED d'AdaFruit et présentant les "jumpers" A0, A1 et A2 permettant de modifier l'adresse de l'esclave.

En pontant certains de ces contacts, il est donc possible de modifier l'adresse du composant sur le bus... génial si nous voulons en placer plusieurs :-). Il suffit qu'il aient chacun une adresse différente.

Mais parfois, certains composants ne disposent pas de cavalier pour configurer d'adresse matériel... Arghh!!!

C'est la cas du BMP085 ci-dessous (que nous utiliserons en exemple)

I2C Hack BMP085.jpg

Comme vous pouvez le voir, ce dernier n'a pas de cavalier d'adressage matériel (ni derrière).

Du coup, il est uniquement possible de placer UN SEUL composant BMP085 sur le bus I2C. Si vous en placions 2, ils répondraient tous les deux en même temps et la réponse ne pourrait pas être décodée par le maître (gloups!)

La ligne Reset

Dans le cas du BMP085, vous ne pouvez donc avoir qu'un seule périphérique à l'adresse 0x77 (etc.).

Mais si vous prêtez attention à l'image... vous noterez une entrée nommée XCLR... qui n'est autre qu'une ligne RESET.

I2C Hack BMP085.jpg

Une ligne RESET réinitialise un composant... mais a ceci de particulier que le composant reste inactif aussi longtemps que le signal RESET est actif.

C'est un peu comme un Taser... le malheureux que vous avez visé ne bougera pas d'un poil (ni même prononcer un mot) aussi longtemps que vous pressez sur le bouton du Taser. C'est pareil pour le RESET... aussi longtemps qu'il sera actif, le composant sera Tasé et incapable de répondre! Quelle aubaine :-)

Technique de la ligne Reset avec I2C

Vous l'aurez compris... il faudra que votre composant I2C dispose d'une ligne Reset. Sachez que ce n'est pas toujours le cas!

Du coup, il est donc possible de mettre plusieurs BMP085 sur un même BUS I2C... puisque le BMP085 dispose d'une ligne Reset (sous le nom de broche XCLR).

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.


Réalisé par Meurisse D. pour MCHobby.be.

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.