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!!


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)







