Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Problema con display HD44780

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

1
voti

[31] Re: Problema con display HD44780

Messaggioda Foto UtentePaolino » 10 mar 2013, 9:59

angelorosso ha scritto:e
- sono partito con un programmino che mi fa lampeggiare un led in tutte le porte


No, no e ancora no. :D

Con i PIC18, devi scrivere sui LATCH e non sui PORT! Quindi dovrai modificare il tuo codice.
Aggiungo inoltre che le impostazioni iniziali che hai messo non sono sufficienti. Devi dare un'attenta lettura al datasheet: alcuni pin di PORTA e PORTB vanno forzati digitali, altrimenti all'avvio sono analogici

E infine: dove sono le impostazioni dei configuration bit?

Codice: Seleziona tutto
#include <hc.h>
#include <delays.h>

/* Configuration bits */
#pragma config OSC = INTIO2
#pragma config WDT = OFF
#pragma config LVP  = OFF

 
main () {
 
       
   ADCON0 = 0b00000000;
        ADCON1 = 0xEF; /* Tutti i pin di PORTA e PORTB posti in digitale */
   OSCCON = 0b01101110;
   INTCON = 0;
        TRISA = 0; 
        TRISB = 0;
         
 
               
      while (1)
      {
      LATA=0B11111111;
      LATB=0B11111111;
      Delay10KTCYx(100);
      LATA=0;;
      LATB=0;
      Delay10KTCYx(100);
   }
} //Fine main


Prova così.

Ciao.

Paolo
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[32] Re: Problema con display HD44780

Messaggioda Foto UtenteJAndrea » 10 mar 2013, 13:28

Un unica cosa non mi è chiara anche dopo la lettura del datasheet.
Quanto tempo bisogna aspettare nella modalità a 4 bit tra l' invio di un nibble e l' altro?
Avatar utente
Foto UtenteJAndrea
3.987 4 6 9
Master
Master
 
Messaggi: 2117
Iscritto il: 16 giu 2011, 15:25
Località: Rovigo

1
voti

[33] Re: Problema con display HD44780

Messaggioda Foto UtentePaolino » 10 mar 2013, 14:47

(oggi sono pigro)
Foto UtenteJAndrea, hai un link al datasheet che stai sfogliando?

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[34] Re: Problema con display HD44780

Messaggioda Foto UtenteJAndrea » 10 mar 2013, 14:52

Io ho trovato gli excecution time delle varie operazioni svolte dal controller, ma non il tempo che deve intercorrere tra tra l' invio di un nibble e l' altro.
In ogni caso il programma da me scritto attende 3,25ms tra un nibble e l' altro, un tempo più che lungo direi...
Invece il tempo prima di far ritornare il bit di enable a livello basso, dopo averlo alzato, l' ho impostato pari a 13us, ben più alto dei 250ns del datasheet.
i tempi ti sembrano ragionevoli??
In ogni caso non funziona nulla, a questo punto comincio a dubitare sul funzionamento di questo display(Displaytech 162B)
ecco il datasheet: http://www.sparkfun.com/datasheets/LCD/st7066.pdf
Avatar utente
Foto UtenteJAndrea
3.987 4 6 9
Master
Master
 
Messaggi: 2117
Iscritto il: 16 giu 2011, 15:25
Località: Rovigo

1
voti

[35] Re: Problema con display HD44780

Messaggioda Foto UtentePaolino » 10 mar 2013, 15:00

Secondo me ti basta rispettare il timing di Enable. Il quel caso il dispositivo è pronto ad accettare il secondo nibble.
Prova a ridurre i 3 ms, gradatamente.

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[36] Re: Problema con display HD44780

Messaggioda Foto UtenteJAndrea » 10 mar 2013, 15:02

Proverò anche questo, grazie Paolino.
in ogni caso il motivo che mi fa dubitare del display è questo:
quando lo comprai trovai sul sito del negozio da cui lo comprai il seguente datasheet: http://www.futurashop.it/pdf_eng/1446-CDL4162.pdf
Lo collegai secondo la piedinatura riportata in quel documento, ma non funzionava nulla.
Dopo mi accorsi che sul mio display la piedinatura era diversa, e corrispondente a quest' altro datasheet di nuova revisione: http://www.displaytech-us.com/sites/def ... es-v21.pdf
A questo punto credo che possa essersi fuso.
Avatar utente
Foto UtenteJAndrea
3.987 4 6 9
Master
Master
 
Messaggi: 2117
Iscritto il: 16 giu 2011, 15:25
Località: Rovigo

0
voti

[37] Re: Problema con display HD44780

Messaggioda Foto Utenteangelorosso » 10 mar 2013, 15:02

TardoFreak ha scritto:Non puoi fare un programma sperando che questo si fermi alla fine perché dai per scontato che un programma abbia un inzio ed una fine.
I programmi per i microcontrollori non si scrivono così.
Non basta scrivere un commento "fine main" per immaginare che il programma di debba ... fermare senza problemi e finirla lì.
I programmi per i micro non si possono fermare così, alla cavolo


su questo ti dò ragione, infatti in tutti i miei programmi eseguo ciò che mi serve in un ciclo while(1), qui mi interessava sapere se il PIC trasmetteva correttamente quella sequenza di bit al display; penso che concordi con me se affermo che il display, una volta ricevuta l'informazione, la visualizza fino a nuovo ordine.

Paolino ha scritto:
Codice: Seleziona tutto
#define   LCD_RS   PORTAbits.RA0   // Register select
#define   LCD_EN   LATAbits.RA1   // Enable
#define   LCD_D4   LATAbits.RA2   // LCD data 4
#define   LCD_D5   LATAbits.RA3   // LCD data 5
#define   LCD_D6   LATAbits.RA4   // LCD data 6
#define   LCD_D7   LATAbits.RA5   // LCD data 7


Ho poi visto che il compilatore non mi permette di usare questi nomi, nel file pic18f1320.h la struttura per i LATCH è diversa dai PORT, per cui devo chiamare i singoli canali "LATAbits.LATA1" eccetera.
Ti ringrazio comunque per le dritte, questo tuo consiglio mi ha fatto funzionare il circuito
Codice: Seleziona tutto
/* Configuration bits */
#pragma config OSC = INTIO2
#pragma config WDT = OFF
#pragma config LVP  = OFF


nonostante io abbia scelto di non impostarli perché pensavo che bastasse impostare OSCCON e vedere il led lampeggiare a tempo.

Dopo svariate prove ho visto che RB0 ha preso a funzionare, forse era un problema di contatto elettrico, mentre RA4 ed RA5 non hanno funzionato...ho poi capito il perché leggendo approfonditamente il datasheet:
- RA4 è di tipo open-drain, difatti gli ho poi fatto pilotare il catodo del led ed ha funzionato, il datashhet dice infatti "Input/output port pin or external clock input for Timer0. Output is open-drain type."

- RA5 in funzione di porta digitale può solo servire da ingresso, nel datasheet viene specificato "Master Clear input or programming voltage input (if MCLR is enabled); input only port pin or programming voltage input (if MCLR is disabled)."

ho invece avuto una perplessità su questo tuo consiglio
ADCON1 = 0xEF; /* Tutti i pin di PORTA e PORTB posti in digitale */


0xEF significa 0b11101111 , quindi così imposto solo AN4 in analogico??? :roll:

JAndrea ha scritto:Quanto tempo bisogna aspettare nella modalità a 4 bit tra l' invio di un nibble e l' altro


da quanto ho capito sul datasheet del HD44780 occorre attendere "almeno" 4.1 ms la prima volta e 100ns la seconda. Io ho impostato dei tempi doppi.
Avatar utente
Foto Utenteangelorosso
40 3
New entry
New entry
 
Messaggi: 61
Iscritto il: 17 lug 2011, 22:36

1
voti

[38] Re: Problema con display HD44780

Messaggioda Foto UtentePaolino » 10 mar 2013, 15:06

angelorosso ha scritto:0xEF significa 0b11101111 , quindi così imposto solo AN4 in analogico??? :roll:

No, hai ragione. Dovevo scrivere 0x7F

Ciao.

Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong

-------------------------------------------------------------

PIC Experience - http://www.picexperience.it
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

0
voti

[39] Re: Problema con display HD44780

Messaggioda Foto Utenteangelorosso » 10 mar 2013, 15:39

in ogni caso dopo tutta questa discussione ho avuto una conferma molto importante: il pic18F lavora anche con la libreria usata per PIC 12F e 16F, non capisco perché MPLAB propone una libreria a parte per la serie 18 chiamata XLCD.
Avatar utente
Foto Utenteangelorosso
40 3
New entry
New entry
 
Messaggi: 61
Iscritto il: 17 lug 2011, 22:36

1
voti

[40] Re: Problema con display HD44780

Messaggioda Foto UtenteJAndrea » 10 mar 2013, 20:51

Foto UtentePaolino sono riuscito ad inizializzare il display e a far comparire il cursore, e pure a scrivere qualche carattere.
Allegati
WP_000135.jpg
WP_000135.jpg (44.96 KiB) Osservato 2617 volte
Avatar utente
Foto UtenteJAndrea
3.987 4 6 9
Master
Master
 
Messaggi: 2117
Iscritto il: 16 giu 2011, 15:25
Località: Rovigo

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 31 ospiti