Cours:TPS 2103 tp mcp23017

De troyesGEII
Révision datée du 18 mars 2022 à 10:22 par Bjacquot (discussion | contributions) (Identification des adresses i2c)
Aller à : navigation, rechercher

Datasheet mcp23017

GPIO expander

Lorsque le nombre d'entrées/sorties nécessaire dépasse la quantité disponible sur le µcontrôleur utilisé, il est possible d'utiliser un périphérique/composant pour en ajouter.

On parle de GPIO (General Purpose Input Output / Entrée-Sortie à usage générique) expander


Le mcp23017 que nous allons utiliser (cf datasheet plus haut), possède une liaison i2c (Inter Integrated Circuit Bus), aussi nommé TWI (Two Wire Interface).

Pour rappel, le bus i2c est une liaison série, synchrone, half-duplex, qui nécessite 2 fils SDA (données) et SCL (l'horloge), en plus de la masse.

Identification des adresses i2c

Le principe de connexion sur le bus i2c est représenté sur la figure ci-dessous.

Les résistances de pull-up sont indispensables, elles imposent la tension représentant le niveau logique 1.

Pour votre culture, d'un point de vue logique, nous avons :

  • un niveau logique 0 dominant
  • un niveau logique 1 récessif

c'est à dire que si plusieurs composants veulent imposer des niveaux logiques différents sur les lignes SDA et SCL, le niveau logique 0 l'emporte.

I2cMasterSlave.png

L'adresse des composants i2c est codée sur 7 bits, donc 2^7 adresses possibles. En pratique certaines adresses sont réservées, se référer par ex à la page wikipedia pour plus de détails : https://fr.wikipedia.org/wiki/I2C


Question.jpg Trouver dans la datasheet les différentes adresses possibles du composant et compléter le tableau


https://playground.arduino.cc/Main/I2cScanner/