Vai al contenuto
PLC Forum


La scheda non funziona senzal'ICD2 ?!?


tiziano_grelettricita

Messaggi consigliati

tiziano_grelettricita

Ciao a tutti. Ho sviluppato una piccola applicazione con un PIC16F877A usando l'ICD2, essendo la prima volta ho tribulato ma ora funziona tutto, analogiche, LCD 2x16....

Ora mi sono accorto che la mia scheda prototipo senza il collegamento all'ICD2 non funziona....o almeno il display non funziona, credo sia un problema di temporizzazione della comunicazione tra il PIC e il controller del display......

Grazie a tutti e complimenti per il forum ho trovato molte informazioni utili.

Link al commento
Condividi su altri siti


la programmazione di quei tipo di micro avviene sulle porte RB6/7 .

Se le usi anche per l'applicazione forse va in conflitto qualcosa.

Tutt'al piu quando inserisci il connettore dell'ICD2 l'lcd non funziona , come avviene nelle schede motherboard che abbiamo progettato io e altri del sito .

Non avrebbe senso che il circuito funzioni solo con il connettore inserito, vorrebbe dire che qualsiasi apparecchiatura che monta tali chip dovrebbe avere in dotazione l'ICD2 , assurdo , guarda bene i manuali

blink.gif

ciao

walter

Link al commento
Condividi su altri siti

Io controllerei con il tester o meglio con l'oscilloscopio la tensione su tutte le linee che dal micro vanno all'LCD con e senza ICD2 se non funziona deve cambiare qualcosa

Link al commento
Condividi su altri siti

tiziano_grelettricita

Aggiornamento: le linee usate dall'ICD2 sono libere. Ho tolto alcune parti di codice per capire dove si incastra, ora va meglio ma ogni tanto va in crisi e sul display compare di tutto.....non capisco perchè vada in crisi la comunicazione con il display togliendo alcune parti di codice....cosa c'entra ?

Link al commento
Condividi su altri siti

tiziano_grelettricita

Non lo controllo, ho inserito dei ritardi abbastanza grandi (o almeno mi sembravano tali.....sigh!), in effetti quando è collegato l'ICD2 funziona tutto.....

Link al commento
Condividi su altri siti

purtroppo non so cosa sia l'ICD2 (non lavoro con microchip)

Per caso togliendo il codice hai disabilitato qualche interrupt ?

Se fai ritardi come loop di istruzioni non hai la certezza della durata e devi tarare tutto sul ritardo massimo previsto per il display.

Link al commento
Condividi su altri siti

tiziano_grelettricita

L'ICD2 è un in circuit debugger che permette il debug con trace del codice (con alcune limitazioni), ma può essere utilizzato anche come semplice programmatore....in effetti qualcosa cambia.....

Forse sarebbe meglio leggere il busy dall'LCD prim di scrivere nuovamente.....

Link al commento
Condividi su altri siti

Leggendo il busy hai la certezza che funzioni in altro modo no.

Sei certo che nessuno modifichi lo stato delle porte connesse al display.

Un interrupt che modifica un bit sulla porta e che capita a caso magari durante una scrittura alterando lo stato della porta.

Il codice non ha errori ma è la sovrapposizione a causare errori.

Link al commento
Condividi su altri siti

tiziano_grelettricita

Non sto usando nessun irq, in effetti il codice legge ciclicamente le analogiche e poi scrive il valore sull'lcd...

Link al commento
Condividi su altri siti

tiziano_grelettricita

Ok hai ragione!

Il PIC è un 16F877A, ho collegato alcuni input digitali (pulsanti con pullup) al port A mentre altri sono analogici (rispettivamente RA0 RA1 e RA3 sono analogici, gli altri digitali). Ho altri input digitali sul port E (sempre pulsanti). Poi ho il display 16x2 con controller HD44780 e bus a 8 bit (avevo posto quindi non mi sono complicato ulteriormente la vita...). Poi ho l'ICD2 collegato sui pin RB6 e RB7.

Il clock è un quarzo a 20 MHz con i condensatori da 22 pF.

Link al commento
Condividi su altri siti

Attenzione!!! Quando è inserito l'ICD2 i tempi di ritardo aumentano di almeno un ordine di grandezza. Se per esempio hai programmato 20ms con ICD2 inserito hai >200ms!

Se la tua applicazione si basa su ridardi calcolati con loop da ripetersi n volte, probabilmente sono troppo corti.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...