MCP23017

De MCHobby - Wiki
Aller à : navigation, rechercher

Introduction

Ajoutez 16 broches à votre microcontroleur en utilisant une extension MCP23017 ("port extension" en anglais).

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 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 PiFace, utiliser un ULN2803 (voir aussi 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

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).
    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).
    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 la fiche technique du MCP23017 ici.


Source: Librairie MCP23017 d'AdaFruit Industries

Tutoriel réalisé par Meurisse D pour MCHobby basé sur la librairie MCP23017 de LadyAda (AdaFruit Industries).

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.