MSP430 Gesion d'un LCD muliplexé MSP 430 Gesion d'un LCD muliplexé La famille de microconroleurs MSP430x4xxx inègre un piloe (driver) d'afficheur à crisaux liquides. Ceux-ci peuven êre à commande direce ou muliplexé aux rappors ½, ⅓ ou ¼. La echnologie des crisaux liquides e les principes de foncionnemen de ces piloes son expliqués les documens "Afficheur_LCD.pdf" e "Eval_LCD1.pdf". Le piloe du MSP430 es décri en déail dans le documen "Slau056.pdf", pages 16.1 à 16.22 Le nombre de segmens élémenaires maximum de l'afficheur peu êre de 96, 128 ou 160 suivan le modèle de microconroleur choisi. Le nombre de broches es évidemmen en conséquence. Le piloe es enièremen "hardware". Les âches du logiciel implané dans le microconroleur se limien à : La configuraion du piloe : ype de commande (direce ou muliplexée), fréquence de rafraîchissemen, Cee opéraion n'es réalisée qu'une seule fois, pendan la phase des iniialisaions. Affecer la mémoire des éas des segmens du LCD dès qu'une nouvelle informaion doi êre affichée. Le microconroleur possède une mémoire RAM dédiée à l'afficheur don chaque bi indique l'éa du segmen : visible ou invisible (les expressions "allumés", "éeins" ne conviennen pas à des LCD). La echnologie d'affichage LCD es parfaiemen adapée aux microconroleurs de la famille MSP430 du fai de leur rès faible consommaion. Le couple LCD/MSP430 perme donc la réalisaion d'appareils alimenés par pile ayan une rès grande auonomie (calculees par exemple). BTS élecronique CREMMEL Marcel Lycée Couffignal Page 1/14
MSP430 Gesion d'un LCD muliplexé 1. Piloe LCD On idenifie les élémens suivans : 1.1 Display memory 20x 8 bis : MAB Il s'agi de la mémoire d'affichage. Chacun de ses 160 bis indique l'éa du segmen associé ("1" si visible e "0" si invisible). Cee RAM es placée aux adresses 91h à 0A4h de l'espace mémoire du MSP430 e peu êre affecée ou lue par des insrucions de ype "mov.b". 1.2 Ensemble de muliplexeurs à 4 enrées e une sorie Suivan le rappor de muliplexage choisi (direc, ½, ⅓ ou ¼), chaque signal SEGx (SEG0 à SEG39) prend l'éa de 1, 2, 3 ou 4 segmens prélevés dans la mémoire d'affichage par muliplexage emporel de même rappor. BTS élecronique CREMMEL Marcel Lycée Couffignal Page 2/14
1.2.1 Exemple avec une commande direce MSP430 Gesion d'un LCD muliplexé Digi 4 Digi 3 Digi 2 Digi 1 Liaisons bis mémoires LCDMEM SEG0 à SEG31 Ce afficheur compore donc : Une élecrode commune : COM (ou BP) 32 élecrodes connecées à chaque segmen (7 + 1 par digi) : (a1,, h1) à (a4,, h4) 0A0h Bi 7 6 5 4 h4 3 g4 SEG31 SEG30 09Fh f4 e4 SEG29 SEG28 09Eh d4 c4 SEG27 Mémoire d'affichage LCDMEM 09Dh 094h 093h b4 h1 f1 a4 g1 e1 SEG26 SEG25 SEG24 SEG7 SEG6 SEG5 SEG4 092h d1 c1 SEG3 SEG2 091h b1 a1 SEG1 SEG0 Les muliplexeurs 4 1 de la figure page 2 son représenés en liaisons. e son dans ce mode de simples BTS élecronique CREMMEL Marcel Lycée Couffignal Page 3/14
MSP430 Gesion d'un LCD muliplexé 1.2.2 Exemple avec afficheur muliplexé ⅓ Ce afficheur compore donc : 3 élecrodes communes : COM0, COM1 e COM2 10x(7+2)=90 segmens muliplexés sur 30 broches (90/3) S0 à S29. Muliplexage des segmens COM0 H10 D10 E10 H9 D9 E9 H8 D8 E8 H7 D7 E7 H6 D6 E6 COM1 C10 G10 F10 C9 G9 F9 C8 G8 F8 C7 G7 F7 C6 G6 F6 COM2 B10 A10 Y10 B9 A9 Y9 B8 A8 Y8 B7 A7 Y7 B6 A6 Y6 S29 S28 S27 S26 S25 S24 S23 S22 S21 S20 S19 S18 S17 S16 S15 COM0 H5 D5 E5 H4 D4 E4 H3 D3 E3 H2 D2 E2 H1 D1 E1 COM1 C5 G5 F5 C4 G4 F4 C3 G3 F3 C2 G2 F2 C1 G1 F1 COM2 B5 A5 Y5 B4 A4 Y4 B3 A3 Y3 B2 A2 Y2 B1 A1 Y1 S14 S13 S12 S11 S10 S9 S8 S7 S6 S5 S4 S3 Noe : si les segmens n'éaien pas muliplexés, l'afficheur aurai 91 broches! S2 S1 S0 BTS élecronique CREMMEL Marcel Lycée Couffignal Page 4/14
MSP430 Gesion d'un LCD muliplexé Liaisons bis mémoires LCDMEM SEG0 à SEG29 09Fh Bi 7 6 5 4 3 a10 g10 d10 y10 f10 e10 SEG29 2 1 0 SEG28 09Eh b10 c10 h10 a9 g9 d9 SEG27 2 1 0 SEG26 09Dh y9 f9 e9 b9 c9 h9 SEG25 Mémoire d'affichage LCDMEM 09Ch 094h 093h a8 g8 d8 y8 f8 e8 a3 g3 d3 y3 f3 e3 b2 c2 h2 a2 g2 d2 SEG24 SEG23 SEG22 SEG7 SEG6 SEG5 SEG4 092h y2 f2 e2 b1 c1 h1 SEG3 2 1 0 SEG2 091h a1 g1 d1 y1 f1 e1 SEG1 SEG0 2 COM 1 0 Le piloe LCD du MSP430 produi les signaux S0 à S29 nécessaires à l'afficheur à parir des signaux inernes SEG0 à SEG29 (voir 1.3 plus loin). Chacun des signaux SEGx es le résula du muliplexage emporel de rappor 1/3 des segmens associés comme le monre la figure de la page suivane. Les muliplexeurs 4 1 de la figure page 2 son représenés en mais n'uilisen ici que 3 enrées. Ces muliplexeurs son ous commandés par un seul compeur modulo 3 (compage de 0 à 2) de façon à ce que leurs sories respecives prennen successivemen les éas des enrées "2", "1" e "0" (voir chronogrammes de SEG0 à SEG4 ci-après). BTS élecronique CREMMEL Marcel Lycée Couffignal Page 5/14
Exemples de chronogrammes : H COM0 acif MSP430 Gesion d'un LCD muliplexé SEG0 E1 F1 Y1 E1 F1 Y1 E1 SEG1 D1 SEG2 H1 SEG3 E2 SEG4 D2 COM1 acif COM2 acif COM0 acif COM1 acif COM2 acif COM0 acif COM1 acif COM2 acif G1 A1 D1 G1 A1 D1 G1 A1 C1 B1 H1 C1 B1 H1 C1 B1 F2 Y2 E2 F2 Y2 E2 F2 Y2 G2 A2 D2 G2 A2 D2 G2 A2 Noe : la fréquence du signal d'horloge H inerne es programmable grâce au Basic Timer1 (voir 2.2). 1.3 "Segmen Oupu Conrol" e "Common Oupu Conrol" Ces foncions produisen les signaux Sx e COMx à appliquer aux segmens. Elles uilisen pour cela les signaux SEGx, l'horloge inerne H de rappor cyclique ½ e les ensions VA à VD fournies par la foncion "Analog Volage Muliplexer". Ces ensions son fixées par un jeu de résisances exernes (voir figure 2 e 1.4). 1.3.1 Exemple avec une commande direce Le raiemen es rès simple dans ce mode : Si SEGx = "0" (segmen invisible) Sx = H, niveaux : V1 e V5 Si SEGx = "1" (segmen visible) Sx = H, niveaux : V1 e V5 COM0 = H, niveaux : V1 e V5 (les aures signaux COMx ne son pas uilisés). La ension d'exciaion de chaque segmen es alors : V SEGx = Sx COM0 Noe : normalemen V1=Vcc e V5=Vss=0V dans ce mode. On produi ainsi les chronogrammes ypiques de la commande direce (voir documens ressources) : Segmen invisible : ension différenielle efficace appliquée : 0V (V SEG = 0V car Sx = COM0) Segmen invisible : ension différenielle efficace appliquée : V1-V5 (V SEG es un signal alernaif carré de rappor cyclique ½ e d'ampliude V1-V5). En permanence : ension différenielle moyenne appliquée : 0V (le rappor cycle de H es ½) 1.3.2 Exemple avec afficheur muliplexé ⅓ Les signaux Sx son produis avec les règles suivanes : Pendan chaque phase du muliplexage (COM0, COM1 e COM2) : Si SEGx = "0" (segmen associé invisible) niveaux sur Sn : V2 e V4 en phase avec H Si SEGx = "1" (segmen associé visible) niveaux sur Sn : V1 e V5 en opposiion de phase avec H Les signaux COM0 à COM2 son périodiques e conformes aux chronogrammes ci-dessous. A ire d'exemple, on représene ici le signal SEG0 qui es le résula du muliplexage des éas des segmens E1, F1 e Y1 (voir 1.1.2). On a aussi choisi les segmens E1 e Y1 visibles (éa "1") e le segmen F1 invisible (éa "0"). Par ailleurs, pour un muliplexage ⅓, on fixe généralemen : V5 = Vss = 0V V4 = ⅓ Vcc V2 = ⅔ Vcc V1 = Vcc BTS élecronique CREMMEL Marcel Lycée Couffignal Page 6/14 F1 Y1
MSP430 Gesion d'un LCD muliplexé COM0 COM1 COM2 COM0 COM1 COM2 COM0 COM1 COM2 acif acif acif acif acif acif acif acif acif H V1 V2 V4 V5 COM0 V1 V2 V4 V5 COM1 Invariable V1 V2 V4 V5 COM2 SEG0 E1 F1 Y1 E1 F1 Y1 E1 F1 Y1 V1 V2 V4 V5 S0 V1 V2 V4 V5 -V5 -V4 -V2 -V1 S0 - COM0 = VE1 : ension d'exciaion segmen E1 V1 V2 V4 V5 -V5 -V4 -V2 -V1 S0 - COM1 = VF1 : ension d'exciaion segmen F1 Le signal S0 représené respece les règles énoncées. On dédui de S0 e COM0, les ensions différenielles d'alimenaion des segmens E1 e F1. On calcule : 2 2 2 2 2 2 Vcc 3 3 VE1efficace 0,638.Vcc 3 6 V E1moyen 0V Vcc VF1efficace 3 V F1moyen 0V 2 2 2 2 2 2 0,333.Vcc 6 La caracérisique du conrase de l'afficheur uilisé doi êre compaible avec ces valeurs suivan la ension d'alimenaion uilisée (voir documens ressources). BTS élecronique CREMMEL Marcel Lycée Couffignal Page 7/14
1.4 Analog Volage Muliplexer MSP430 Gesion d'un LCD muliplexé Associée aux résisances R exernes, cee foncion déermine les ensions V1, V2, V4 e V5 uilisées par les foncions "Segmen Oupu Conrol" e "Common Oupu Conrol" pour produire les signaux SEGx e COMx appliqués aux élecrodes des LCD. Les broches R33 e R03 ne son pas disponibles sur oues les versions de MSP430. Dans ce cas, V1 es fixée à Vcc e V5 à Vss de façon inerne. Quand ces broches son présenes, on profie de 2 avanages : R33 peu êre déconnecée de Vcc de façon inerne (swich ci-dessus). On peu ainsi annuler le couran consommé par le réseau de résisance quand l'afficheur n'es pas uilisé. R03 n'es pas relié de façon inerne à Vss. On peu ainsi ajuser la ension de base V5 de façon exerne pour opimiser le conrase de l'afficheur. Mais le plus souven, R03 es relié à Vss de façon exerne. Noe : le couran d'enrée des broches R03, R13 e R23 es de 20 na max. Le couran dans le pon de résisances doi êre choisi en conséquence. Noe : les broches R13, R23 e R33 son normalemen (au rese) des pors d'e/s convenionnels. Il fau donc affecer correcemen le regisre PxSEL concerné pour assurer un bon foncionnemen du LCD. BTS élecronique CREMMEL Marcel Lycée Couffignal Page 8/14
MSP430 Gesion d'un LCD muliplexé 2. Regisres de configuraion Il s'agi de fixer le mode de muliplexage, le nombre de segmens e la fréquence de muliplexage. 2.1 Regisre de conrôle LCDCTL LCDM0 : "0" Arrê du muliplexage e de l'horloge H Sx e COMx au niveau bas Ron = "0" "1" Muliplexage e horloge H acifs Sx e COMx opéraionnels Ron = "1" LCDM1 : Non uilisé LCDM2 à LCDM4 : mode de muliplexage Le bi LCDM2 es normalemen uilisé pour faire "clignoer" l'ensemble de l'afficheur. LCDM5 à LCDM7 : nombre de segmens Noe : les pors d'e/s associés aux signaux S0 à S39 son configurés pour ce usage dès l'affecaion de LCDM5 à LCDM7, prioriairemen aux regisres de direcion PxDIR ou de sélecion PxSEL. ATTENTION : ce n'es pas le cas des pors d'e/s associées aux signaux COMx pour lesquels il fau affecer en conséquence les regisres PxSEL. BTS élecronique CREMMEL Marcel Lycée Couffignal Page 9/14
MSP430 Gesion d'un LCD muliplexé 2.2 Fréquence de muliplexage Celle-ci es déerminée par des srucures du "Basic Timer1" qu'il es donc nécessaire de configurer. Le "Basic Timer1" du MSP430 compore un compeur 8 bis (BTCNT1) don une des sories Q4 à Q7 déermine la fréquence de muliplexage du LCD. L'horloge de ce compeur es ACLK, soi généralemen une fréquence de 32768Hz. Dans ces condiions, la fréquence f LCD peu êre choisie enre 128Hz (32768/256) e 2048Hz (32768/16). ATTENTION : la fréquence de l'horloge H es la moiié de f LCD. On en dédui les fréquences de "rames" (fréquence des signaux COMx) en foncion du muliplexage : Commande direce : f TRAME = f LCD / 2 2 MUX : f TRAME = f LCD / 4 3 MUX : f TRAME = f LCD / 6 4 MUX : f TRAME = f LCD / 8 Pour un bon confor visuel, on choisi généralemen f TRAME > 30 Hz. Touefois, une fréquence rop élevée augmene inuilemen la consommaion (les segmens se comporen comme des condensaeurs). Le bi "Hold" doi êre à "0" pour valider l'horloge du compeur. BTS élecronique CREMMEL Marcel Lycée Couffignal Page 10/14
MSP430 Gesion d'un LCD muliplexé 3. Exemple d'applicaion On uilise un MSP430F413 associé à un afficheur de 8 chiffres de 7 segmens (+ poin décimal + curseur) conçu pour le muliplexage de rappor ⅓ : VIM-838 du fabrican Varironics. Chiffre 8 AN DP Chiffre 1 Schéma élecrique équivalen COM0 8F 8A 8B 7F 7A 7B 6F 6A 6B 5F 5A 5B COM1 8E 8G 8C 7E 7G 7C 6E 6G 6C 5E 5G 5C COM2 8AN 8D 8DP 7AN 7D 7DP 6AN 6D 6DP 5AN 5D 5DP S23 S22 S21 S20 S19 S18 S17 S16 S15 S14 S13 S12 COM0 4F 4A 4B 3F 3A 3B 2F 2A 2B 1F 1A 1B COM1 4E 4G 4C 3E 3G 3C 2E 2G 2C 1E 1G 1C COM2 4AN 4D 4DP 3AN 3D 3DP 2AN 2D 2DP 1AN 1D 1DP S11 S10 S9 S8 S7 S6 S5 S4 S3 S2 S1 S0 BTS élecronique CREMMEL Marcel Lycée Couffignal Page 11/14
MSP430 Gesion d'un LCD muliplexé 3.1 Organisaion correspondane de la mémoire LCDMEM S N+1 COM 3 Digi Sx 3 Digi Sx Adr 9Fh 9Eh 9Dh 9Ch AN E F 8 S23 D G A 8 S22 9Bh DP C B 8 S21 AN E F 7 S20 9Ah D G A 7 S19 DP C B 7 S18 99h AN E F 6 S17 D G A 6 S16 98h DP C B 6 S15 AN E F 5 S14 97h D G A 5 S13 DP C B 5 S12 96h AN E F 4 S11 D G A 4 S10 95h DP C B 4 S9 AN E F 3 S8 94h D G A 3 S7 DP C B 3 S6 93h AN E F 2 S5 D G A 2 S4 92h DP C B 2 S3 AN E F 1 S2 91h D G A 1 S1 DP C B 1 S0 Bi 7 6 5 4 3 L'organisaion de la mémoire es un peu orurée. En effe, les éas des segmens d'un chiffre son mémorisés sur 2 adresses, don une es paragée avec le chiffre suivan! Cela complique un peu la âche du logiciel qui doi affecer correcemen cee mémoire à parir du code BCD de chaque chiffre. 3.2 Iniialisaion du piloe Il s'agi de configurer le piloe LCD e le "Basic Timer1" pour : Produire un muliplex de rappor ⅓, Sélecionner les segmens S0 à S23 Une fréquence de rame de 40Hz environ (horloge ACLK = 32768Hz) mov.b #00110000b,&bcl ;Basic imer: CLK2=ACLK/256,Flcd=32768/128=256Hz ; Frame = 256/6 = 43Hz ; Fin_BT=(ACLK/256)/2=64Hz mov.b #01110101b,&lcdcl ;MUX3 (COM0 à COM2) en 3 groupes (S0 à S23) mov.b #11101100b,&P5sel ;P5.2=COM1,P5.3=COM2,P5.5=R13,P5.6=R23,P5.7=R33 3.3 Variable associée à l'affichage La variable MESSAGE placée en RAM conien le nombre BCD de 8 chiffres à afficher. 3.3.1 Déclaraion de la variable MESSAGE * Variables en RAM ******************* ORG 0200h MESSAGE ds 8 ;8 chiffres BCD aux adresses 0200h à 0207h FIN_MESSAGE equ $ ;FIN_MESSAGE vau 0208h Suiven ici les déclaraions des aures variables. 3.3.2 Iniialisaion de la variable MESSAGE Il s'agi d'affecer les 8 chiffres du nombre avec la valeur 12345678 S N BTS élecronique CREMMEL Marcel Lycée Couffignal Page 12/14
MSP430 Gesion d'un LCD muliplexé mov #MESSAGE,R4 ; mov #0201h,0(R4) ; mov #0403h,2(R4) ; > (MESSAGE) <- 12345678 mov #0605h,4(R4) ; mov #0807h,6(R4) ;/ Noe : les affecaions en mode 16 bis placen dans la mémoire l'oce de poids faible avan le poids for. 3.4 Sous-programme d'exploiaion Il es évidemmen chargé d'affecer la mémoire d'affichage, le piloe LCD s'occupan de produire les signaux Sx e COMx conformes. Nom symbolique : RAF_LCD Foncion : Affecaion de la mémoire d'affichage à parir de la variable MESSAGE Les poins décimaux e les curseurs son "éeins" (invisibles) Paramère d'enrée :MESSAGE : variable de 8 oces en RAM. Conien le nombre de 8 chiffres BCD * RAF_LCD ********* * Foncion : rafraîchissemen du LCD avec le conenu de MESSAGE * MESSAGE conien les codes BCD des chiffres * Regisres uilisés : R4-R5-R12 RAF_LCD mov #0,R4 ;R4=index dans MESSAGE. On commence par le 1 chif clr R12 ;R12: index dans LCDMEM NEXT_DIG mov.b MESSAGE(R4),R5 ;R5 : code BCD du chiffre à afficher and #000fh,R5 ;Raz des 12 bis de poids for rla R5 ;Chaque élémen de TAB_7SEG es codé sur 16 b. mov TAB_7SEG(R5),R5 ;R5:code 7 seg. du chif. (00000xEF0DGA0xCB) mov.b R5,LCDMEM(R12) ;Chiffre de posiion n impaire : * Segmens (0DGA0xCB) placés dans MEMLCD+n-1 swpb R5 bic.b #0Fh,LCDMEM+1(R12) bis.b R5,LCDMEM+1(R12) ;Chiffre de posiion n impaire : * Segmens (----0xEF) placés dans MEMLCD+n mov.b MESSAGE+1(R4),R5 ;R5 : code BCD du chiffre à afficher and #000fh,R5 ;Raz des 12 bis de poids for rla R5 ;Chaque élémen de TAB_7SEG es codé sur 16 b. mov TAB_7SEG(R5),R5 ;R5=code 7 seg. du chif. (00000xEF0DGA0xCB) rla R5 rla R5 rla R5 rla R5 ;Code 7 seg. du chiffre (0xEF0DGA0xCB0000) bic.b #0F0h,LCDMEM+1(R12) bis.b R5,LCDMEM+1(R12) ;Chiffre de posiion n paire : * Segmens (0xCB----) placés ds MEMLCD+n-1 swpb R5 mov.b R5,LCDMEM+2(R12) ;Chiffre de posiion n paire : * Segmens (0xEF0DGA) placés ds MEMLCD+n add #2,R4 ;Pour poiner les 2 prochains digis add #3,R12 ;Pour poiner les 3 prochaines cases dans LCDMEM cmp #8,R4 ;Dernier chiffre? jne NEXT_DIG FIN_RAF_MES re BTS élecronique CREMMEL Marcel Lycée Couffignal Page 13/14
MSP430 Gesion d'un LCD muliplexé * Consanes pour connexions non croisées ***************************************** * Chiffres de posiions impaires (n=1,3,5 ou 7) : * Indices des bis ds LCDMEM+n-1 76543210 (LCDMEM=91h) * Indices des bis ds LCDMEM+n 76543210 * Segmens correspondans 00000xEF0DGA0xCB * Chiffres de posiions paires (n=2,4,6 ou 8) : * Indices des bis ds LCDMEM+n-1 7654 * Indices des bis ds LCDMEM+n 76543210 * Segmens correspondans 00000xEF0DGA0xCB * 00000xEF0DGA0xCB SA EQU 0000000000010000b SB EQU 0000000000000001b SC EQU 0000000000000010b SD EQU 0000000001000000b SE EQU 0000001000000000b SF EQU 0000000100000000b SG EQU 0000000000100000b TAB_7SEG DW SA+SB+SC+SD+SE+SF ;Chiffre 0 DW SB+SC ;Chiffre 1 DW SA+SB +SD+SE +SG ;Chiffre 2 DW SA+SB+SC+SD +SG ;Chiffre 3 DW SB+SC +SF+SG ;Chiffre 4 DW SA +SC+SD +SF+SG ;Chiffre 5 DW SA +SC+SD+SE+SF+SG ;Chiffre 6 DW SA+SB+SC ;Chiffre 7 DW SA+SB+SC+SD+SE+SF+SG ;Chiffre 8 DW SA+SB+SC+SD +SF+SG ;Chiffre 9 BTS élecronique CREMMEL Marcel Lycée Couffignal Page 14/14