Vous n'êtes pas seuls dans l'Univers !
/
Cet article montre comment il est possible de piloter un afficheur LCD graphique alphanumérique à commande parallèle, grâce à un bus I2C.
Il est question, pour cette première partie, d'utiliser un, ou plusieurs circuits intégrés de type « PCF8574 ».
Ce type d'afficheur peut être directement relié à un microcontrôleur, or, dans ce cas, il nécessite la mise en oeuvre de 11 entrées/sorties.
Grâce à l'utilisation de circuits intégrés spécifiques, appelée « Expanseurs de ports pour bus I2C » ( « Remote I/O expander for I2C-bus » ), les montages proposés ici permettent de commander le même afficheur en ne réclamant que deux ports d'entrées/sorties d'un microcontrôleur, sur lequel le contrôle d'un bus I2C est possible.
Ceci permet de relier un afficheur graphique alphanumérique, situé en façade d'un appareil tel qu'un boîtier à code confidentiel, par exemple, à son circuit de commande, placé dans un autre endroit de l'appareil, avec seulement 4 fils.
Les deux montages proposés ici permettent également de piloter 5 LED, placées au même endroit que l'afficheur LCD graphique alphanumérique.
Dans cet article, quatre montages sont proposés, ils utilisent un microcontrôleur PIC18F4550 et un STM32F100RB.
Le premier montage utilise l'afficheur en mode « 4 bits ».
Les trois autres montages utilisent l'afficheur en mode « 8 bits ».
Ils se distinguent par l'utilisation de différents expanseurs de ports pour bus I2C.
Le premier montage fait appel à un circuit intégré PCF8574, le deuxième utilise deux circuits intégrés PCF8574, le troisième utilise un composant MCP23016 et le quatrième utilise un composant MCP23017.
Si vous souhaitez réaliser ce montage pour une application particulière, le tableau suivant devrait vous aider à choisir votre ou vos expanseurs de ports pour bus I2C, dont dépend la programmation du microcontrôleur qui doit gérer l'ensemble.
Référence du circuit intégré | PCF8574 | PCF8574A | PCF8575 | MCP23016 | MCP23017 |
---|---|---|---|---|---|
Nombre de circuits intégrés nécessaires pour l'application envisagée |
2 (1 seul si l'afficheur est utilisé en mode « 4 bits » ) |
2 (1 seul si l'afficheur est utilisé en mode « 4 bits » ) |
1 | 1 | 1 |
Nombre de broches | 16 | 16 | 24 | 28 | 28 |
Fréquence maximale de fonctionnement | 100 kHz | 100 kHz | 400 kHz | 400 kHz | 1,7 MHz |
Composants externes nécessaires | Aucun | Aucun | Aucun |
|
Aucun |
Nombre de sorties d'interruption | 1 | 1 | 1 | 1 | 2 |
Gamme d'adresses possibles sur le bus I2C | 0x40 - 0x4F | 0x70 - 0x7F | 0x40 - 0x4F | 0x40 - 0x4F | 0x40 - 0x4F |
Nombre d'adresses possibles sur le bus I2C | 8 | 8 | 8 | 8 | 8 |
Remarque : La ou les sorties d'interruption des expanseurs de ports pour bus I2C ne sera ou ne seront pas utilisées dans
les exemples présentés dans cet article.
Ces sorties permettent d'informer le microcontrôleur qu'une ou plusieurs broches de l'expanseur de ports pour bus I2C a changé d'état logique, depuis la dernière lecture de l'état de ses broches.
Vous pouvez la ou les utiliser si vous souhaitez doter votre afficheur de boutons-poussoirs pour le système que vous souhaitez développer.
Le bon fonctionnement de ce premier montage montage a été vérifié d'une part avec un microcontrôleur PIC18F4550, et d'autre part avec un STM32F100RB.
Les connexions entre l'expanseur de ports pour bus I2C, l'afficheur LCD graphique alphanumérique et la commande du rétroéclairage éventuel sont indiquées dans le tableau présenté ci-après :
Afficheur LCD et commande du rétroéclairage éventuel | D4 | D5 | D6 | D7 | E | RW | RS | COMMANDE DU RETROECLAIRAGE EVENTUEL |
---|---|---|---|---|---|---|---|---|
PCF8574 | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 |
Schéma électronique et typon de la carte d'adaptation SPI vers LCD
Logiciel de dessin : EAGLE 6.4.0
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (237.36 Ko)
L'essai avec un microcontrôleur PIC18F4550 utilise une platine d'expérimentations.
Les connexions entre le circuit et le microcontrôleur sont indiquées dans le tableau ci-après.
Les broches « RB0 » et « RB1 » sont reliées au + 5 Volt par des résistances de tirage de 10 kilo Ohm.
Microcontrôleur PIC18F4550 | +5V | 0V | RB0 | RB1 |
---|---|---|---|---|
Circuit intégré PCF8574 | +5V | 0V | SDA | SCL |
Piloter un afficheur graphique alphanumérique avec un PCF8574 et un PIC 18F4550 : Fichiers C
Cible : PIC18F4550
Compilateur : MCC18
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (88.86 Ko)
L'essai à l'aide d'un microcontrôleur STM32F100RB utilise une carte de développement de type « STM32VLDISCOVERY », qui en est équipée.
Les connexions entre le circuit et la carte de développement sont indiquées dans le tableau ci-après.
Les broches « PB6 » et « PB7 » sont reliées au + 5 Volt par des résistances de tirage de 1 kilo Ohm.
Remarque : Le microcontrôleur STM32F100RB, bien qu'alimenté sous une tension de + 3,3 Volt, accepte de recevoir des niveaux de tensions + 5 Volt sur ses broches configurées en tant qu' « Entrées logiques et sorties à collecteurs ouverts », comme c'est le cas pour utiliser le bus « I2C ».
Ces niveaux de + 5 Volt ne sont pas destructeurs pour le microcontrôleur, car ils sont appliqués par l'intermédiaire de résistances de tirages.
Carte de développement « STM32VLDISCOVERY » | +5V | 0V | PB6 | PB7 |
---|---|---|---|---|
Circuit intégré PCF8574 | +5V | 0V | SCL | SDA |
Piloter un afficheur graphique alphanumérique avec un PCF8574 et un STM32F100RB : Fichiers C
Cible : STM32F100RB
Compilateur : Keil µVison 4
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (23.9 Ko)
Les connexions entre les expanseurs de ports pour bus I2C, l'afficheur LCD graphique alphanumérique et les 5 LED sont indiquées dans les deux tableaux présentés ci-après
Afficheur LCD et LED | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
---|---|---|---|---|---|---|---|---|
PCF8574, 1 | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 |
Afficheur LCD et LED | RS | RW | E | LED1 | LED2 | LED3 | LED4 | LED5 |
---|---|---|---|---|---|---|---|---|
PCF8574, 2 | P0 | P1 | P2 | P3 | P4 | P5 | P6 | P7 |
Piloter un afficheur graphique alphanumérique avec deux PCF8574 et un PIC18F4550 : Fichier C
Cible : PIC18F4550
Compilateur : MCC18
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (3.98 Ko)
Piloter un afficheur graphique alphanumérique avec deux PCF8574 et un PIC18F4550 : Fichier HEX
Cible : PIC18F4550
Compilateur : MCC18
Télécharger le fichierEffectuez un clic droit, puis sélectionnez l'option « Enregistrer la cible du lien sous... », pour télécharger le fichier (1.54 Ko)
Commentaires (2)
sou
Le lundi 18 juin 2012 à 14:44
salut! excellent travail!!
Mattpatt
Le lundi 11 juin 2012 à 18:01
Salut , tu sais que tu peux piloter l'afficheur avec un seul composant :
http://www.robot-amateur.com/Articles/Realisation_afficheur_LCD_I2C-p43.html
Ajouter un commentaire