Home › Forum › R8C/13 (01-2006) › Afficheur LCD

Forum

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

1   2   3     suivant

Sujet: Afficheur LCD

Auteur Message

peroctet

3 messages

De passage
De passage

Read post 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
Expert

Read post 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
Visiteur occasionnel

Read post 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
De passage

Read post 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

AttachmentHD44780 based LCD module.zip

peroctet

3 messages

De passage
De passage

Read post 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
Visiteur occasionnel

Read post 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
De passage

Read post 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
Expert

Read post 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
Visiteur occasionnel

Read post 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
Visiteur occasionnel

Read post 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
Expert

Read post 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
Visiteur occasionnel

Read post 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
De passage

Read post 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
Expert

Read post 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

Read post 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
Expert

Read post 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

Read post 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
Expert

Read post 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
De passage

Read post 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

Read post 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

Veuillez vous identifier avant de répondre ou pour vous abonner à cette discussion

1   2   3     suivant

Elektor 6/2012 en kiosque

Elektor-Hebdo gratuit !

Mon adresse électronique :

Unités de crédit Elektor

Nos blogs-ateliers