Modifications

Sauter à la navigation Sauter à la recherche
4 274 octets ajoutés ,  16 janvier 2014 à 20:48
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{MCP23017-NAV}}
 
{{MCP23017-NAV}}
   −
{{traduction}}
+
== Introduction ==
 +
Ajoutez 16 broches à votre microcontroleur en utilisant une extension MCP23017 ("port extension" en anglais).
 +
 
 +
[[Fichier:MCP23017.jpg]]
 +
 
 +
Le MCP23017 utilise 2 broches I2C pins (qui peuvent être partagées avec d'autres périphériques I2C), et en échange, il fournit 16 broches d'utilisation générale en plus.
 +
 
 +
Ce composant est celui utilisé dans le {{pl|40|shield LCD RGB}} pour contrôler l'afficheur LCD et le clavier (KeyPad) à 5 boutons. C'est un composant fiable et facile à mettre en oeuvre.
 +
 
 +
Chacune des 16 broches peut être configurée:
 +
* en entrée (input)
 +
* en sortie (output)
 +
 
 +
Chaque entrée est peut utiliser soit une pullup ou un drain ouvert (open drain).
 +
 
 +
Il est même possible d'obtenir un signal d'interruption via une broche externe lorsqu'une entrée change d'état... comme cela, il n'est nécessaire de continuellement vérifier l'état des entrées par votre programme (cette méthode s’appelle du "pooling" en anglais).
 +
 
 +
=== Pour Arduino et pour Raspberry ===
 +
Ce circuit intégré peut être utilisé entre 2.7 et 5.5V (convient donc pour tous du 3.3V comme Raspberry Pi ou 5V comme Arduino). Vous pouvez consommer jusqu'à 20mA sur n'importe quelle porte... vous pouvez donc allumer une LED.
 +
 
 +
=== Courant Max ===
 +
Le MCP23017 est capable de supporter 20mA par sortie avec un courant max ne pouvant pas dépasser 150mA sur VSS (limite du MCP23017).
 +
 +
 
 +
=== Besoin de plus de puissance? ===
 +
 
 +
Vous pouvez adjoindre un Mofset de puissance si vous avez besoin de plus de puissance... ou comme le fait le {{pl|221|PiFace}}, utiliser un {{pl|262|ULN2803}} (voir aussi [[ULN2803|notre tutoriel sur l'ULN2803]]).
 +
 
 +
=== Breadboard et Prototypage ===
 +
Le MCP23017 dispose d'un empattement de 2.54mm, ce qui est idéal pour faire du prototypage électronique.
 +
 
 +
Ce circuit intégré utilise un boitier de type DIP... ce qui signifie qu'il peut être utilisé avec n'importe quel breadboard ou plaque de prototypage :-) .
 +
 
 +
=== Jusqu'à 128 entrées/sorties ===
 +
Vous pouvez modifier l'adresse I2C en raccordant les broches ADDR0-2 sur l'alimentation ou la masse, ce qui permet d'avoir 8 adresses uniques sur un seul BUS. En combinant les MCP23017 il est donc possible d'avoir jusqu'a 128 entrées/sorties :-)!
 +
 
 +
== Fiche Technique ==
 +
 
 +
[[Fichier:MCP23017-layout.jpg]]
 +
 
 +
Les broches intéressantes sont les suivantes:
 +
 
 +
=== Alimentation===
 +
Attention de ne pas inverser le sens de raccordement.
 +
 
 +
* VDD: Alimentation 
 +
* '''VSS: GND, la masse.'''
 +
 
 +
=== Les entrées/Sorties ===
 +
 
 +
Notées GPAx et GPBx. Toutes les entrées/sorties GPAx sont codées sur un octet (byte) tandis que toutes les entrées/sorties GPBx sont codées sur un autre octets.
 +
 
 +
Si vous utilisez moins de 8 entrées/sorties, il est préférable de les regrouper sur GPAx... car du coup, elles peuvent toutes être commandées en même temps avec un seul octet.
 +
 
 +
=== Bus I2C ===
 +
Le bus I2C est est pris en charge par les broches.
 +
* SCL : Signal d'horloge. SCL signifie Serial CLock ("''horloge série''" car ce signal cadence l'échange d'information sur le bus I2C).<br />Connecté sur Arduino UNO A5
 +
* SDA : Signal de donnée. SDA signifie Serial DAta ("''Donnée série car''" car les données sont envoyée en série sur cette ligne).<br />Connecté sur Arduino UNO A4
 +
 
 +
=== Changement d'adresse ===
 +
Les circuits intégrés se trouvant sur un Bus I2C ont chacun une adresse (un peut comme un numéro de maison dans une rue). Cela permet de connecter plusieurs circuit sur un même bus (les même fils SDA et SCL) et de pouvoir s'adresser à un circuit bien particulier en utilisant sont adresse. Il ne peut pas y avoir deux circuits différents avec la même adresse sur le Bus.
 +
 
 +
Il est possible de combiner différent types de circuits I2C sur un même bus... chaque circuit ayant sa propre adresse différente des autres circuits (ce qui est généralement le cas).
 +
 
 +
Si l'on veut mettre plusieurs fois le même circuit sur un bus I2C alors il faut pourvoir en changer l'adresse... 
 +
 
 +
C'est justement la fonction des broches A0, A1, A2. Elle permet de modifier l'adresse par défaut du composant sur le Bus I2C. Nous verrons ce point en détail plus loin.
 +
 
 +
=== Fiche technique ===
 +
Vous pouvez trouver [http://df.mchobby.be/datasheet/mcp23017.pdf la fiche technique du MCP23017 ici].
    
{{MCP23017-TRAILER}}
 
{{MCP23017-TRAILER}}
29 836

modifications

Menu de navigation