Pagina 1 di 1

PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 10 mag 2012, 11:33
da grandegiove
Ciao a tutti!

Sto analizzando un problema su delle schede piuttosto datate che montano un 16f84a (quarzo 4 MHz). In particolare queste schede comandano mediante uscite a stato solido delle elettrovalvole. La scheda presenta accorgimenti per il filtraggio dei picchi che si verificano in commutazione (diodi di soppressione, varistori, RC..) sul quale si potrebbe discutere ampiamente.

Ma la domanda stavolta è un'altra. Se creo dei falsi contatti (non è di certo la situazione normale di lavoro ma un evento una tantum è comunque meglio metterlo in conto) sulla connessione dell'elettrovalvola causo dei picchi tremendi che si ripercuotono sull'alimentazione del PIC(nonostante gli accorgimenti evidentemente insufficienti sopra citati).

Fase 1 :Il firmware era sprovvisto di Watch Dog.
In seguito ai picchi di tensione il PIC bloccava l'esecuzione (non si resetta, ma proprio si blocca). Suppongo quindi che il picco tremendo abbia in qualche modo intaccato i registri di puntamento alla memoria di programma e il flusso dell'esecuzione sia finito in un vicolo cieco.

Fase 2:Decido quindi di dotare il PIC di Watch Dog in modo nel caso di un picco tremendo il PIC venga resettato dato che un reset per la natura dell'applicazione non sarebbe di per sè niente di dannoso.
Quel che succede è che sollecitando con più e più picchi talvolta il PIC si resetta (presumibilmente su azione del WD, ma non ne ho la sicurezza) ma talvolta si torna a quella situazione di stallo che blocca tutta l'eseczuione.

Fase 3:Non mi resta che pensare all'oscillatore. Premetto che con queste schede non ho mai avuto problemi in termini di difficoltà di inizializzazione e stabilizzazione dell'oscillazione del quarzo. Decido comunque di provare a cambiare la sorgente del clock: collego quindi un RC esterno (unica alternativa possibile del resto).
Effettuo quindi nuovamente la prova e noto che talvolta in seguito ai picchi il PIC impazzisce per qualche istante ma poi interviene il WD e l'esecuzione viene resettata senza comunque mai entrare in quella situazione di stallo che si verifica con l'oscillatore al quarzo. Non è comunque possibile pensare di utilizzare un oscillatore esterno RC per queste schede in particolare per l'impossibilità di modificare l'HW.

La sensazione è quindi quella che in qualche modo si "sganci" il quarzo (perdonate l'eresia ;)) e non sia in grado di ripristinaresi se non togliendo manualmente alimentazione e rialimentando.
Premesso che sicuramente è necessario rivedere il sistema di filtraggio dei disturbi vorrei comunque cercare di capire cosa succede al PIC.

Avete qualche idea o esperienza che mi possa aiutare a trovare una soluzione o comunque individuare cosa succede esattamente?

Ho letto e riletto il DS ma non trovo nulla che mi possa suggerire il da farsi.

Grazie mille a tutti!! :ok:

Re: PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 10 mag 2012, 11:58
da Paolino
Premetto che una condizione del genere mai l'ho sperimentata e hai tutta la mia comprensione (per quel che vale, insomma).
Se fosse solo un problema di program counter che viene "spostato" il WD interviene e ti resetta il PIC. Se invece il picco è tale da spegnere anche il circuito dell'oscillatore, imagino che dovresti vedere una condizione di assenza di oscillazione su entrambi i piedini del PIC ai quali il quarzo è connesso. Puoi fare questa verifica con l'oscilloscopio?
Mentre scrivevo mi è anche venuto in mente che magari intervengono alcune protezioni interne al PIC che ne inibiscono il funzionamento complessivo e di conseguenza anche lo stadio oscillatore è "vittima".

Mi dispiace, il mio aiuto è limitato. sorry

Ciao.

Paolo.

Re: PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 16 mag 2012, 19:42
da posta10100
Potrebbe essersi infilato nella condizione di "Test Mode", in questo caso non è bloccato ma in attesa dei vettori di test.
Purtroppo credo che la procedura per entrare nella modalità test e per uscirne la conosca solo Microchip...

O_/

Re: PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 27 mag 2012, 17:24
da left
non basta che la tensione su MCLR torni ad una tensione normale per uscire dal test mode?

Re: PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 28 mag 2012, 18:42
da posta10100
Io parlo del test mode (modalità test prima che il chip venga venduto), lo hai confuso con il program mode ;)

Re: PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 30 mag 2012, 13:23
da left
posta10100 ha scritto:Io parlo del test mode (modalità test prima che il chip venga venduto), lo hai confuso con il program mode ;)


Non sapevo della sua esistenza. :D Mi sai dire/linkare qualcosa di più a proposito?

Sì sono già off-topic, mi fermo subito. :cool:

Re: PIC16f84a bloccato : quarzo, oscillatore, wd?

MessaggioInviato: 30 mag 2012, 20:43
da posta10100
L'argomento è complesso, se vuoi puoi iniziare da qui!

Se riesco a trovare un po di tempo magari preparo un articoletto con le nozioni di base...

O_/