Bonjour,
oui je sais c'est la version fran=E7aise de ce que je viens d'envoyer sur comp.arch.embedded mais je m'aper=E7ois qu'en =E9crivant, =E7a met les id=E9es au clair et me fait aussi avancer.
Donc voil=E0 : dans le pass=E9, j'ai eu =E0 connecter des modules alphanum=E9riques =E0 des PICs (par exemple) et =E7a risque de recommencer (j'esp=E8re avec YASEP). J'ai donc amass=E9 une petite collection de LCD standards chin=E9s =E0 droit et =E0 gauche, avec des r=E9solutions de 1 =E0 8 lignes, de 8 =E0 40 caract=E8res.
A chaque fois qu'un nouveau module est essay=E9, au moins la r=E9solution change, et il faut recompiler le logiciel du CPU. Ce qui n'est pas tr=E8s pratique par exemple si je livrais un projet =E0 un client, et que ce dernier d=E9sirait dans le futur changer de r=E9solution (c'est une hypoth=E8se).
Dans ce cas on ajoute sur le circuit imprim=E9 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'id=E9e brouillon) que ce n'=E9tait pas n=E9cessaire et que quelques r=E9sistances de pull-up et pull-down (>100K) soud=E9s sur le LCD lui-m=EAme font tout simplement l'affaire.
En effet, ces modules sont souvent utilis=E9s en "mode nibble" (4 bits de donn=E9es) avec la broche d'=E9criture c=E2bl=E9e en =E9critur= e (donc le module LCD n'=E9crit jamais sur le bus). Et avec 4 bits on peut encoder quasiment toutes les r=E9solutions 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 d=E9marrage, le CPU met le bus en lecture, lit les 4 bits et d=E9tecte si la combinaison est correcte (si le LCD est absent ou non-"patch=E9"). Ensuite les routines d'affichage sont mises =E0 jour avec le bon nombre de lignes et de caract=E8res, avec une valeur de 1x8 si erreur.
L=E0 o=F9 je commence un peu =E0 douter, c'est que je me souviens d'avoir trouv=E9 des courants de fuite ou des r=E9sistances de tirage lors de mes exp=E9rimentations. J'avais mis des petites LEDs rouges =E0 tr=E8s haut rendement, avec une forte r=E9sistance, sur le bus de donn=E9e, 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'exp=E9riences =E0 ce sujet ? Est-ce que =E7a vaut la peine que je "patche" ma collection de modules pour tester ce syst=E8me, ou bien c'est vou=E9 directement =E0 l'=E9chec en raison de param=E8tres que j'aurais oubli=E9 ?
YG
--=20