10 modi per assassinare il
vostro microcontroller
|
I microcontroller sono componenti di una notevole robustezza elettrica, dato
che i progettisti ne hanno previsto l'uso in ambienti e condizioni tanto
consumer quanto industriali.
Hanno una buona resistenza agli eccessi di corrente e tensione, comprese i
problemi ESD, ma, anche se può essere difficile distruggere completamente un
microcontroller, si può almeno provare a danneggiarlo affinchè funzioni in
modo instabile o parziale.
- Invertire la tensione di alimentazione
"...ma appena me ne sono accorto, l' ho subito spento..."
e, in effetti, il problema è -per quanto tempo?-.
Il microcontroller, componente a tecnologia MOS complementare, alimentato
al contrario, si comporta come un diodo, ovvero è attraversato da una
corrente che è limitata solo dalla resistenza dell' alimentatore. E
conosciamo tutti la legge di Ohm.
Il chip si scalderà alquanto e solo interrompendo l'alimentazione prima
che della fusione di parti del silicio, sarà possibile salvarlo.
Va detto, altresì, che il chip maltrattato può funzionare ancora, ma
spesso non in modo affidabile.
Per evitare il problema durante le prove, basta inserire in serie alla Vdd
un diodo (-0.7V per diodi ordinari, genere 1N4001; -0.4V per i più
costosi Schottky, genere 1N5817).
- Cortocircuitare gli I/O
I pin come uscite hanno una corrente massima di circa 25mA, ma non sono a
prova di cortocircuito. Anche qui si parla della durata del cortocircuito, ma in ogni caso
evitiamo con cura i corto circuiti dei pin tra di loro e con l'
alimentazione. Sopratutto se i pin interessati sono più di uno la
probabilità del guasto sale.
Per evitare errori, durante le prove, basta inserire in serie all agli I/O
piccole resistenze (33-47 ohm) che non disturbano il funzionamento, ma
salvano i pin da extra correnti
- Usare montaggi volanti o breadboard pessime
L' elettronica integrata è fatta per essere utilizzata su circuiti
stampati. Certamente possiamo usare montaggi volanti o millefori, ma
diventa tassativo evitare i corto circuiti di cui al punto precedente e,
sopratutto, i contatti malfatti che causano instabilità di funzionamento.
In questo senso, l' esperienza rileva che la stragrande maggioranza delle
breadboard da poco prezzo sono un pessimo investimento: basta un contatto
allentato per impedire il funzionamento del circuito e si finisce per
perdere ore e ore a cercare cause, magari nel programma, mentre esse sono
solo nella
realizzazione pessima. E sappiamo come, durante questo tempo, si rischia
di fare qualche danno.
- Eccedere nella corrente che il chip deve trattare.
Certamente ci sono disponibili 25mA per pin, ma non su tutti i pin
contemporaneamente! Il foglio dati indica quale è la corrente
massima che il chip può trattare. Richiederne di più è una via
per avere un riscaldamento inutile del chip ed abbreviarne la vita.
- Non usare resistenze di limitazione della corrente dei LED
Pare un punto d'onore presentare sul WEB circuiti in cui LED e display a 7
segmenti sono alimentati senza resistenze di limitazione della corrente.
Questa sciocchezza si basa sul fatto che la corrente è applicata per brevi periodi e il valore medio rientra nei parametri. Ma non rientra
quello di picco e anche se il duty cycle è basso e quindi il materiale
sovraccaricato ha tempo di raffreddarsi, non si tratta sempre di una buona
scelta: al minimo si ridurrà la vita dei componenti, forse anche
di molto. Solo per risparmiare pochi cent.
- Applicare al chip o ai pin tensioni superiori alla Vdd o inferiori
alla Vss.
Qui il problema può essere assai grave: la maggior parte dei pin di I/O hanno
all' interno diodi, ma questi sono previsti per la protezione da ESD.
Alimentare il chip con 5.5V e forse anche 6V lo farà riscaldare inutilmente , ma alimentarlo
con 12 o 24V, o collegare queste tensioni ai pin, vuol dire distruggere il
chip in frazioni di secondo.
Analogo risultato si ottiene non applicando diodi di protezione su carichi
induttivi, come relays o motori, dove sono presenti tensioni inverse anche
elevate.
- Variare connessioni con l' alimentazione presente
Certamente
si tratta di circuiti in corrente continua, ma, nel momento in cui
stacchiamo una connessione e/o ne creiamo un'altra, entrano in gioco
fenomeni induttivi/capacitivi in grado di creare sovratensioni che possono
facilmente distruggere il chip. Togliete sempre l' alimentazione prima di
fare qualsiasi manovra sui componenti e le connessioni del circuito.
- Applicare più di 13.5V al pin di MCLR
Nei PIC, il pin MCLR svolge la funzione di ingresso della Vpp durante la
programmazione HV. E' probabile che la Flash sia scrivibile anche con soli
9V, ma Microchip ne consiglia 13.5. I tools ufficiali (Pickit, ICD,
RealIce) si attengono ai valori indicati dai fogli dati, ma, usando programmatori di terze
parti o usato costruiti, bisogna essere ben certi che non si superino questi valori:
se una Vpp troppo bassa impedisce la corretta programmazione del chip, una
eccessiva ne riduce la vita.
In particolare, v a tenuto presente che chip LF a bassa tensione
necessitano di una Vpp minore di 12V.
- Non prevedere la possibilità di ESD
Le cariche elettrostatiche, anche solo a causa della triboelettricità
prodotta dal corpo umano e dagli abiti (body model) raggiungono
facilmente 1500V e più. Certamente l' energia è generalmente molto bassa
e ci sono i diodi di protezione integrati, ma gli spessori del silicio sono a livello di micron
e basta un attimo di troppo per perforarli.
Usate le comuni protezioni contro il pericolo dell' elettricità statica
quando maneggiate i chip ed inserite in serie ai pin configurati come
ingressi delle resistenze di limitazione della corrente nei diodi di
protezione; valori da 100 a 1000 ohm sono
adeguati.
Anche l'uso di saldatori di scarsa qualità e non isolati è un modo per
ottenere guasti "inesplicabili".
- Non considerare che il circuito, se deve lavorare fuori dal Laboratorio,
si troverà in un ambiente ostile.
Calore, umidità, sbalzi di tensione di alimentazione, tensioni indotte da
cablaggi malfatti: tutte cose che, sul banco del
Laboratorio, è difficile riscontare. Ma, una volta provato il circuito,
una volta sul campo può portare a pessime sorprese: il sistema resetta a caso, si pianta, salta da un
punto all' altro del programma apparentemente senza senso.
Questo succede perchè tra la
situazione del laboratorio e quella di un possibile ambiente reale di funzionamento possono
esserci considerevoli differenze, dovute essenzialmente alla presenza sul campo di
fonti
di disturbo elettromagnetico (motori, relè, teleruttori, ecc.), ma anche
loop di terra, calore eccessivo, condensazione dell' umidità atmosferica,
alimentazione irregolare.
Prima di agire senza costrutto, cercate di capire quali possono essere le
cause dei problemi ed agite di conseguenza: un apparecchio che funziona
male può essere causa di danni non solo per se stesso, ma anche per
quanto vi è collegato.
Per contro:
- è difficile creare danni se si utilizza un metodo di lavoro ordinato, un
saldatore a bassa tensione dotato di terra e un minimo di considerazione per
l'elettricità statica, evitando cablaggi volanti instabili o breadbord di
qualità scadente
- non si crea alcun danno al chip eseguendo calcoli matematici come la
divisione per 0.
In conclusione, se il vostro circuito a microcontroller appena realizzato
su breadboard o millefori si rifiuta di funzionare o non funziona
correttamente, avete probabilmente una sola via: verificare le connessioni
e la loro qualità (causa più probabile in assoluto) o gli errori nel
cablaggio (seconda causa probabile) o nella progettazione.
Buon Lavoro.
Possono anche interessarvi queste
pagine: "15 preconcetti sui PIC".
|