Note d`application pour LCDs graphiques «Cristalfontz GFAG24054A»

Transcription

Note d`application pour LCDs graphiques «Cristalfontz GFAG24054A»
Note d’application pour
LCDs graphiques
«Cristalfontz GFAG24054A»
Projet
Adrien BOULAMOY
GE3-2008/2009
Sommaire
Introduction............................................................................................................................................. 3
I.
Caractéristiques électriques ............................................................................................................ 3
1.
Valeurs maximums absolues ....................................................................................................... 3
2.
Caractéristiques électriques ........................................................................................................ 4
II.
Description de l’interface ................................................................................................................ 4
III.
Caractéristiques temporelles ...................................................................................................... 7
IV.
Instruction de contrôle de l’affichage ......................................................................................... 8
1.
Mémoire ...................................................................................................................................... 8
2.
Programmation ........................................................................................................................... 8
a.
Initialisation ............................................................................................................................. 8
b.
Affichage de caractères ......................................................................................................... 13
c.
Fonctions supplémentaires ................................................................................................... 15
d.
Exemple de fonction principale ............................................................................................. 15
Note d’application
LCD graphique Cristalfontz GFAG24054A
Introduction
Le GFAG24064A de la marque Cristalfontz est un afficheur à cristaux liquides de 64X240
pixels. Ce type d’afficheur inclus un contrôleur graphique Toshiba T6963C et est le plus
couramment utilisé pour faire un mixte entre le texte et le graphique. Ce contrôleur est pour
la plupart du temps interfacé avec un microprocesseur 8 bits.
L’afficheur possède une mémoire ROM de 128 mots générateur de caractères et une
capacité d’extension de mémoire RAM de 64K octets.
Cet afficheur présente également de principales fonctions et caractéristiques tels que le
choix matériel du format d’affichage, l’allocation logiciel de RAM pour texte, graphique ou
générateur de caractères...
Cette note d'application n’est pas écrit avec un affichage spécifique à l'esprit, mais est
destiné à donner une compréhension approfondie de la façon d'utiliser le T6963C et de
mettre en œuvre l’interface logiciel / matériel.
Il est nécessaire de préciser que l’afficheur sera ici piloter par un microcontrôleur de la
marque Microchip et de type Pic18f458.
Remarque : Tout type de microcontrôleur possédant le nombre nécessaire d’Entrées/Sorties
pourra être utilisé.
I.
Caractéristiques électriques
1. Valeurs maximums absolues
Figure 1 : tableau des valeurs maximum de caractéristiques
Avant tout branchement de l’afficheur, il faut prendre connaissance des tensions et
des températures à ne pas excéder pour le bon fonctionnement de l’afficheur.
L’alimentation la plus couramment utilisée sera une alimentation de 5V DC.
Adrien BOULAMOY
Page 3
Note d’application
LCD graphique Cristalfontz GFAG24054A
2. Caractéristiques électriques
Figure 2 : caractéristiques électrique de l'afficheur
Ce second tableau apporte plus d’information sur le type d’alimentation à choisir. La
tension d’alimentation ܸ஽஽ doit être typiquement de 5V à ±5% sous un courant 16mA à
±25%.
Les données d’entrée de l’afficheur sont pour leur part régis par le microcontrôleur
renvoyant en sortie une tension ܸ஽஽ pour le niveau haut et une tension GND pour le niveau
bas.
II.
Description de l’interface
Le tableau de la page suivante permettra de réaliser la connectique correcte afin
d’alimenter et commander l’afficheur. Nous pouvons y retrouver le numéro, le symbole, le
niveau et la description de la pin. Chacune de ces pins devront être reliées correctement afin
de garantir le bon fonctionnement de l’afficheur. Une fois ce branchement réalisé,
l’utilisateur pourra s’intéresser à la partie programmation.
Adrien BOULAMOY
Page 4
Note d’application
LCD graphique Cristalfontz GFAG24054A
Figure 3 : Tableau d'interfaçage
Les trois premières pins constituent les broches d’alimentation. Il est conseiller de
relier FG (pin1) et ܸௌௌ (pin2) à la masse du microcontrôleur (GND) et ܸ஽஽ (pin3) à une
alimentation de +5V (dans notre cas identique à l’alimentation du microcontrôleur).
L’intensité de l’éclairage peut être réglée grâce à un potentiomètre 10KΩ~20KΩ
branché entre ࢂࢋࢋ (pin 9), tension renvoyé par l’afficheur et ࢂࡰࡰ , tension d’alimentation de
l’afficheur. La tension renvoyée ࢂ૙ est ensuite envoyée sur la broche correspondante de
l’afficheur (pin 4). Le tableau (Figure 2 : caractéristiques électrique de l'afficheur) nous montre donc que
la tension ࢂ૙ doit être typiquement de -7,5V. Voici la représentation du montage :
Adrien BOULAMOY
Page 5
Note d’application
LCD graphique Cristalfontz GFAG24054A
Figure 4 : Schéma de réglage d'intensité
Les pins 5, 6, 7, 8 et 10 correspondent aux broches de contrôle permettant de piloter
l’afficheur et seront reliées au microcontrôleur.
Remarque : Après alimentation, il est nécessaire de garder RES (pin10) au niveau bas
pendant plus de quelques µs.
Les pins de 11 à 18 représentent les 8 bits du port de communication parallèle où les
données seront acheminées.
Et enfin FS (pin 19) peut être soit contrôlée par le microcontrôleur soit figée au
niveau haut ou bas en hard. Cette broche permet la sélection de la police. C'est-à-dire, au
niveau haut une case aura une taille de 6*8 et de 8*8 pour un niveau bas (voir figures 4 et
5).
Figure 5 : Case 8*8 FS=H
Figure 6 : Case 6*8 FS=L
Remarque : L’afficheur possède un connecteur annexe relié aux bornes A et K et destiné à
brancher un petit onduleur. Celui-ci permet donc le rétro-éclairage bleu de l’afficheur.
Figure 7 : Branchement de l'onduleur
Adrien BOULAMOY
Page 6
Note d’application
III.
LCD graphique Cristalfontz GFAG24054A
Caractéristiques temporelles
Figure 8 : Interface temporelle avec microcontrôleur
Nous pouvons retrouver dans la table ci-dessus les différentes caractéristiques temporelles
que l’on doit respecter pour que toutes les lignes de commande soit prise en compte. Ce tableau
n’est pas très parlant sans le chronogramme suivant :
Figure 9 : Chronogramme d'écriture ou de lecture de données
Ce chronogramme montre l’évolution du système accompagnée des temps à respect pour
que toutes commandes dans sa progression soit prise en compte. Afin de simplifier le programme,
une temporisation de quelques µs peut être placée à certains endroits ce qui nous assurera la
considération de toutes les opérations.
Adrien BOULAMOY
Page 7
Note d’application
IV.
LCD graphique Cristalfontz GFAG24054A
Instruction de contrôle de l’affichage
1. Mémoire
Le LCD est fondé autour d’un contrôleur T6963C. Il a donc un bus 8 bits de données
parallèle et des lignes pour lire ou écrire via un microcontrôleur. Il possède également une
mémoire ROM de 128 mots générateurs de caractères ainsi répertoriés dans la table
suivante :
Si nous souhaitons réaliser l’affichage de caractères non présents dans la table
précédente ou de graphique, le T6963C peut contrôler une RAM externe d’une capacité de
8Koctets. L’allocation texte ou graphique de cette mémoire peut être faite de manière
simple avec une interface graphique.
Figure 10 : Interface RAM
Dans cette application note, nous ne verrons pas comment utiliser la mémoire RAM.
2. Programmation
La programmation expliquée ci-après est conçue afin de réaliser l’affichage classique de texte
via un Pic18f458. Le logiciel de programmation utilisé est MPLAB IDE de Microchip avec le
compilateur CCS. Ce dernier permet d’écrire les routines en langage C mais nécessite l’emploi d’une
syntaxe propre à celui-ci. Le programme se décomposera en différentes fonctions dont nous verrons
les utilités au fil de cette explication
a. Initialisation
Dans un premier temps, il faut procéder à une phase d’initialisation de l’afficheur.
Cette phase nécessitera l’envoi de plusieurs commandes successives tout en ayant au
préalable réalisé un RESET de l’afficheur et un effacement complet de l’afficheur. Ensuite il
faut envoyer une série d’octets de commande et paramètres pour initialiser le contrôleur de
LCD. La fonction d’initialisation sera donc fondée autour de l’algorithme suivant :
Adrien BOULAMOY
Page 8
Note d’application
LCD graphique Cristalfontz GFAG24054A
Figure 11 : Algorithme d'initialisation de l'afficheur
Pour comprendre les deux dernières étapes de l’algorithme, à savoir l’écriture de la
fonction LCD_clear () et l’envoi de commandes, il faut d’abord introduire plusieurs notions :
Contrôle de statut
La première notion est le « Contrôle de statut ». Avant l’envoi de commande à
l’afficheur, il faut s’assurer que le bus de données soit libre. Pour scruter le registre de
contrôle, il suffit de se placer dans la configuration suivante :
ܴ‫ܦ‬
ܹܴ
‫ܧܥ‬
‫ܥ‬/‫ܦ‬
L
H
L
H
Nous pourrons alors lire le registre de contrôle qui se présente de la manière suivante :
Figure 12 : Registre de contrôle
Adrien BOULAMOY
Page 9
Note d’application
LCD graphique Cristalfontz GFAG24054A
Remarque : Il est nécessaire de vérifier STA0 et STA1 en même temps pour la
lecture/écriture classique.
STA2 et STA3 sont eux valides en auto mode tandis que STA0 et STA1sont invalides.
Deux fonctions de contrôle de status seront fondées selon les algorithme suivant :
Figure 13 : Algorithmes de contrôle de statut
Les fonctions qui en découlent sont les suivantes :
Figure 14 : Fonction de contrôle de statut en mode simple écriture
Figure 15 : Fonction de contrôle de statut en mode auto-écriture
Adrien BOULAMOY
Page 10
Note d’application
LCD graphique Cristalfontz GFAG24054A
Nous pourrons remarquer dans ces fonctions l’utilisation des commandes ‫( ݀_ݏ݅ݎݐ_ݐ݁ݏ‬0‫)݂݂ݔ‬
et ‫( ݀_ݏ݅ݎݐ_ݐ݁ݏ‬0‫ݔ‬00) qui permettront respectivement de placer au début le port D (port parallèle)
en entrée afin de lire la donnée et de placer à la fin le port D en sortie (paramétrage d’écriture par
défaut). ‫_ݐݑ݌ݐݑ݋‬ℎ݅݃ℎ( ) permet de mettre la sortie entre parenthèses au niveau haut et
‫ ) (ݓ݋݈_ݐݑ݌ݐݑ݋‬permet de la mettre au niveau bas.
Envoi de commande
La seconde notion importante à la compréhension totale de la fonction d’initialisation est
l’ « envoi de commande ». Afin de configurer l’afficheur selon les besoins que l’on a, il existe une
table où sont répertoriées les différentes commandes. Nous y retrouverons le code à envoyer et
également, si besoin, le type de donnée que l’on doit lui associer :
Figure 16 : Tableau des commandes
Afin d’alléger les fonctions d’envoie de commandes ou de données, une fonction général
d’envoi d’octet qui prendra en entrée le type d’octet (commande=1 ou donnée=0) et la valeur de cet
octet est montrée sur l’exemple suivant :
Adrien BOULAMOY
Page 11
Note d’application
LCD graphique Cristalfontz GFAG24054A
Remarque : Certaines commandes du tableau (Figure 17 : Tableau des commandes) requièrent l’envoi
d’une donnée sur 8 ou 16 bits spécifique à la commande. Dans ces cas là, l’envoi de commandes
nécessite le suivi rigoureux d’algorithmes :
Figure 18 : Algorithme d'envoi de commande
De là, seront fonder les différentes fonctions d’envoi de commande selon le type de
commandes utilisées.
Commande simple sans donnée associée :
Commande avec donnée de 8bits associée :
Commande avec donnée de 16bits associée :
Adrien BOULAMOY
Page 12
Note d’application
LCD graphique Cristalfontz GFAG24054A
Maintenant que toutes les notions essentielles sont introduites, nous allons pouvoir prendre
connaissance de la fonction d’initialisation appelée « ‫» )( ܶܫܰܫ_ܦܥܮ‬. Celle-ci permettra juste
l’initialisation du microcontrôleur, l’effacement de l’écran et de se placer un mode texte par l’envoi
des différentes commandes telles que se placer à l’adresse de la zone texte, signaler le nombre de
colonne et également envoyer le signal de mise en marche.
Il nous reste un dernier détail auquel nous n’avons pas fait illusion. La fonction d’effacement
de l’écran appelée « ‫ » )( ݎ݈ܽ݁ܿ_ܦܥܮ‬sera réalisée par une fonction dans laquelle il faut se placer en
mode auto-écriture. Une boucle « for » permettra d’écrire la même valeur sur un nombre
d’itérations souhaité. Nous écrirons alors « un blanc », dont le code est de 0x00, 240 fois. En effet,
notre afficheur est configuré sur 8 lignes et 30 colonnes ce qui nous donne 240 cases. Nous
obtenons alors la fonction suivante :
b. Affichage de caractères
Lorsque la configuration de l’afficheur est faite, nous en viendrons à la partie qui est la plus à
même de nous intéresser puisque c’est l’affichage proprement dit de caractères. Pour cela, la
fonction « ‫ » ) (݁ݐݕܾ_ݎݓ‬précédemment introduite sera utilisée. Nous devrons alors lui rentrer en
paramètres le caractère appelé « data » et 0 pour le paramètre « com » qui indiquera que l’on travail
en mode « donnée ».
Cette fonction permettra alors l’affichage simple d’un caractère mais un problème se posera
lorsque nous souhaiterons faire l’affichage d’une chaine de caractères. En effet, si aucune opération
n’est faite entre l’affichage de deux caractères, le second sera écris sur le premier. Afin de résoudre,
Adrien BOULAMOY
Page 13
Note d’application
LCD graphique Cristalfontz GFAG24054A
cet inconvénient majeur, nous avons créé une fonction « ‫ » ) (ܽݐܽ݀ݎݓ‬qui réaliser l’affichage du
caractère mais également une commande (0xC0) permettant l’auto-incrément du pointeur :
Cette fonction nous facilitera l’écriture de chaine de caractères pour laquelle une fonction est
aussi existante.
Remarque : Les codes correspondants aux caractères standards sont les codes ascii auxquels nous
devons enlever 0x20. Nous retrouvons d’ailleurs dans le tableau suivant les différents codes des
caractères standards :
Figure 19 : Tableau de codes des caractères
Adrien BOULAMOY
Page 14
Note d’application
LCD graphique Cristalfontz GFAG24054A
c. Fonctions supplémentaires
Deux fonctions supplémentaires pouvant être d’une grande utilité sont également
présentées dans cette application note.
La première fonction consistera à permettre de se placer sur la case désirée de l’afficheur.
La fonction prendra en paramètres le numéro de ligne et le numéro de colonne sachant que
l’afficheur comprendra 8 lignes et 30 colonnes. Un calcul permettra d’obtenir l’adresse sur laquelle le
pointeur de case devra se situer. Un envoi de commande sera par la suite envoyer au LCD pour qu’il
repositionne le pointeur à la bonne localisation. Nous obtiendrons alors la fonction suivante :
La seconde permettra l’effacement d’une ligne entière de l’afficheur. Elle prendra en
paramètre le numéro de ligne à considérer. Nous nous placerons donc sur la première case de la
ligne grâce à la fonction précédente. Puis, pendant 30 itérations (nombre de colonnes par ligne),
nous écrirons une case vide. La fonction qui en découle est la suivante :
d. Exemple de fonction principale
Pour finir, vous trouverez ci-dessous un exemple de fonction principale qui vous permettra de
voir de plus prêt comment sont utiliser les fonctions précédemment développée. Ce court
programme permettra d’afficheur la lettre ‘B’ sur la première case de l’écran (en haut, à gauche) et
de faire clignoter le mot toute les 2 secondes sur la seconde ligne.
Adrien BOULAMOY
Page 15

Documents pareils