Buona sera,
mi sono da poco cimentato in un nuovo progetto facente uso di display LCD e PIC16F88, solamente che quando alimento il circuito non viene visualizzato nulla sul display. Le librerie che uso per LCD le ho già testate con PIC16F628A e PIC16F877 e funziona tutto perfettamente! nell'88 ho disattivato comparatori anche se i pin dei dati sono collegati alla PORTB del PIC... Non saprei quale sia il problema visto che lo stesso codice su 628A e 877 correttamente, qualcuno ha qualche idea o soluzione da propormi?
Grazie.
Nicolas
problema con LCD e PIC16F628A
Moderatore:
Paolino
8 messaggi
• Pagina 1 di 1
0
voti
0
voti
Ciao
nicolas97, la domanda che poni deve essere accompagnata da qualche contenuto altrimenti, se tu pensi (magari a ragione), che tutto sia a posto, pur non funzionando, come è possibile che noi, da "qui", si possa portare un contributo.
Con questi presupposti potrebbe essere qualsiasi cosa.
Allora, per essere propositivi, ti suggerirei, presupponendo l'integrità del PIC, di "ri-controllare":
i) i collegamenti previsti,
ii) che, la eventuale "define" identificativa del micro sia di quello in uso (e non ve ne sia una seconda inclusa da qualche altra parte),
iii) che, all'interno del codice, tu faccia riferimento ai pin(s) connessi,
iv) che, non vi siano altre periferiche del micro che possano precludere la corretta gestione delle uscite,
v) che, i dati (e i comandi) da inviare al micro vengano presi la dove si trovano o che le funzioni relative vengano eseguite,
vi) ...
Saluti
Con questi presupposti potrebbe essere qualsiasi cosa.
Allora, per essere propositivi, ti suggerirei, presupponendo l'integrità del PIC, di "ri-controllare":
i) i collegamenti previsti,
ii) che, la eventuale "define" identificativa del micro sia di quello in uso (e non ve ne sia una seconda inclusa da qualche altra parte),
iii) che, all'interno del codice, tu faccia riferimento ai pin(s) connessi,
iv) che, non vi siano altre periferiche del micro che possano precludere la corretta gestione delle uscite,
v) che, i dati (e i comandi) da inviare al micro vengano presi la dove si trovano o che le funzioni relative vengano eseguite,
vi) ...
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8986
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
0
voti
Se lo stesso codice in altri microcontrollori funzionava allora è probabile che ti sei dimenticato di settare i pin digitali anziché analogici. Consulta il datasheet.
-

giovannispina
126 1 3 - Messaggi: 43
- Iscritto il: 27 lug 2013, 12:31
0
voti
Grazie per le risposte. Allora per quanto riguarda l'integrità e il collegamento dei pin questi sono stati già controllati più volte e risultano essere corretti sia da schema che da codice (cioè con assegnazione dei pin del display a quelli del PIC) in allegato vi invio i sorgenti del progetto che indubbiamente possono aiutare.
Invio inoltre i file dello schema e PCB in formato Eagle.
Grazie per le riposte.
Invio inoltre i file dello schema e PCB in formato Eagle.
Grazie per le riposte.
- Allegati
-
Vasca_incisione.zip- File dello schema e PCB in formato Eagle
- (443.08 KiB) Scaricato 127 volte
-
Vasca_Incisione.X.zip- File MPLAB X compilato con HI-TECH 9.83
- (100.86 KiB) Scaricato 205 volte
0
voti
Per quanto riguarda il clock sul 628 era lo stesso dell'88 l'LCD è sempre lo stesso
0
voti
Hai caratterizzato in modo preciso la discussione con quanto scritto in apertura: certezza di una corretta gestione.
Questo, di conseguenza, può condizionare gli interventi di altri utenti: i miei certamente.
Allora, se non lo hai fatto, ti suggerisco di ricontrollare i punti elencati nel Post [2].
Se il codice è "quello che funziona", non ho motivo di andarlo a controllare; proprio per questo la differenza la potrebbe fare l'hardware, micro compreso, a meno che tu non abbia implementato le parti del programma in modo "scoordinato" rispetto alle precedenti esperienze.
Quindi ri-controlla l'ordine delle chiamate delle funzioni per la gestione del display, sia in fase di inizializzazione che nella gestione run-time.
Tornando all'hardware, se le porte impiegate per la gestione dell'LCD sono pilotate correttamente e in assenza di conflitti (ri-controlla il datasheet), allora potrebbe esserci un problema nel collegamento dell'LCD stesso ( ... sei certo, per altro, che funzioni ? Ne hai un altro in alternativa ? L'alimentazione è corretta ? ... ).
Se non visualizzi nulla è possibile che tu non lo abbia inizializzato correttamente oppure, pur avendolo inizializzato correttamente non accedi più allo stesso.
Spesso, ad un primo controllo, sfuggono errori anche elementari.
Saluti
Questo, di conseguenza, può condizionare gli interventi di altri utenti: i miei certamente.
Allora, se non lo hai fatto, ti suggerisco di ricontrollare i punti elencati nel Post [2].
Se il codice è "quello che funziona", non ho motivo di andarlo a controllare; proprio per questo la differenza la potrebbe fare l'hardware, micro compreso, a meno che tu non abbia implementato le parti del programma in modo "scoordinato" rispetto alle precedenti esperienze.
Quindi ri-controlla l'ordine delle chiamate delle funzioni per la gestione del display, sia in fase di inizializzazione che nella gestione run-time.
Tornando all'hardware, se le porte impiegate per la gestione dell'LCD sono pilotate correttamente e in assenza di conflitti (ri-controlla il datasheet), allora potrebbe esserci un problema nel collegamento dell'LCD stesso ( ... sei certo, per altro, che funzioni ? Ne hai un altro in alternativa ? L'alimentazione è corretta ? ... ).
Se non visualizzi nulla è possibile che tu non lo abbia inizializzato correttamente oppure, pur avendolo inizializzato correttamente non accedi più allo stesso.
Spesso, ad un primo controllo, sfuggono errori anche elementari.
Saluti
W - U.H.F.
-

WALTERmwp
30,2k 4 8 13 - G.Master EY

- Messaggi: 8986
- Iscritto il: 17 lug 2010, 18:42
- Località: le 4 del mattino
0
voti
Grazie mille per la risposta!! Allora per quanto riguarda l'inizializzazione è la medesima del progetto del 628 ho letto tutto il datasheet per disattivare le periferiche che non mi servono e/o penso possano causare problemi ai pin a cui è configurato il display. Ho inoltre controllato i collegamenti sul PCB al display e funzionano correttamente perché con un altro tipo di PIC pin compatibile lo stesso codice funziona perfettamente, però avrei bisogno di utilizzare l'88. Disponendo di un oscilloscopio nei prossimi giorni controllo se sui pin dei dati dell'lcd arrivano i segnali oppure no. Come ultima cosa ho sentito con un mio vecchio prof e lui sostiene che i delay nell'88 possono non essere precisi per l'LCD in questione è questo causi la non corretta inizializzazione del display... Se questa fosse una causa, come potrei risolvere?
Grazie della disponibilità.
Grazie della disponibilità.
8 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 21 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)