Newsgroup: it.hobby.elettronica.digitale
Titolo: Display HD44780 con motorola HC08

Salve a tutto il ng,
sto utilizzando un display LCD 4x20 della DisplayTech interfacciato con un 
microcontrollore Motorola HC08. Il display viene utilizzato nella modalità a 
4 bits.
Non uso il controllo del Busy (con timing volendo anche molto più alto di 
quello minimo richiesto) per cui la linea RW è sempre a massa.
Le linee del display connesse alla CPU sono: RS, ENABLE, B7, B6, B5, B4.
Il display funziona, inizializzazione sempre OK, riesco a scrivere tutti i 
caratteri anche a velocità molto elevata.
Vi è un problema consistente nel fatto che il display sembra essere 
sensibile a qualche tipo di disturbo soltanto durante la trasmissione, per 
cui perde il contenuto della RAM: il testo viene sostituito da caratteri 
casuali, i caratteri sostituiti sono anche di più di quelli che ho trasmesso 
(quindi non può essere un problema di caratteri ricevuti male). 
Ritrasmettendo il testo si riesce a volte a farlo ricomparire, altre volte 
occorre reinizializzare il display perchè questo perde anche il setup 
iniziale e si riporta nella modalità ad 8 bits, a volte anche con cursore 
lampeggiante attivo (disattivato da me durante il setup). Il problema si 
presenta anche se con un cacciavite provo a toccare (uno alla volta) i pins 
di alimentazione del display, e però solo se è in corso una trasmissione 
(uso un programma che visualizza un conteggio in sequenza per fare questo).
Le linee B3...B0 ho provato a collegarle a massa (sembrano avere un pull-up 
interno al display), non cambia nulla se non che occorre regolare di nuovo 
il contrasto perchè due linee sono più scure delle altre due.
Il problema sembra essere collegato alla tensione di alimentazione perchè si 
verifica anche se premo un pulsante che alimenta direttamente una linea di 
input della CPU (e che ha quindi in comune con il display soltanto la 
massa).
Il display è alimentato da una linea di output della CPU in modo da poterlo 
reinizializzare da software, ma anche alimentandolo direttamente a 5V non 
cambia nulla. Ho provato anche ad alimentarlo a 5,5 con una tensione 
leggermente superiore cioè a quella presente sulle linee di input del 
medesimo, per evitare che l'HD44780 potesse prendere l'alimentazione da 
quelle, non cambia nulla.
La tensione di alimentazione è a 5V stabilizzati, con l'oscilloscopio non si 
vede nulla di che.
Guardando con l'oscilloscopio la forma d'onda sui piedini B7...B4: i fronti 
di salita e discesa vanno bene (tempo di salita e discesa talmente piccolo 
da non essere misurabile), VOH=5V, VOL=0 (misurati anche con il tester) 
sembra esservi però un leggero ripple a 50 Hz, credo sia questo a dare 
fastidio ma non riesco a comprendere come eliminarlo visto che non è 
presente sulla tensione di alimentazione.
Caricando le linee verso VCC o verso massa con la massima corrente che le 
uscite dell'HC08 riescono a reggere, non si risolve comunque nulla.
Inserendo ulteriori filtri sull'alimentazione non si risolve comunque 
nulla...
Ringrazio chiunque abbia consigli a riguardo e/o voglia segnalarmi altro ng 
su cui postare questa domanda
Ing. Fabio Boccacci
Parma
fb...@libero.it

 [zip]
Ho usato display più piccoli, ma non mi sono mai sembrati
particolarmente sensibili a problemi di alimentazione, di sicuro non
di più della norma. Per questa ragione, sono portato a credere che vi
sia un problema nella tua strategia di pilotaggio.
Mi sembra che in alcuni casi si possano avere problemi se il timing
della linea Enable non è corretto. La strategia che adottavo era
quella di fissare i dati sulle linee dati e poi mandare un impulso
sull'Enable.
Tu cosa fai esattamente per mandare un dato?

 ha scritto nel messaggio 
news:90ab3668-6906-4c3c...@m73g2000hsh.googlegroups.com...
On 1 Giu, 22:09, "Ing Fabio Boccacci" <f...@liberoNOSPAMPLEASE.it>
wrote:
Ho usato display piů piccoli, ma non mi sono mai sembrati
particolarmente sensibili a problemi di alimentazione, di sicuro non
di piů della norma. Per questa ragione, sono portato a credere che vi
sia un problema nella tua strategia di pilotaggio.
Mi sembra che in alcuni casi si possano avere problemi se il timing
della linea Enable non č corretto. La strategia che adottavo era


 7) ulteriore ritardo SENZA toccare le linee dati
Prova con 
2) enable H
3) ritardo
4) dati in uscita sulle linee B7...B4
5) ritardo
6) enable L
7) ulteriore ritardo SENZA toccare le linee dati
( 8) goto 2 )

 altrimenti il display funziona.
La sequenza che indichi è la stessa che ho usato anch'io (se mi
ricordo bene...). Il dato sulle linee B4...B7 viene bloccato quando la
linea E ha un fronte discendente (se non faccio confusione,
controlla), quindi anche la sequenza proposta da Luca potrebbe
funzionare.
Mi stavo chiedendo... magari è una banalità, ma... le connessioni sono
stabili e funzionanti? Non è che per caso hai una saldatura fredda
sulla linea di massa?
Se fai dei controlli con l'oscilloscopio, metti i puntali sui piedini
del display e non all'uscita del micro, diventa più semplice rendersi
conto di problemi dovuti a falsi contatti o cose di questo tipo.
Non ho esperienza diretta con display di quel tipo e l'HC08, invece li
ho usati abbastanza con un HC11 parecchi anni fa e con i PIC più
recentemente, senza avere problemi insormontabili.
P.S. non fare top posting, la discussione diventa più difficile da
seguire.

 ha scritto nel messaggio 
news:78208daf-4094-4010...@l64g2000hse.googlegroups.com...


 ha scritto nel messaggio 
news:Xns9AB194FAFFCED...@194.177.98.144...


 funzionare.
Vero... ho notato però che in tutti i diagrammi delle tempistiche che ho 
io, il clock viene alzato prima di modificare le linee dati, e per la mia 
esperienza in modalità 4 bit alcune versioni del controller hitachi sono 
molto permalose... ho smesso di usare la modalità a 4 bit in favore della 8 
bit + shift register proprio per questo motivo. (e anche perchè mi occupa 
meno i/o)

 dicono che i dati vengono letti sul fronte di salita dell'enable,
Nah.... ce l'ho qua sotto mano in edizione cartacea... fronte di discesa... 
1,1->0 ;-) 

 sensazione che invece sia il contrario....cmq grazie ora provo subito :-)
Dove è detto questo?
Se guardi qui:
http://www.sparkfun.com/datasheets/LCD/HD44780.pdf
A pagina 58, le figure 25 e 26 sembrerebbero suggerire l'uso del
fronte di discesa.

"Ing Fabio Boccacci" <fb...@liberoNOSPAMPLEASE.it> wrote in
news:484301e0$0$40208$
4faf...@reader5.news.tin.it
: 

A me un problema del genere era capitato proprio perche avevo le linee
non utilizzate non collegate a massa.
Mi succedeva che i caratteri visualizzati si incasinavano (scusate il 
termine).
Collegate a massa le linee non utilizzate il difetto è sparito.
Ciao
Ste

 sensazione che invece sia il contrario....cmq grazie ora provo subito :-)
Dove č detto questo?


 idee pratiche su come risolvere questo problema?
Scusa ma la mia sfera di cristallo è dal meccanico per il tagliando :-) 
Senza schema e magari hardcopy delle misurazioni dell'oscilloscopio diventa 
difficile avere idee pratiche.

 ha scritto nel messaggio 
news:Xns9AB1AF...@213.205.37.205...
