Afficheur sur bus I2c

Il est toujours plus facile, lorsque l'on fait du développement sur des circuits à microcontrôleurs, d'afficher certaines variables ou état sur un afficheur LCD pour permettre un débogage plus facile, mais dans le cas des afficheurs les plus courants et les moins cher, ceux-ci ne sont pourvu que de lignes parallèles (bus de donnée et lignes de contrôles) ce qui impliques beaucoup de connections ainsi qu'une grande consommation de ligne E/S sur le microcontrôleur.

 

Une solution simple existe afin de réduire fortement ces connexions, l'utilisation du bus I2c, ce bus que la plupart des microcontrôleurs possèdent et qui est assez facile à mettre en œuvre car il ne comporte que deux lignes (SCL, SDA) ainsi que l'alimentation (+5V, GND).

 

Dans notre cas, nous allons donc réaliser une interface parallèle de 8 lignes vers un bus I2c. Cette interface aura la possibilité de 8 E/S lesquelles pourront être programmées via le bus I2C et ainsi nous aurons, par le biais de cette interface, la possibilité de contrôler un afficheur, un clavier, des relais, des LEDs et encore bien d'autre chose.

 

Pour ce faire, nous allons donc utiliser un circuit intégré du type PCF8574 qui existe en plusieurs versions avec des plages d'adresse différentes. Ce qui va nous permettre de placer sur le bus I2c, plusieurs de ces modules afin de contrôler plusieurs afficheurs ou d'autres périphériques interfacés.

 

Schéma interne du PCF8574

Schéma interne PCF8574

Sur cette interface, il y a la possibilité de sélectionner sa plage d'adresse par de petit pontage à réaliser par un court-circuit de soudure sur la platine afin de mettre ou pas à la masse une de ces lignes. Nous avons aussi la possibilité de faire la même chose avec les résistances de Pull Up qui se trouvent sur les lignes I2C dans le cas ou le microcontrôleur ne serait pas équipé de ces résistances.

Il y a aussi sur cette platine, une commande par transistor pour actionner le rétroéclairage qui se trouve aussi sur certain afficheur LCD, ou une LED supplémentaire.
 

Connexion Rétroéclairage

 
Si vous voulez plus d'information sur le PCF8574, vous pouvez télécharger son datasheet.
 

Adressage

L'adressage du PCF8574 est fait comme suit:

Adressage PCF88574 Adressage PCF8574A

Ce qui veut dire que le PCF8574 a une plage d'adresse qui peut aller de 40 à 4E selon les niveaux des divers lignes d'adresses et le PCF8574A a une plage allant de 70 à 7E ce qui nous permet d'utiliser 8 adresses différentes sans que les interfaces se gênent entre eux.


huit adresses, Pourquoi ??

il ne faut pas oublier que l'adressage du Bus I2C se fait sur 7 bits et non 8, car le bit le plus à droite est le bit du choix de lecture ou d'écriture sur le bus (voir paragraphe I2C).


Sur notre platine l'adressage du PCF8574 est câblé comme suit:

adressage du PCF8574

 

W3, W4 et W5 ne sont pas réaliser, donc les trois adresses sont au VCC.

Adressage PCF8574

Ce qui fait donc A2=1, A1=1 et A0=1, ce qui nous donne l'adresse 01001110 soit 4E en hexadécimal.


Donc dans notre programme l'adresse 0x4E sera utilisée pour accéder à cette interface.

 

 

Schéma complet de la platine

 

Schéma complet


Implantation des composants


Fonctionnement

LCD sur le bus I2C Afficheur LCD

 

Connexions sur la carte MiniSiMiUS

 alt

  alt  alt