Cours:TPS 2103 tp mcp23017 : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m (Identification des adresses i2c)
m (Identification des adresses i2c)
Ligne 26 : Ligne 26 :
 
[[Image:I2cMasterSlave.png|500px]]
 
[[Image:I2cMasterSlave.png|500px]]
  
L'adresse des composants i2c est codée sur 7 bits, donc 2^7 adresses possibles. En pratique certains adresses sont réservées, se référé à la page wikipedia par ex pour plus de détails : https://fr.wikipedia.org/wiki/I2C
+
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éré à la page wikipedia par ex pour plus de détails : https://fr.wikipedia.org/wiki/I2C
  
  

Version du 17 mars 2022 à 19:04

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éré à la page wikipedia par ex pour plus de détails : https://fr.wikipedia.org/wiki/I2C


Todo.jpg Trouver dans la datasheet


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