Table des matières:

Comment créer un pilote LCD statique avec l'interface I²C : 12 étapes
Comment créer un pilote LCD statique avec l'interface I²C : 12 étapes

Vidéo: Comment créer un pilote LCD statique avec l'interface I²C : 12 étapes

Vidéo: Comment créer un pilote LCD statique avec l'interface I²C : 12 étapes
Vidéo: Вещи, которые мистеру Уэлчу больше не разрешается делать в сборнике для чтения RPG № 1-2450 2024, Juillet
Anonim
Comment faire un pilote LCD statique avec l'interface I²C
Comment faire un pilote LCD statique avec l'interface I²C

Les écrans à cristaux liquides (LCD) sont largement utilisés pour les applications commerciales et industrielles en raison de leurs bonnes propriétés visuelles, de leur faible coût et de leur faible consommation d'énergie. Ces propriétés font de l'écran LCD la solution standard pour les appareils fonctionnant sur batterie, comme les instruments portables, les calculatrices, les montres, les radios, etc.

Cependant, pour contrôler correctement ce que l'écran LCD affiche, le pilote électronique de l'écran LCD doit générer des formes d'onde de tension appropriées sur les broches de l'écran LCD. Les formes d'onde doivent être de nature CA (courant alternatif) car les tensions CC (courant continu) endommageront de façon permanente l'appareil. Le pilote approprié fournirait ces signaux à l'écran LCD avec une consommation d'énergie minimale.

Il existe deux types d'écrans LCD, le statique, avec un seul fond de panier et une seule broche pour le contrôle de segment individuel et le multiplexé, avec plusieurs fonds de panier et plusieurs segments connectés pour chaque broche.

Ce Instructable présentera la conception d'un pilote LCD statique avec le dispositif SLG46537V GreenPAK™. Le pilote LCD conçu piloterait jusqu'à 15 segments LCD, en utilisant quelques microampères de courant de l'alimentation et offrirait une interface I²C pour le contrôle.

Dans les sections suivantes seront affichés:

● informations de base sur les écrans LCD;

● la conception du pilote LCD SLG46537V GreenPAK en détail;

● comment piloter un écran LCD statique à sept segments et 4 chiffres avec deux dispositifs GreenPAK.

Ci-dessous, nous avons décrit les étapes nécessaires pour comprendre comment la solution a été programmée pour créer le pilote LCD statique avec interface I²C. Cependant, si vous souhaitez simplement obtenir le résultat de la programmation, téléchargez le logiciel GreenPAK pour afficher le fichier de conception GreenPAK déjà terminé. Branchez le kit de développement GreenPAK sur votre ordinateur et cliquez sur programme pour créer le pilote LCD statique avec interface I²C.

Étape 1: Bases des écrans à cristaux liquides

Principes de base des écrans à cristaux liquides
Principes de base des écrans à cristaux liquides
Principes de base des écrans à cristaux liquides
Principes de base des écrans à cristaux liquides

Les écrans à cristaux liquides (LCD) sont une technologie qui n'émet pas de lumière, elle contrôle uniquement le passage d'une source lumineuse externe. Cette source de lumière externe pourrait être la lumière ambiante disponible, dans le type d'affichage réfléchissant, ou la lumière provenant d'une LED ou d'une lampe de rétroéclairage, dans le type d'affichage transmissif. Les écrans LCD sont construits avec deux plaques de verre (supérieure et inférieure), une fine couche de cristaux liquides (LC) entre elles et deux polariseurs de lumière (note d'application AN-001 - Basics of LCD Technology, Hitachi, note d'application AN-005 - Display Modes, Hitachi). Le polariseur est un filtre de lumière pour le champ électromagnétique léger. Seules les composantes lumineuses dans la bonne direction du champ électromagnétique traversent le polariseur, tandis que les autres composantes sont bloquées.

Le cristal liquide est un matériau organique qui fait tourner le champ électromagnétique de la lumière de 90 degrés ou plus. Cependant, lorsqu'un champ électrique est appliqué au LC, il ne fait plus tourner la lumière. Avec l'ajout d'électrodes transparentes dans le verre d'affichage supérieur et inférieur, il est possible de contrôler le passage de la lumière, et le cas échéant, avec une source externe de champ électrique. La figure 1 (voir la note d'application AN-001 – Principes de base de la technologie LCD, Hitachi) ci-dessus illustre ce contrôle de fonctionnement. Dans la figure 1, l'écran est sombre lorsqu'il n'y a pas de champ électrique. En effet, les deux polariseurs filtrent la lumière dans la même direction. Si les polariseurs sont orthogonaux, alors l'affichage sera sombre lorsque le champ électrique est présent. C'est la situation la plus courante pour les écrans réfléchissants.

Le champ électrique minimum, ou tension, pour contrôler l'écran LCD est appelé seuil ON. Le LC n'est affecté que par la tension et il n'y a pratiquement pas de courant dans le matériau LC. Les électrodes de l'écran LCD forment une petite capacité et c'est la seule charge pour un pilote. C'est la raison pour laquelle un écran LCD est un appareil à faible consommation d'énergie pour afficher des informations visuelles.

Cependant, il est important de noter que l'écran LCD ne peut pas fonctionner avec une source de tension continue (CC) pendant trop longtemps. L'application d'une tension continue provoquera des réactions chimiques dans le matériau LC, l'endommageant de manière permanente (Note d'application AN-001 - Principes de base de la technologie LCD, Hitachi). La solution consiste à appliquer une tension alternative (AC) dans les électrodes des LCD.

Dans les écrans LCD statiques, une électrode de fond de panier est intégrée dans un verre et les segments individuels de l'écran LCD, ou pixels, sont placés dans l'autre verre. C'est l'un des types d'écran LCD les plus simples et celui avec le meilleur rapport de contraste. Cependant, ce type d'affichage nécessite généralement trop de broches pour contrôler chaque segment individuel.

En général, un contrôleur de pilote génère un signal d'horloge d'onde carrée pour le fond de panier et un signal d'horloge pour les segments dans le plan avant ensemble. Lorsque l'horloge du fond de panier est en phase avec l'horloge du segment, la tension quadratique moyenne (RMS) entre les deux plans est nulle et le segment est transparent. Sinon, si la tension RMS est supérieure au seuil LCD ON, le segment devient sombre. Les formes d'onde du fond de panier, du segment marche et arrêt sont illustrées à la Figure 2. Comme on peut le voir sur la figure, le segment ON est déphasé par rapport au signal du fond de panier. Le segment off est en phase par rapport au signal de fond de panier. La tension appliquée peut être comprise entre 3 et 5 volts pour des écrans à faible coût et à faible consommation d'énergie.

Le signal d'horloge pour le fond de panier et les segments de l'écran LCD sont généralement compris entre 30 et 100 Hz, la fréquence minimale pour éviter un effet de scintillement visuel sur l'écran LCD. Des fréquences plus élevées sont évitées pour réduire la consommation d'énergie de l'ensemble du système. Le système composé de LCD et de drivers consommerait peu de courant, de l'ordre du microampère. Cela les rend parfaitement adaptés aux applications de faible puissance et de source d'alimentation par batterie.

Dans les sections suivantes, la conception d'un pilote statique LCD avec un périphérique GreenPAK qui peut générer le signal d'horloge de fond de panier et le signal d'horloge de segment individuel pour un LCD commercial est présentée en détail.

Étape 2: Schéma fonctionnel de base de GreenPAK Design

Schéma fonctionnel de base de la conception GreenPAK
Schéma fonctionnel de base de la conception GreenPAK
Schéma fonctionnel de base de la conception GreenPAK
Schéma fonctionnel de base de la conception GreenPAK

Un schéma fonctionnel illustrant la conception GreenPAK est illustré à la figure 3. Les blocs de base de la conception sont l'interface I²C, le pilote de segment de sortie, l'oscillateur interne et le sélecteur de source d'horloge du fond de panier.

Le bloc d'interface I²C contrôle chaque sortie de segment individuel et la source d'horloge du fond de panier de l'écran LCD. Le bloc d'interface I²C est la seule entrée système pour le contrôle de la sortie de segment.

Lorsque la ligne de contrôle de segment interne est définie (niveau haut), le segment LCD respectif est sombre et opaque. Lorsque la ligne de contrôle de segment interne est réinitialisée (niveau bas), le segment LCD respectif est transparent.

Chaque ligne de contrôle de segment interne est connectée à un pilote de sortie. Le bloc pilote de segment de sortie générera un signal d'horloge en phase en relation avec l'horloge du fond de panier pour les segments transparents. Pour les segments sombres, ce signal est déphasé par rapport à l'horloge du fond de panier.

La source d'horloge du fond de panier est également sélectionnée avec l'interface I²C. Lorsque la source d'horloge interne du fond de panier est sélectionnée, l'oscillateur interne est activé. L'oscillateur interne générera une fréquence d'horloge de 48 Hz. Ce signal sera utilisé par le bloc pilote du segment de sortie et est adressé à la broche de sortie de l'horloge du fond de panier (broche GreenPAK 20).

Lorsque la source d'horloge du fond de panier externe est sélectionnée, l'oscillateur interne est désactivé. La référence du pilote de segment de sortie est l'entrée d'horloge du fond de panier externe (GreenPAK broche 2). Dans ce cas, la broche de sortie d'horloge du fond de panier pourrait être utilisée comme ligne de commande de segment supplémentaire, le segment OUT15.

Plusieurs appareils GreenPAK peuvent être utilisés sur la même ligne I²C. Pour ce faire, chaque appareil doit être programmé avec une adresse I²C différente. De cette manière, il est possible d'étendre le nombre de segments LCD pilotés. Un dispositif est configuré pour générer la source d'horloge de fond de panier, entraînant 14 segments, et les autres sont configurés pour utiliser une source d'horloge de fond de panier externe. Chaque appareil supplémentaire pourrait ainsi piloter plus de 15 segments. Il est possible de connecter jusqu'à 16 appareils sur la même ligne I²C et il est alors possible de contrôler jusqu'à 239 segments d'un écran LCD.

Dans ce Instructable, cette idée est utilisée pour contrôler 29 segments d'un écran LCD avec 2 appareils GreenPAK. La fonctionnalité de brochage du périphérique est résumée dans le tableau 1.

Étape 3: Concevoir la consommation actuelle

Une préoccupation importante dans cette conception est la consommation de courant, qui doit être aussi faible que possible. Le courant de repos estimé du dispositif GreenPAK est de 0,75 µA pour un fonctionnement avec une alimentation de 3,3 V et de 1,12 µA pour un fonctionnement avec une alimentation de 5 V. La consommation de courant de l'oscillateur interne est de 7,6 µA et 8,68 µA pour un fonctionnement en alimentation de 3,3 V et 5 V respectivement. On ne s'attend pas à ce qu'il y ait une augmentation significative de la consommation de courant due aux pertes de commutation, car cette conception fonctionne à une faible fréquence d'horloge. Le courant maximal estimé consommé pour cette conception est inférieur à 15 µA lorsque l'oscillateur interne est activé et à 10 µA lorsque l'oscillateur interne est désactivé. Le courant mesuré consommé dans les deux situations est indiqué dans la section Résultats des tests.

Étape 4: Schéma de l'appareil GreenPAK

Schéma du dispositif GreenPAK
Schéma du dispositif GreenPAK

Le projet conçu dans le logiciel GreenPAK est illustré à la figure 4. Ce schéma sera décrit en utilisant les schémas fonctionnels de base comme référence.

Étape 5: Interface I²C

Interface I²C
Interface I²C
Interface I²C
Interface I²C

Le bloc d'interface I²C est utilisé comme bloc de contrôle principal du contrôle de fonctionnement de l'appareil. Une vue rapprochée des connexions de blocs et des propriétés configurées est illustrée à la Figure 5.

Ce bloc est connecté aux broches 8 et 9, qui sont respectivement les broches I²C SCL et SDA. A l'intérieur de l'appareil, le bloc I²C propose 8 entrées virtuelles. La valeur initiale de chaque entrée virtuelle est affichée dans la fenêtre des propriétés (voir Figure 5). Les entrées virtuelles de OUT0 à OUT6 sont utilisées comme lignes de contrôle de segment. Ces lignes de commande correspondent à la sortie de segment 1 à la sortie de segment 7 et sont connectées au pilote de sortie de segment. L'entrée virtuelle OUT7 est utilisée comme commande de ligne de sélecteur de source d'horloge de fond de panier, avec le nom de réseau BCKP_SOURCE. Ce filet sera utilisé par d'autres blocs dans la conception. Le code de contrôle I²C est configuré avec une valeur différente pour chaque circuit intégré du projet.

8 lignes de contrôle de segment internes supplémentaires sont disponibles dans la sortie de la machine à états asynchrone (ASM), comme illustré à la figure 6 ci-dessus. La ligne de sortie du segment 8 (SEG_OUT_8 dans la fenêtre des propriétés) à la ligne de sortie du segment 15 (SEG_OUT_15) sont contrôlées par la sortie ASM à l'état 0. Il n'y a pas de transition d'état dans le bloc ASM, il est toujours à l'état 0. Les sorties de l'ASM sont connecté aux pilotes de sortie de segment.

Les pilotes de sortie de segment généreront le signal de sortie de l'appareil.

Étape 6: Pilote de segment de sortie

Le pilote de segment de sortie est essentiellement une table de recherche (LUT) configurée comme un port logique XOR. Pour chaque segment de sortie, il doit s'agir d'un port XOR connecté à la ligne de contrôle du segment et à l'horloge du fond de panier (BCKP_CLOCK). Le port XOR est chargé de générer le signal en phase et déphasé vers le segment de sortie. Lorsque la ligne de commande de segment est à un niveau élevé, la sortie du port XOR inverse le signal d'horloge du fond de panier et génère un signal déphasé vers la broche de segment. La différence de tension entre le fond de panier LCD et le segment LCD, dans ce cas, définira le segment LCD comme un segment sombre. Lorsque la ligne de contrôle de segment est à un niveau bas, la sortie du port XOR suivra le signal d'horloge du fond de panier, puis générera un signal en phase pour segmenter la broche. Comme aucune tension n'est appliquée entre le fond de panier LCD et le segment dans ce cas, le segment est transparent à la lumière.

Étape 7: Contrôle de la source de l'horloge interne de l'oscillateur et du fond de panier

Oscillateur interne et contrôle de source d'horloge de fond de panier
Oscillateur interne et contrôle de source d'horloge de fond de panier

L'oscillateur interne est utilisé lorsque le signal BCKP_CLOCK de l'interface I²C est mis à un niveau haut. Une vue rapprochée du schéma de commande de la source d'horloge est illustrée à la figure 7 ci-dessus.

L'oscillateur est configuré comme une fréquence RC de 25 kHz, avec le diviseur de sortie le plus élevé disponible à l'oscillateur OUT0 (8/64). L'ensemble de la configuration est visible dans la fenêtre des propriétés illustrée à la figure 7. De cette façon, l'oscillateur interne générera une fréquence d'horloge de 48 Hz.

L'oscillateur n'est actif que lorsque le signal BCKP_SOURCE est à un niveau haut avec le signal POR. Ce contrôle se fait en connectant ces deux signaux au port NAND de la LUT 4-L1. La sortie de la NAND est ensuite connectée à l'entrée de la broche de commande de mise hors tension de l'oscillateur.

Le signal BCKP_SOURCE contrôle le MUX construit avec 3-L10 LUT. Lorsque le signal BCKP_SOURCE est à un niveau bas, la source d'horloge du fond de panier provient de PIN2. Lorsque ce signal est à un niveau élevé, la source d'horloge du fond de panier provient de l'oscillateur interne.

Étape 8: sortie d'horloge du fond de panier ou contrôle des broches de sortie du segment 15

Sortie d'horloge du fond de panier ou contrôle des broches de sortie du segment 15
Sortie d'horloge du fond de panier ou contrôle des broches de sortie du segment 15

La broche 20 dans cette conception a une double fonction, qui dépend de la source d'horloge de fond de panier sélectionnée. Le fonctionnement de cette broche est contrôlé avec une LUT à 4 entrées, comme le montre la figure 8. Avec une LUT à 4 bits, il est possible d'associer le fonctionnement du port XOR à une sortie MUX. Lorsque le signal BCKP_SOURCE est à un niveau élevé, la sortie LUT suivra l'horloge interne de l'oscillateur. Ensuite, la broche 20 fonctionne comme une sortie d'horloge de fond de panier. Lorsque le signal BCKP_SOURCE est à un niveau bas, la sortie LUT sera l'opération XOR entre SEG_OUT_15, depuis la sortie ASM, et le signal d'horloge du fond de panier. La configuration LUT 4 bits pour effectuer cette opération est illustrée à la Figure 8.

Étape 9: Prototype du système LCD

Prototype du système LCD
Prototype du système LCD
Prototype du système LCD
Prototype du système LCD

Pour démontrer l'utilisation de la solution de conception GreenPAK, un prototype de système LCD a été assemblé sur une maquette. Pour le prototype, un écran LCD statique à sept segments et à 4 chiffres est piloté par deux dispositifs GreenPAK sur une carte DIP. Un appareil (IC1) utilise l'oscillateur interne pour piloter le fond de panier LCD, et l'autre appareil (IC2) utilise ce signal comme référence d'entrée du fond de panier. Les deux circuits intégrés sont contrôlés via l'interface I²C par un microcontrôleur STM32F103C8T6 (MCU) dans une carte de développement minimum.

La figure 9 montre le schéma des connexions entre les deux circuits intégrés GreenPAK, l'écran LCD et la carte MCU. Dans le schéma, le dispositif GreenPAK avec la référence U1 (IC1) pilote les chiffres LCD un et deux (LCD à gauche). Le dispositif GreenPAK avec référence U2 (IC2) pilote les chiffres LCD trois et quatre, ainsi que le segment COL (LCD côté droit). L'alimentation des deux appareils provient du régulateur de la carte de développement du microcontrôleur. Deux cavaliers amovibles entre l'alimentation et les broches VDD de chaque appareil GreenPAK sont ajoutés pour la mesure du courant avec un multimètre.

Une image du prototype assemblé est présentée à la figure 10.

Étape 10: Commandes I²C pour le contrôle LCD

Commandes I²C pour le contrôle LCD
Commandes I²C pour le contrôle LCD
Commandes I²C pour le contrôle LCD
Commandes I²C pour le contrôle LCD
Commandes I²C pour le contrôle LCD
Commandes I²C pour le contrôle LCD

Les deux dispositifs GreenPAK sur la maquette sont programmés avec le même design, à l'exception de la valeur Control Byte. L'octet de contrôle de IC1 est 0 (adresse I²C 0x00), tandis que l'octet de contrôle I²C est 1 (adresse I²C 0x10). Les connexions entre les segments d'affichage et les pilotes de périphérique sont résumées dans le tableau ci-dessus.

Les connexions ont été sélectionnées de cette manière pour créer un schéma plus clair et simplifier l'assemblage des connexions de la maquette.

Le contrôle de la sortie du segment est effectué par des commandes d'écriture I²C vers les entrées virtuelles I²C et les registres de sortie ASM. Comme décrit dans la note d'application AN-1090 Simple I²C IO Controllers avec SLG46531V (voir Application Note AN-1090 Simple I²C IO Controllers avec SLG46531V, Dialog Semiconductor), la commande d'écriture I²C est structurée comme suit:

● Démarrer;

● Octet de contrôle (le bit R/W est 0);

● Adresse de mot;

● Données;

● Arrêtez.

Toutes les commandes d'écriture I²C sont envoyées à l'adresse de mot 0xF4 (entrées virtuelles I²C) et 0xD0 (sortie ASM pour l'état 0). Les commandes à écrire dans IC1 et à contrôler les chiffres 1 et 2 de l'écran LCD sont résumées dans le tableau 3. Dans la représentation de la séquence de commandes, la parenthèse ouverte "[" désigne le signal de démarrage et la parenthèse fermée "]" désigne le signal d'arrêt.

Les deux octets ci-dessus contrôlent ensemble les segments du chiffre 1 et du chiffre 2 de l'écran LCD. Ici, l'approche consiste à utiliser une table de consultation individuelle (LUT) dans le logiciel pour chaque chiffre, en tenant compte des segments dans les deux octets. Les valeurs d'octet de la table de recherche doivent être mélangées à l'aide d'une opération OU au niveau du bit, puis envoyées au circuit intégré. Le tableau 4 montre la valeur Byte0 et Byte1 pour chaque valeur numérique qui doit être écrite dans chaque chiffre d'affichage.

Par exemple, pour écrire dans le chiffre 1 le chiffre 3 et dans le chiffre 2 le chiffre 4, l'octet 0 est 0xBD (0x8D au niveau du bit OU avec 0xB0) et l'octet 1 est 0x33 (0x30 au niveau du bit OU avec 0x03).

La commande d'écriture dans IC2 et les commandes Digit 3 et 4, sont décrites dans le Tableau 5.

La logique de contrôle des chiffres 3 et 4 est similaire au contrôle des chiffres 1 et 2. Le tableau 6 montre la LUT pour ces deux chiffres.

La différence dans IC2 est le segment COL. Ce segment est contrôlé par Byte1. Pour configurer ce segment sombre, une opération OU au niveau du bit entre l'octet1 et la valeur 0x40 doit être effectuée.

Étape 11: Commandes I²C pour le test LCD

Commandes I²C pour le test LCD
Commandes I²C pour le test LCD

Pour le test LCD, un firmware a été développé en langage C pour la carte MCU. Ce micrologiciel enverra une séquence de commandes aux deux circuits intégrés de la maquette. Le code source de ce firmware se trouve dans la section Annexe. L'ensemble de la solution a été développé à l'aide d'Atollic TrueStudio pour STM32 9.0.1 IDE.

La séquence de commandes et les valeurs respectives affichées à l'écran sont résumées dans le tableau 7 ci-dessus.

Étape 12: Résultats des tests

Résultats de test
Résultats de test
Résultats de test
Résultats de test

Le test du prototype consiste à vérifier les valeurs d'affichage après une commande MCU et à mesurer le puits de courant par chaque IC pendant le fonctionnement.

Des images de l'écran LCD pour chaque valeur de commande sont présentées dans le tableau 8 ci-dessus.

Le puits de courant pour chaque appareil a été mesuré avec un multimètre, dans sa plage de courant la plus basse de 200 µA. Des images du courant mesuré pour chaque appareil, pendant le démarrage et le fonctionnement normal, sont présentées dans le tableau 9 ci-dessus.

Conclusion et discussion des résultats

La conception d'un pilote LCD statique à faible consommation avec un dispositif GreenPAK a été présentée. Cette conception montre clairement l'une des plus grandes caractéristiques des dispositifs GreenPAK: leur faible courant de repos. Étant donné que les appareils GreenPAK sont une solution matérielle, il est possible de travailler à un fonctionnement à basse fréquence, dans ce cas, 48 Hz. Une solution basée sur un MCU nécessitera une fréquence de fonctionnement plus élevée, même pendant de courtes périodes de temps, puis consommera plus d'énergie. Et, en comparant le dispositif GreenPAK avec un CPLD (Complex Programmable Logic Device), il est clair que généralement un CPLD a un courant de repos supérieur à 20 µA.

Il est intéressant de noter que cette conception pourrait être facilement modifiée pour mieux s'adapter aux exigences d'un projet spécifique. Un bon exemple est le brochage des commandes de segment. Ils pouvaient facilement être modifiés pour simplifier à la fois la carte de circuit imprimé et le développement du logiciel. C'est une caractéristique intéressante lorsque l'appareil est comparé à un ASIC (Application Specific Integrated Circuit) du commerce. Habituellement, les ASIC sont conçus pour s'adapter à une large gamme d'applications, et une routine logicielle initiale doit être écrite pour configurer correctement le circuit intégré avant l'opération. Un dispositif configurable pourrait être conçu pour démarrer prêt à l'emploi après la mise sous tension. De cette façon, il est possible de réduire le temps de développement du logiciel pour la configuration initiale du circuit intégré.

Le code source de l'application se trouve ici dans l'annexe A.

Conseillé: