autodétection de la résolution d'un LCD type HD44780

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From French to

Threaded View
Bonjour,

oui je sais c'est la version franE7%aise de ce que je viens
d'envoyer sur comp.arch.embedded mais je m'aperE7%ois qu'en
E9%crivant, E7%a met les idE9%es au clair et me fait aussi avancer.


Donc voilE0% : dans le passE9%, j'ai eu E0% connecter des modules
alphanumE9%riques E0% des PICs (par exemple) et E7%a risque de
recommencer (j'espE8%re avec YASEP). J'ai donc amassE9% une
petite collection de LCD standards chinE9%s E0% droit et E0% gauche,
avec des rE9%solutions de 1 E0% 8 lignes, de 8 E0% 40 caractE8%res.

A chaque fois qu'un nouveau module est essayE9%, au moins
la rE9%solution change, et il faut recompiler le logiciel du CPU.
Ce qui n'est pas trE8%s pratique par exemple si je livrais un
projet E0% un client, et que ce dernier dE9%sirait dans le futur
changer de rE9%solution (c'est une hypothE8%se).

Dans ce cas on ajoute sur le circuit imprimE9% un ou des jumpers,
ou des pads de soudure, ou d'autres trucs qui prennent des
broches pour rien.


Je me suis dit (il y a E0% peine qqs heures donc c'est tout frais
et pardonnez-moi l'idE9%e brouillon) que ce n'E9%tait pas nE9%cessaire
et que quelques rE9%sistances de pull-up et pull-down (>100K)
soudE9%s sur le LCD lui-mEA%me font tout simplement l'affaire.

En effet, ces modules sont souvent utilisE9%s en "mode nibble"
(4 bits de donnE9%es) avec la broche d'E9%criture cE2%blE9%e en E9%critur=
e
(donc le module LCD n'E9%crit jamais sur le bus). Et avec 4 bits
on peut encoder quasiment toutes les rE9%solutions trouvables :

bits 4 & 5 : car/ligne :
      0   0   8
      1   0   16
      0   1   20
      1   1   40 ?

bits 6 & 7 : lignes :
      0   0   1
      1   0   2
      0   1   4
      1   1   erreur ?

Donc au moment du dE9%marrage, le CPU met le bus en lecture,
lit les 4 bits et dE9%tecte si la combinaison est correcte
(si le LCD est absent ou non-"patchE9%"). Ensuite les routines
d'affichage sont mises E0% jour avec le bon nombre de lignes
et de caractE8%res, avec une valeur de 1x8 si erreur.

LE0% oF9% je commence un peu E0% douter, c'est que je me souviens
d'avoir trouvE9% des courants de fuite ou des rE9%sistances
de tirage lors de mes expE9%rimentations. J'avais mis des
petites LEDs rouges E0% trE8%s haut rendement, avec une forte
rE9%sistance, sur le bus de donnE9%e, et elles s'allumaient
parfois (sans que le CPU le demande) mais je ne me souviens plus
dans quelles conditions.


Quelqu'un pourrait donner plus d'infos et d'autres retours
d'expE9%riences E0% ce sujet ? Est-ce que E7%a vaut la peine que je
"patche" ma collection de modules pour tester ce systE8%me,
ou bien c'est vouE9% directement E0% l'E9%chec en raison de paramE8%tres
que j'aurais oubliE9% ?

YG
--20%
http://ygdes.com / http://yasep.org

Re: autodétection de la résolution d' un LCD type HD44780
whygee a écrit :
Quoted text here. Click to load it


L'idée est très intéressante.

la datasheet du hd44780 parle de pull-up resistances sur les fils de
data et de contrôle qui génèrent un courant de 125uA, donc 40kohms vers
le plus.

pour mettre des pull-down efficaces, il te faut mettre du 22k ou du 10k.

JJ

Re: autodétection de la résolution d' un LCD type HD44780
Quoted text here. Click to load it
<snip>
Quoted text here. Click to load it
cool :-)

Quoted text here. Click to load it
ah, j'avais donc bien oubliE9% un dE9%tail.
c'est dingue d'arriver E0% alimenter une LED avec 125uA :-)

Quoted text here. Click to load it
effectivement. selon la tension, E7%a va faire des fuites de courant.
pour les montages E0% E9%conomie d'E9%nergie, E7%a peut EA%tre un souci.
Cependant, s'il y a dE9%jE0% des pull-ups, E7%a simplifie tout :-)
d'abord pour dE9%tecter si les rE9%sistances de config sont lE0%
(on lit 1111), et aussi pour rE9%duire le nombre de rE9%sistances
(on met juste celles vers 0V).

Bonne nuit,

Quoted text here. Click to load it
YG
[qui a encore 10 PCB E0% construire pour demain ;-)]

--20%
http://ygdes.com / http://yasep.org

Re: autodétection de la résolution d' un LCD type HD44780
Quoted text here. Click to load it
d'aprE8%s mes calculs pour un systE8%me compatible 3,3V,
il faut une rE9%sistance infE9%rieure E0% 8Kohms.
Je vais voir si j'ai des CMS en 7,5K.

Aussi, afin de rE9%duire la consommation, j'ai commencE9% E0% faire une
table des combinaisons pour que les rE9%solutions les plus courantes
nE9%cessitent le moins de rE9%sistances.

valeur  bits 4-7    fonction
   0     "0000" :  RE9%servE9% (extension, lire bits 0 E0% 3 ?)
   1     "1000" :  4x16
   2     "0100" :  4x40
   3     "1100" :  1x20
   4     "0010" :  RE9%servE9% (configuration alternative d'une rE9%solut=
ion)
   5     "1010" :  1x40
   6     "0110" :  2x24
   7     "1110" :  4x20
   8     "0001" :  RE9%servE9% (configuration alternative d'une rE9%solut=
ion)
   9     "1001" :  2x8
  10     "0101" :  2x32
  11     "1101" :  2x20
  12     "0011" :  2x40
  13     "1011" :  2x16
  14     "0111" :  1x16
  15     "1111" :  1x8 / LCD absent

chaque '0' correspond donc E0% 1 rE9%sistance.

J'E9%cris actuellement un document qui fait le point sur tout E7%a,
je le mettrai en ligne dans les prochains jours.

Quoted text here. Click to load it
YG

--20%
http://ygdes.com / http://yasep.org

Re: autodétection de la résolution d' un LCD type HD44780
Quoted text here. Click to load it
sitodisitofE9% :
http://yasep.org/~whygee/RFCpulldownLCD.html

Quoted text here. Click to load it
YG encore
--20%
http://ygdes.com / http://yasep.org

Re: autodétection de la résolution d'un LCD type HD44780
Quoted text here. Click to load it

Bonjour,
Bravo, merci pour ton efficacité !
Bonne nuit ?!
henry



Re: autodétection de la résolution d'un LCD type HD44780
Quoted text here. Click to load it

Bel effort, mais j'ai deux petites remarques:
- dans le "summary" tu devrais preciser l'ordre car il est a l'envers de
l'usage ( poids faible a droite, forts a gauche) . exemple en lisant 1000,
pour moi par défaut c'est 8 et pas 1.
- il y a une erreur dans la liste precedente ce summary: le 1x20 apparait
deux fois (1100 et 1011) et le 2x16 n'y est pas. Je pense que c'est , selon
le summary 1011.

Sinon bon boulot.


--

Alain



Re: autodétection de la résolution d' un LCD type HD44780
Quoted text here. Click to load it
effectivement.

E7%a m'apprendra E0% faire ce genre de trucs E0% des heures innommables.

Quoted text here. Click to load it
ouais, mais va surtout falloir
le faire marcher un de ces jours :-)

merci pour les corrections,
YG
--20%
http://ygdes.com / http://yasep.org

Site Timeline