A propos des petits écran lcd

A propos des petits écran lcd - Overclocking, Cooling & Modding

Marsh Posté le 20-11-2006 à 00:49:10    

Bonjour, j'ai acheté récement un petit module lcd 4*20 caractères. Ce derniere ne semble pas marcher.
J'ai branché les 2 pins d'alimentations (5v, masse) et également la Vll pour régler le contraste. J'ai également branché les backlights,
les 3 pins RS, RW et Enable, et fait un branchements en 4 bits (je crois que ca s'appele comme ça) pour les pins DB4, DB5, DB6 et DB7 du module.
Voici le schéma utilisé :
http://paracyber.org/other/shema.PNG
A l'allumache, l'éclairage marche, et la selection du contraste via le potar également, mais après rien de plus :
*) d'une part, j'ai seulement une ligne sur 2 qui réagit au contraste : je m'explique, si je met le contraste au maximum j'aurai :  
####################
 
####################
 
Les différents pixels des lignes 2 et 4 n'interagissent pas on dirait. Est ce normal au démarrage ?
 
*) Seconde chose, quoique je fasse, je n'arrive à avoir aucun affichage sur le lcd. Je précise que j'utilise lcd4linux avec une config de ce genre concernant le display :
 
Display HD44780-gpio {
    Driver 'HD44780'
    Model 'generic'
    Port '/dev/gpio0'
    Device '70'
    Size '20x4'
    Bits '4'
    #asc255bug 0
    Icons 1
    Wire {
        RW      'DB5'
        RS      'DB4'
        ENABLE  'DB6'
        GPO     'GND'
    }
}
 
La connexion se fait par des ports GPIO, qui semblent marché, car l'état des pins gpio changent bien, mais rien sur le module :(
Voilà les logs de lcd4linux :
plugin_cfg.c: Variable minute = '60000' (60000)
plugin_cfg.c: Variable tack = '100' (100)
plugin_cfg.c: Variable tick = '500' (500)
lcd4linux.c: initializing driver HD44780
HD44780: using model 'generic'
HD44780: using parallel port
HD44780: using 1 Controller(s)
HD44780: using 4 bit mode
udelay: CPU supports Time Stamp Counter
udelay: CPU runs at 266.655000 MHz
udelay: using TSC delay loop, 267 ticks per microsecond
HD44780: using ppdev /dev/gpio0
HD44780: wiring: [DISPLAY:RS]<==>[PARPORT:DB4 (Pin 6)]
HD44780: wiring: [DISPLAY:RW]<==>[PARPORT:DB5 (Pin 7)]
HD44780: wiring: [DISPLAY:ENABLE]<==>[PARPORT:DB6 (Pin 8)]
HD44780: wiring: [DISPLAY:ENABLE2]<==>[PARPORT:GND]
HD44780: wiring: [DISPLAY:ENABLE3]<==>[PARPORT:GND]
HD44780: wiring: [DISPLAY:ENABLE4]<==>[PARPORT:GND]
HD44780: wiring: [DISPLAY:BACKLIGHT]<==>[PARPORT:GND]
HD44780: wiring: [DISPLAY:GPO]<==>[PARPORT:GND]
HD44780: not using busy-flag checking
HD44780: reserving 1 of 8 user-defined characters for icons
initializing layout 'Test'
lcd4linux.c: starting main loop
 
 
Je précise que je suis une quiche en elec, donc même si je pense que le branchement est bon, je suis déjà surpris qu'une seule ligne sur 2 soit contrasté. Si quelqu'un a une quelconque expérience à propos de ce genre de module, je veux bien. Voici la datasheet du module :
http://www.lextronic.fr/ODT/20x4/20416B.zip
 
Merci à tous pour votre aide

Reply

Marsh Posté le 20-11-2006 à 00:49:10   

Reply

Marsh Posté le 20-11-2006 à 01:16:13    

En fait, pour etre sur que c'est pas mes branchements qui merdent (ou que j'ai pas grillé de je ne sais quel facon l'écran, ou 2 lignes ...)
je voudrais faire un test tout simple. Etant donné que je peux controller chacune des pins d'entrée, j'aimerai qu'on me donne  les instructions en binaire pour afficher un simpole caractère en haut à gauche.
Par exemple pour afficher la lettre 1 en premier ligne, premiere position, sachant que toute les pins d'entrée sont en position 0, quelles sont les instructions exaxctes ? (je sais que c'est noté dans le paragraphe 11, instructions set, du pdf noté plus haut, mais bon, ca ne m'aide pas trop vu que je suis en 4 bits ... )


Message édité par Paracyber__ le 20-11-2006 à 01:18:34
Reply

Marsh Posté le 20-11-2006 à 15:42:12    

hello,
sur ce genre d'afficheurs, lorsque tu a la moitié qui est noire quand il est sous tension mais sans données, ca veut dire que tu l'as correctement alimenté et qu'il n'est pas grillé. :)
 
tu peux essayer de le brancher sous windows avec winamplcd qui peut marcher en 4bits.
 
mais sous linux...


---------------
Why not ?
Reply

Marsh Posté le 20-11-2006 à 19:03:42    

Merci d'abord pour ta réponse.
C'est donc un probleme de configuration semble t il ... (j'ai revérifié plusieurs fois mes branchements)
Malheuresement je ne peux pas le faire tourner sous windows, le matériel que j'utilise ne le supporte pas, et les branchements physique ne sont pas standards (c'est pas mis sur un port série ou //) mais raccordé à des pins spécifiques du matériel.
Est ce que quelqu'un a un lien qui décrirai précicément les données à envoyer en 4bits, de l'initialisation (séquence des bits à activer/désactiver) suivi d'un essai d'envoi d'une lettre sur le module?
Merci pour toutes les aides et liens que vous pourriez m'indiquer.

Reply

Marsh Posté le 20-11-2006 à 19:21:46    

Le controleur de ton écran est un Hitachi HD44780. Il est hyper connu.
En effet y'a une séquence à respecter pour l'initialiser, va voir le datasheet du controleur :  http://www.sparkfun.com/datasheets/LCD/HD44780.pdf(mais t'aurais plus vite fait de trouver un prog tout fait pour l'interfacer ;))


---------------
iteme.free.fr | Mon feedback
Reply

Marsh Posté le 21-11-2006 à 13:13:30    

ITM -> Oui je sais merci. Dans mon premier post, c'est bien le driver que j'utilise. Cependant, j'ai aucun affichage. Je pense que mes branchements physique sont bons, il doit donc y avoir un probleme de configuration avec le prog que j'utilise, mais je vois pas.
C'est bien pour cela que je demande la sequence exact en mode 4 bits, et n'étant pas electronicien à la base j'ai un peu de mal.
DAns le pdf que tu me donnes, ca se trouve à la page 42 semble t il.
J'ai essayé cette sequence, et je n'ai tjs rien. Mais surement que je fais mal le machin aussi :
A la base, j'ai mis toute les pins à 0.  
Puis j'ai poursuivi avec la step 2 : 000010
Apres la step 3, je comprends pas, que signifie les 2 *, que faut il mettre ?

Reply

Marsh Posté le 23-11-2006 à 11:09:49    

up

Reply

Marsh Posté le 24-12-2006 à 11:27:13    

Paracyber__ a écrit :

.../...
A la base, j'ai mis toute les pins à 0.  
Puis j'ai poursuivi avec la step 2 : 000010
Apres la step 3, je comprends pas, que signifie les 2 *, que faut il mettre ?

Salut,
Comme cela est spécifié sur la page 42, tu dois d’abord positionner ton affichage en mode 4 bits :  
step 2=>RS=0 R/W=0 DB7=0 DB6 =0 DB5 =1 DB4=0 (si tu mets tous les bits à 0, tu n’es plus en "Function Set" ).
Ensuite :
Step 3=>RS=0 R/W=0 DB7=0 DB6 =0 DB5 =1 DB4=0 puis pour la séquence des bits de poids faible
Step 3 bis=> RS=0 R/W=0 DB3=0 DB2 =0 DB1 =* DB0=* (les astérisques signifiants que les bits concernés seront indifféremment 0 ou 1)
Voir la table 6 page 24 et 25 pour la position, la signification et l’état des instructions.
Décodage :
Step 2 pour forcer le positionnement en mode 4 bits:
RS=0 => sélection des registres d’instruction.
R/W=0 =>Ecriture.
DB5=1 =>instruction "Function Set".
DB4=0 =>DL (data length) = mode 4 bits.
Step 3 pour les bits de poids fort (obligatoire même si cette séquence est identique à la précedente) :
RS=0 => sélection des registres d’instruction.
R/W=0 =>Ecriture dans les registres.
DB5=1 => instruction "Function Set".
DB4=0 =>DL (data length) = mode 4 bits.
Step 3 bis pour les bits de poids faible :
RS=0 => sélection des registres d’instruction.
R/W=0 =>Ecriture.
DB3=0 =>N (Nombre de lignes affichées) = 1 ligne. Si tu mets ce bit à 1 l’affichage se fera sur 2 lignes.
DB2=0 =>F (affichage de la matrice de points ou Fonte de caractères) = 5X8 points.
Si tu as compris la procédure, tu dois pouvoir expliquer pour le "step 4" pourquoi DB3(contrôle d’affichage) est à 1, DB2(Display) est à 1, DB1(Cursor) est à 1 et DB0 (Blinking) est à 0 ? Et ainsi de suite pour les autres steps.
Ce qui est dommage, c’est de ne pas utiliser le BF (Busy Flag=drapeau d’attente) pour synchroniser le transfert des données !


---------------
« Quand un doigt montre le ciel, l'étourdi regarde le doigt ... »
Reply

Marsh Posté le 25-12-2006 à 01:15:35    

et pour un lcd graphique ?

Reply

Marsh Posté le 27-12-2006 à 23:49:44    

lepirlouit a écrit :

et pour un lcd graphique ?

Si c’est un "GDM12864A LCM" ou équivalent (128x64 points MC à RE vert) , tu peux trouver ici son datasheet.


---------------
« Quand un doigt montre le ciel, l'étourdi regarde le doigt ... »
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed