|
Sujet: Afficheur LCD
|
| Auteur |
Message |
|
peroctet
3 messages
 De passage
|
28-03-2006 14:34
Bonjour à tous, Quel est le type d'afficheur utilisé sur la platine, et ou le trouver, j'ai beau essayer différents afficheurs à bas de circuit HD44780, et compatible pin à pin, il y en a pas un qui réagit.... Merci
|
|
YMasquel
2504 messages
 Expert
|
28-03-2006 15:01
Bonjour "peroctet", Est-ce que tu attends une réaction à la mise sous tension de la carte ? Si c'est le cas je pense que tu peux attendre longtemps car le contrôleur est vide de logiciel au démarrage. Si c'est en réponse à un programme que tu as créé ou récupéré que tu n'obtiens rien il faut vérifier le sens du brochage car il existe des afficheurs avec la broche 1 vers le bord du circuit et d'autres avec la broche 1 vers le centre du circuit "tout en étant compatible broche à broche". Amicalement, Yves.
|
|
R8C13master
87 messages
 Visiteur occasionnel
|
28-03-2006 16:52
Bonjour, Au vu du schéma et du brochage, l'afficheur utilisé est bien un "classique" 2 lignes de 16 caractères à base de HD44780 ou équivalent. Ceci étant, et comme le fait justement remarquer YMasquel, il n'affiche rien tant qu'aucun programme prévu pour cela n'a pas été implanté dans le R8C. Une méthode simple pour voir s'il fonctionne, au moins en partie, consiste à tourner à fond le potentiomètre de contraste (P2 sur le schéma). Tous les pixels de l'afficheur doivent alors devenir noirs.
|
|
peroctet
3 messages
 De passage
|
29-03-2006 16:31
Bonjour messieurs, Je vous remercie de vos réponses, et je teste sans tarder. Cependant j'ai trouver l'afficheur compatible carte ELEKTOR sur Internet, il semblerait que cela soit un Displaytech LCD 162B, le contrôleur est un KS0070B qui est compatible au niveau instructions au HD44780 à quelques 2 microsecondes près. Je le testerai.... Encore merci
HD44780 based LCD module.zip
|
|
peroctet
3 messages
 De passage
|
29-03-2006 16:34
Bonjour messieurs, J'ai trouvé l'afficheur qui serait compatible carte ELEKTOR, il semblerait que cela soit un Displaytech LCD 162B avec un contrôleur KS0070B qui est compatible HD44780 au niveau instructions à 2 micro-secondes prés de timing. Je vous remercie de vos réponses
|
|
R8C13master
87 messages
 Visiteur occasionnel
|
29-03-2006 17:19
Parperoctet le 29/03/2006 16:34:07 ... compatible HD44780 au niveau instructions à 2 micro-secondes prés de timing. Bonjour, Ce n'est pas ça qui risque de poser le moindre problème. De très nombreux afficheurs LCD 2 x 16 ou 2 x 20 caractères se réclamant de la compatibilité avec le HD 44780 ont en pratique des chronogrammes qui sont parfois assez éloignés de celui du circuit d'origine. Vu comment on les utilise avec un microcontrôleur, cela ne pose quasiment jamais de problème.
|
|
Teaniel
29 messages
 De passage
|
25-04-2006 09:29
Bonjour, J'ai un petit problème avec l'afficheur : j'ai acheté un GDM1602A... Ce qui va m'obliger à utiliser une carte gigogne d'interface. Question : le brochage du connecteur de l'afficheur n'est pas indiqué en clair sur la carte d'application. Pouvez vous me confirmer que la broche 1 du schéma correspond bien à celle qui est le plus près du PL2303? Cordialement, Marc
|
|
YMasquel
2504 messages
 Expert
|
25-04-2006 09:51
Bonjour Marc, La broche 1 des modules LCD est reliée au +5V et la broche 2 est à la masse. Il peut y avoir des modules avec la broche 1 vers le centre du module (C'EST LE CAS ICI) et d'autres avec la broche 1 vers l'angle du module. Il y en a également avec 16 pins alignés (2 sont prévues pour le rétro-éclairage). Dans la carte d'application R8C13 la broche 1 du module LCD est au centre (le plus près du PL2303 selon ta question). Amicalement, Yves.
|
|
R8C13master
87 messages
 Visiteur occasionnel
|
25-04-2006 11:51
ParTeaniel le 25/04/2006 09:29:58 Question : le brochage du connecteur de l'afficheur n'est pas indiqué en clair sur la carte d'application. Marc Bonjour, Sur le schéma de la carte, page 45 d'Elektor, le brochage du connecteur de l'afficheur LCD (K9) ne fait aucun doute. Il correspond à celui de tous les afficheurs LCD normalisés à une ou deux lignes de 16 ou 20 caractères. Ce qui est par contre lamentable c'est que certains revendeurs de composants (heureusement de plus en plus rares) continuent de diffuser des afficheurs qui ne respectent pas celui-ci.
|
|
R8C13master
87 messages
 Visiteur occasionnel
|
25-04-2006 11:54
ParYMasquel le 25/04/2006 09:51:03 La broche 1 des modules LCD est reliée au +5V et la broche 2 est à la masse. Yves. Bonjour Yves, Désolé de te contredire mais, sur les afficheurs LCD standards, c'est juste le contraire! La broche 1 c'est VSS et donc la masse, la broche 2 c'est VDD et donc le + 5V et la broche 3 sert au réglage du contraste.
|
|
YMasquel
2504 messages
 Expert
|
25-04-2006 12:41
Bonjour "master", J'ai en effet dit une ânerie. Réponse trop rapide. le pire c'est que j'avais la doc devant les yeux et que j'en avais routé un samedi! Merci d'avoir rectifié. Honteusement, Yves.
|
|
R8C13master
87 messages
 Visiteur occasionnel
|
25-04-2006 14:12
Tout le monde peut se tromper ! Il n'y a bien que ceux qui ne font rien qui ne se trompent jamais
|
|
Teaniel
29 messages
 De passage
|
29-04-2006 23:29
Bonsoir à tous. Merci Yves de ta réponse, elle me satisfait pleinement. (désolé du retard, mais je ne vais pas tous les jours sur internet). En fait, Master, c'est sur la platine que l'indication manque. Il se trouve que sur le GDM, il y a 16 broches et que la 1 est dans le coin. Par bonheur pas du même coté, sinon j'aurais monté mon afficheur à l'envers. C'est vrai que sur le schéma le brochage est indiqué, mais dans quel sens a-t-il été reproduit sur la carte? C'était l'objet de ma question. Je suppose qu'il doit s'agir d'un petit oubli, car tous les autres connecteurs disposent de cette indication sur la carte. En fait il va falloir que je réalise une platine d'interface pour pouvoir mettre mon afficheur dans le bon sens et utiliser le rétroéclairage (je bricole souvent la nuit). Merci en tous cas de vos réponses, c'est gentil de vous dévouer ainsi au service des autres Cordialement, Marc
|
|
YMasquel
2504 messages
 Expert
|
30-04-2006 00:25
Bonjour Teaniel, Dans le temps j'avais du câble en nappe au pas de 2,54mm. Selectronic semble en avoir en 14 conducteurs : http://www.selectronic.fr/article.asp?article_ref_entier=60.0584-9999 en 16 conducteurs : http://www.selectronic.fr/article.asp?article_ref_entier=60.0585-9999 et aussi en 26 et 50 conducteurs. C'est bien pratique pour ce type de problème. Amicalement, Yves.
|
|
mikemike
|
16-05-2006 12:44
j'ai chargé le programme de référence d'elektor pour LCD mon afficheur ne répond pas ??? c'est un DEM16217 classique dans les montages de la revue. Si quelqu'un a LE programme simple qui fait fonctionner l'affichage avec la carte d'application, je suis preneur !!! NB : mon afficheur ne montre qu'une seule ligne (supérieure) lorsque je pousse le contraste à fond, est-ce normal ?? Aves mes remerciements pour la personne qui peut me dépanner. Cordialement Michel
|
|
YMasquel
2504 messages
 Expert
|
16-05-2006 20:51
Bonjour Michel, Selon une documentation ( http://www.ryston.cz/pdf/display/display.pdf ) le DM16217 a la broche 1 côté extérieur. Par contre chez un autre fournisseur ( http://www.maplin.co.uk/media/pdfs/N27AZ.pdf ) la broche 1 est (PRESQUE!!!!) au centre. Elle est attendue au centre sur la platine du R8C13. Ces 2 modèles sont des 16 broches (pour rétro-éclairage). CE COMPOSANT EST UN CLASSIQUE DU GENRE DES MULTI-PRODUCTEURS OU CHACUN FAIT CE QU'IL VEUT. La barre de pavés noirs sur la seule première ligne prouve que ton module LCD est correctement alimenté donc dans le 'bon sens'. Par contre, qu'appelles-tu 'le programme de référence'? Amicalement, Yves.
|
|
mikemike
|
17-05-2006 11:20
Merci Yves de me répondre !! quelques précisions : 1/ le R8C13 fonctionne très bien sur mes autres applications, c'est déjà important ... 2/ l'afficheur est un DM16217SYH de chez Elektor, il est cablé sur ma platine par l'intermédiaire d'une nappe, avec la masse à la broche 1, je dirais d'une façon classique (?). Là où j'ai un peu plus de doutes, c'est sur mon programme, récupéré sur un site allemand, mais bien corroboré par l'article d'Elektor sur l'afficheur LCD. Le voici : /* -------------------------------------------- Routines graphiques pour l'afficheur LCD --------------------------------------------*/ #include "sfr_r813.h" ; static unsigned char Port0; /*------------------------------------------------- Delais -------------------------------------------------*/ void delayus (unsigned int micros) { unsigned int i; for (i = 0; i < micros; i++) { asm("nop"); } } /*------------------------------------------------- Ecriture d'un caractère sur l'afficheur -------------------------------------------------*/ void lcd_writeData(unsigned char data) { delayus(100); Port0 = data & 0xF0; Port0 = Port0 + 0x04; //rs = 1 p0 = Port0; p0 = Port0 + 0x08; //E = 1 asm("nop"); p0 = Port0; //E = 0 Port0 = ((data & 0x0f)<<4); Port0 = Port0 + 0x04; //rs = 1 p0 = Port0; p0 = Port0 + 0x08; //E = 1 asm("nop"); p0 = Port0; //E = 0 delayus (100); } /*------------------------------------------------- Ecriture d'un caractère de contrôle -------------------------------------------------*/ void lcd_writeCtrl(unsigned char data) { Port0 = data & 0xF0; p0 = Port0; p0 = Port0 + 0x08; //E = 1 asm("nop"); p0 = Port0; //E = 0 Port0 = ((data & 0x0f)<<4); Port0 = Port0 + 0x01; p0 = Port0; p0 = Port0 + 0x08; //E = 1 asm("nop"); p0 = Port0; //E = 0 delayus (100); } /*------------------------------------------------- Initialisation de l'afficheur -------------------------------------------------*/ void lcd_init(void) { delayus(15000); lcd_writeCtrl(0x28); delayus(5000); lcd_writeCtrl(0x28); delayus(1000); lcd_writeCtrl(0x28); delayus(1000); lcd_writeCtrl(0x0c); delayus(1000); lcd_writeCtrl(0x01); delayus(5000); } void main(void) { unsigned char dummy; /*------------------------------------------------- - Change on-chip oscillator clock to Main clock - -------------------------------------------------*/ prc0 = 1; /* Protect off */ cm13 = 1; /* Xin Xout */ cm15 = 1; /* XCIN-XCOUT drive capacity select bit : HIGH */ cm05 = 0; /* Xin on */ cm16 = 0; /* Main clock = No division mode */ cm17 = 0; cm06 = 0; /* CM16 and CM17 enable */ asm("nop"); /* Waiting for stable of oscillation */ asm("nop"); asm("nop"); asm("nop"); ocd2 = 0; /* Main clock change */ prc0 = 0; /* Protect on */ Port0 = 0xff; p0 = 0xfd; /*prc2 = 1; //protect off pd0 = 0xfd; //LCD port, fit 1 input of AD*/ lcd_init(); lcd_writeData(65); } Un A est censé apparaître sur l'afficheur !! Je l'attends toujours... Avec mes amitiés, Michel
|
|
YMasquel
2504 messages
 Expert
|
17-05-2006 15:05
Bonjour Michel, Je n'ai pas vérifié la totalité du listing que tu as joint mais je crois y avoir reconnu les fonctions décrites dans le numéro d'avril. Une chose importante concerne l'initialisation du "sens" d'utilisation du port 0 car il est impératif de déverrouiller IMMEDIATEMENT avant d'écrire quoi que ce soit dans ce registre de direction (PD0). Hors, dans ton initialisation tu écris non pas dans le registre de direction (PD0) mais dans le port de sortie lui-même (p0 = 0xfd; ) après avoir initialisé (pourquoi ?) la variable de sauvegarde (Port0 = 0xff; ). Ensuite tu as passé en commentaire les 2 instructions qui t'auraient permis d'initialiser véritablement le sens des données : /*prc2 = 1; //protect off pd0 = 0xfd; //LCD port, fit 1 input of AD*/ Je te propose de supprimer les 2 lignes inutiles: Port0 = 0xff; p0 = 0xfd; et de "décommenter" les lignes d'initialisation du registre de direction des données du port 0 : prc2 = 1; //PD0 protect off pd0 = 0xfd; //LCD port, fit 1 input of AD Ca devrait s'arranger. Si problème tu peux récupérer le LCD.ZIP (article sur ELEKTOR.DE : * Beispielprojekt aus Elektor 2/2006: Ansteuerung des LCD auf dem Application-Board, der seriellen Schnittstelle UART0 und des AD-Wandlers | lcd.zip ) qui est référencé sur le site français par le lien : • Les projets R8C/13 de nos lecteurs allemands Amicalement, Yves.
|
|
triplezero
2 messages
 De passage
|
17-05-2006 23:22
Bonsoir Yves, Il me semble que le listing de Elektor soit faux, merci de ton message qui m'a permis de déverminer le listing sans avoir tout à refaire. Cordialement, Laurent.
|
|
mikemike
|
18-05-2006 17:16
Merci Yves pour les divers renseignements, le passage en commentaire de : prc2 = 1; //PD0 protect off pd0 = 0xfd; //LCD port, fit 1 input of AD avait été enlevé précédemment, sans changement apparent mais il est évident qu'il faut conserver cette commande de configuration du Port 0. Je suis retourné chercher diverses sources sur le site allemand, en particulier le LCD.ZIP, comme tu me l'as conseillé. Après plusieurs essais, rien ne se passe. Les programmes sont identiques quant aux diverses commandes. En désespoir de cause, je vais changer d'afficheur. si quelqu'un peut me donner le listing qui fonctionne sur sa propre carte Elektor, cela me permettra de lever le doute sur ma partie electronique !!! Merci Michel
|