Modifications

Sauter à la navigation Sauter à la recherche
2 529 octets ajoutés ,  17 avril 2014 à 21:14
Ligne 12 : Ligne 12 :     
Le données circulent alors sur le 2ième bus... (le premier étant inactif)
 
Le données circulent alors sur le 2ième bus... (le premier étant inactif)
 +
 +
=== La mise en oeuvre ===
 +
Dans la réalité, nous n'allons pas nous amuser à retirer et rebrancher des fils... nous allons utiliser un composant qui fera cela à demande pour nous.
 +
 +
Nous pourrons ainsi contrôler ("aiguiller") les signaux I2C entre les différents sous Bus I2C que nous allons monter.
    
== Le 74HC138 ==
 
== Le 74HC138 ==
 +
Le 74HC138 est un décodeur qui accepte une adresse 3 bits (A0, A1 et A3) et qui active l'une des 8 sorties (Y0 à Y7) correspondante.
 +
 +
La sortie Y0 à Y7 activée passe à LOW... et toutes les sorties sont mutuellement exclusives. Vous ne risquez pas d'avoir deux sorties actives en même temps.
 +
 +
La sortie Y''x'' et activée uniquement si le module est est activé (ligne ''Enable''). Le 74HC138 dispose de 3 entrées d'activation ''enable''; deux d'entre-elles (E1 et E2) sont active à LOW et la troisième (E3) est active à HIGH.
 +
 +
Toutes les sorties sont maintenues à HIGH sauf si E1 & E2 sont à LOW ET E3 est à HIGH. Ces multiples lignes d'activation facilite beaucoup l'utilisation des 74HC138 en parallèle; de 1-à-32 (décodeur de 5 lignes à 32 lignes) avec 4 74HC138.
 +
 +
Une particularité de ce composant est qu'il est super rapide... une aubaine pour le transport de notre signal I2C.
    +
[[Fichier:74HC138-01.jpg|400px]] [[Fichier:74HC138-02.jpg|250px]]
 +
 +
[[Fichier:74HC138-03.jpg|650px]]
 +
* H: Niveau Haut
 +
* L: Niveau bas (0v)
 +
* X: Le niveau n'a aucune influence
 +
 +
[http://df.mchobby.be/datasheet/74HC_HCT138.pdf Fiche technique] (''NXP.com, pdf, anglais'')
    
== Montage ==
 
== Montage ==
Ligne 25 : Ligne 47 :  
Il est possible de reconstruire un tel tableau à l'aide d'{{sl|4x7|afficheur 4x7 segment I2C}}.  
 
Il est possible de reconstruire un tel tableau à l'aide d'{{sl|4x7|afficheur 4x7 segment I2C}}.  
   −
Le HIC, c'est qu'il n'y a pas assez d'adresses configurable sur l'afficheur (3bit = 9 adresses) disponible pour brancher TOUS les afficheurs nécessaire sur le bus I2C!
+
Le HIC, c'est qu'il n'y a pas assez d'adresses configurable sur l'afficheur (3bit = 8 adresses) disponible pour brancher TOUS les afficheurs nécessaires (9) sur le bus I2C!
    
{{ADFImage|I2C-Hacking-Bus-Multiple-01a.jpg|480px}}
 
{{ADFImage|I2C-Hacking-Bus-Multiple-01a.jpg|480px}}
Ligne 31 : Ligne 53 :  
Cependant, grâce au 74HC138, nous allons pouvoir réaliser un "aiguilleur" pour notre bus I2C.  
 
Cependant, grâce au 74HC138, nous allons pouvoir réaliser un "aiguilleur" pour notre bus I2C.  
   −
{{ADFImage|I2C-Hacking-Bus-Multiple-02.png|640px}}
+
{{ADFImage|I2C-Hacking-Bus-Multiple-02.jpg|640px}}
 +
 
 +
=== Principe de fonctionnement ===
 +
# La ligne de donnée SDA est distribuée sur toutes les lignes du bus I2C. Les différents composants I2C ne lirons les données qui passent que s'ils reçoivent un signal d'horloge I2C (SCL).
 +
# Le signal d'horloge est envoyé vers l'une ou l'autre des lignes des sous-bus I2C à l'aide du 74HC138.
 +
# Les broches "select" (A0 & A1) du 74HC138 sont commandées par Arduino... ce qui permet de sélectionner l'une des 3 sorties Y0, Y1 ou Y3.
 +
# En passant le signal d'Horloge sur les broches E1 & E2 (''Enable inversé''), on active la sortie Y''x'' (elle aussi inversée).<br />Pour résumé... le signal SCL (d'horloge I2C) sera reproduit sur la ligne Y0 ou Y1 ou Y2 en fonction de l'adresse sélectionnée sur les lignes d'adresses A0 et A1.
 +
 
 +
Voila comment il est possible de dupliquer un bus I2C :-)
    +
=== Le projet Time Machine ===
 +
Vous pouvez consulter le [http://www.adafruit.com/blog/2012/07/02/great-scott-delorean-inspired-time-circuit-clock-with-adafruit-gear/ projet (code inclus) sur le blog d'AdaFruit].
    
{{I2C-Hacking-TRAILER}}
 
{{I2C-Hacking-TRAILER}}
29 917

modifications

Menu de navigation