Arduino · 8 novembre 2013 1

10 modi per distruggere un Arduino

arduinoweightL’Arduino UNO è una scheda di prototipazione creata per avvicinare le persone all’elettronica. Nonostante la sua natura di prodotto destinato ad utenti inesperti, la scheda è da maneggiare con una certa attenzione e, come tutti i prodotti elettronici, può essere danneggiata molto facilmente!

Rugged Circuits è un’azienda americana che produce una scheda compatibile con l’Arduino pensata per gli utenti alle prime armi, la Ruggeduino: la scheda offre un livello di robustezza superiore a quello delle normali schede Arduino (“rugged” vuol dire robusto) grazie alle soluzioni adottate per la protezione da danni elettrici accidentali quali corto circuiti e sovratensioni.

Rugged Circuits ha preparato anche una guida che illustra gli errori più comuni commessi dagli utenti inesperti che possono danneggiare una scheda Arduino ed i rimedi messi in atto sulla Ruggeduino per evitare disastri.

La guida è in inglese ma grazie alla disponibilità di Rugged Circuits, ho avuto il permesso di tradurla in italiano. Consiglio di leggerla perché rimarrete stupiti di come sia facile fare grossi danni anche per piccole disattenzioni! Inoltre i rimedi adottati sulla Ruggeduino sono applicabili anche ai progetti standalone, in modo da fornire una protezione più elevata alle vostre realizzazioni.

Quindi non resta che andare alla scoperta dei… 10 modi per distruggere un Arduino!

10 modi per distruggere un Arduino!

Introduzione

Usare una mazza, sparargli una pallottola, gettarlo in una piscina… non sono questi i modi di cui vogliamo parlarvi. Vi vogliamo mostrare come distruggere elettricamente il vostro Arduino, sebbene pare che molti voi sappiano già farlo a causa di una esperienza negativa personale. Sapete a cosa ci riferiamo… quel simpatico odore, la bruciatura su un componente, o il temuto messaggio “programmer not in sync” — tutti segni che avete imparato la lezione nel modo più brutto.

Perché facciamo questo? Se possedete un Arduino, è bene che sappiate cos’è che ci si può fare e cosa no. Vogliamo anche che consideriate l’acquisto della nostra Ruggeduino, che sopravviverà a tutte le torture descritte qui di seguito.


Modo n° 1: fare un corto fra i pin di I/O e massa

COME

Configurate un pin di I/O come output e poi impostatelo su high. Collegate il pin a massa. Avete creato una condizione di sovracorrente sul pin di I/O, che si distruggerà.

PERCHE’

Ecco il percorso che segue la corrente (lo schema è quello dell’Arduino UNO, che potete scaricare da qui):

method01La scheda tecnica del microcontrollore indica in 40 mA il valore massimo di corrente per singolo pin. Con una resistenza interna mediamente di soli 25 ohm per pin, un corto secco a massa può far passare fino a 200 mA di corrente, più che sufficiente per distruggere il pin del microcontrollore.

IL RIMEDIO

La Ruggeduino evita la distruzione del pin mediante l’uso di un fusibile autoripristinante (PTC) da 30 mA in serie ad ogni pin di I/O. Non sono la corrente viene limitata sotto alla soglia di sicurezza di 30 mA in qualunque condizione (vedi qui sotto) ma la resistenza integrata nel fusibile di 220 ohm limita naturalmente la corrente a 5 V/ 220 ohm = 23 mA già di suo.

method1fix


Modo n° 2: mettere in corto i pin fra di loro

COME

Configurate 2 pin di I/O come output e poi impostatene uno su high e l’altro su low. Adesso collegate tra di loro i pin. Avete creato una condizione di sovracorrente su entrambi i pin di I/O che li distruggerà entrambi.

method02PERCHE’

Il percorso della corrente è simile a quello illustrato nel Modo n° 1 illustrato qui sopra con la differenza che il percorso di ritorno verso massa è attraverso il microcontrollore.

IL RIMEDIO

E’ la stessa del Modo n° 1, il Ruggeduino protegge dalla distruzione grazie al fusibile autoripristinante (PTC) da 30 mA in serie su ogni pin di I/O.


Modo n° 3: applicare una sovratensione ai pin di I/O

COME

Applicate una tensione superiore a 5,5 V a qualunque pin di I/O. Il pin di I/O si distruggerà.

PERCHE’

Questo metodo distruttivo sfrutta i diodi di protezione ESD (ElectroStatic Discharge) integrati nel microcontrollore. Ecco il modello di un pin di I/O del microcontrollore così come riportato sulla scheda tecnica dell’ATmega328P:

method03aNon appena la tensione presente sul pin di I/O è maggiore di quella di alimentazione (5 V) di circa 0,5 V, il diodo superiore inizia a condurre corrente. Questo comportamento va bene per instradare un fenomeno di sovratensione di breve durata, come una scarica elettrostatica (ESD, electro-static discharge), ma quel diodo non è stato previsto per essere in condizione di continuo. Semplicemente si brucerà e non proteggerà più il pin.

La figura qui sotto mostra il percorso della corrente quando una sovratensione è applicata ad un pin di I/O:

method03bSe il diodo di protezione interno si guasta aprendosi allora la sovratensione distrugge il pin di I/O. Se il diodo di protezione si guasta facendo un corto, allora la situazione è anche peggiore perché in questo caso la sovratensione è applicata all’intero circuito di alimentazione a 5 V dell’Arduino. Questo significa che essa raggiungerà altri componenti, come il chip che gestisce l’interfaccia USB, distruggendoli tutti.

IL RIMEDIO

Sulla Ruggeduino, ogni pin di I/O è protetto da un fusibile autoripristinante da 30 mA (con una resistenza interna da 220 ohm) ed un diodo Zener da 5,1 V che insieme limitano la tensione sul pin a 5,5 V, indipendentemente dalla tensione applicata (fino ad un massimo di 24 V).

method03fixOra la corrente, invece di fluire attraverso il diodo interno al microcontrollore, si scarica in sicurezza a massa attraverso il diodo Zener, e torna alla sorgente di sovratensione. Il fusibile autoripristinante limita la corrente a 30 mA così che il diodo Zener da 5,1 V non dissipi eccessiva potenza.


Modo n° 4: applicare un’alimentazione invertita sul pin Vin

COME

Alimentate il vostro Arduino tramite il pin di alimentazione Vin ma invertite la polarità dell’alimentazone sui pin Vin/GND. Distruggerete diverse periferiche dell’Arduino.

method04PERCHE’

Non c’è nessuna protezione per l’inversione di tensione dell’alimentazione sulle tensioni applicate al pin Vin. La corrente perciò scorrerà dal pin GND dell’ATmega328P e raggiungerà il pin 5V ed il regolatore di tensione a 5 V, e poi arriverà al pin Vin. La stessa cosa accadrà con il microcontrollore 8/16U2. Entrambi i microcontrollori nonché il regolatore di tensione verranno distrutti.

IL RIMEDIO

Sulla Ruggeduino il pin Vin è protetto da un diodo anti-inversione da 30 V, come mostrato qui di seguito:

method04fix

Potete applicare una tensione inversa fino a 30 V sul pin Vin senza causare nessun danno.


Modo n° 5: applicare più di 5 V al pin 5V

COME

Applicare una tensione di 6 V o superiore al pin 5V. Molti componenti dell’Arduino verranno distrutti, e questa tensione potrà anche presentarsi sulla porta USB, potendola danneggiare.

PERCHE’

Non c’è nessuna protezione sul pin 5V. La tensione viene direttamente messa in collegamento con il microcontrollore ATmega328P, il microcontrollore ATmega8/16U2 usato come interfaccia per l’USB, ed il regolatore a 5 V, e tutti sono essere danneggiati dalle tensioni superiori a 6 V e dalle correnti che possono transitare. Ecco il percorso attraverso il microcontrollore ATmega328P:

method05E’ una convinzione comune errata che il regolatore a 5 V dell’Arduino garantirà che la tensione a 5 V rimarrà a 5 V, indipendentemente dalla tensione fornita. NON LO FARA’! L’unica cosa che il regolatore a 5 V può fare è controllarela corrente che arriva dalla porta USB o dal connettore jack esterno. Se la corrente proviene da una fonte esterna fornita direttamente al pin 5V, il regolatore non può fare nulla.

Un’altra conseguenza derivante dall’applicare più di 5 V al pin 5V è il possibile danno alla porta USB del PC. Se l’Arduino è alimentato via USB allora questa tensione troppo elevata può provocare un ritorno di corrente verso la porta USB attraverso il MOSFET T1 usato come selettore per l’alimentazione.

method05bIL RIMEDIO

Sulla Ruggeduino c’è un circuito di taglio che assicura che il pin 5V venga scollegato se la tensione supera i 5,5 V.

method05fixPotete applicare fino a 24 V sul pin 5V senza che la Ruggeduino la veda mai, senza nulla che si danneggi.


Modo n° 6: applicare più di 3,3 V sul pin 3V3

COME

Applicare una tensione pari o superiore a 3,6 V sul pin 3V3. Qualunque shield  a 3,3 V collegato, o altri dispositivi alimentati da questo pint, verranno distrutti. Se vengono forniti 9 V o più allora anche il regolatore a 3,3 V dell’Arduino verrà distrutto e la corrente potrà anche fluire attraverso la porta USB del PC.

PERCHE’

Il pin 3V3 non ha nessun circuito di protezione. La tensione arriva direttamente al regolatore a 3,3 V dell’Arduino ed a qualunque shield o componente alimentato da questo pin. Se la tensione è maggiore di 9 V, il regolatore a 3,3 V verrà distrutto e potrà accadere che la corrente possa scorrere sulla linea a 5 V, e da lì arrivare anche alla porta USB del PC. La sovratensione distruggerà anche i 2 componenti collegati alla linea a 5 V: i microcontorllori ATmega328P e ATmega8/16U2.

method06IL RIMEDIO

Similarmente al circuito di protezione sul pin 5V, la Ruggeduino ha un circuito di taglio della tensione sul pin 3V3. Qualsiasi tensione superiore a 3,6 V applicata a questo pin fa scollegare il pin della Ruggeduino dalla linea a 3,3 V.

method06fix


Modo n° 7: fare un corto fra Vin e massa

COME

Alimentate l’Arduino dal jack esterno e poi fate un corto fra il pin Vin e massa. Il diodo di protezione dell’Arduino verrà distrutto e le piste sul PCB dell’Arduino potranno fondere e distruggersi.

PERCHE’

Non c’è nessuna protezione che limita la corrente sul pin Vin. Un corto circuito fra Vin e massa mette effettivamente in corto il jack esterno, facendo superare la corrente gestibile dal diodo di protezione.

method07La quantità di corrente che transita è limitata solo dalla resistenza delle piste del PCB dell’Arduino e dalla capacità dell’alimentatore utilizzato. Se la corrente è sufficientemente elevata, il diodo D1 si distrugge e le piste del PCB possono fondere a causa del caloro prodotto dall’elevata corrente.

IL RIMEDIO

La Ruggeduino ha un fusibile autoripristinante PTC da 500 mA in serie all’ingresso della linea di alimentazione (come quello che protegge l’ingresso della linea USB). Il fusibile limita la corrente a valori di sicurezza anche se il pin Vin viene cortocircuitato a massa.

method07fix


Modo n° 8: applicare l’alimentazione al pin 5V con un carico su Vin

COME

Se state alimentando la scheda con 5 V applicati al pin 5V ed avete un circuito connesso al pin Vin (o avete cortocircuitato Vin a massa) allora la corrente tornerà indietro al regolatore a 5 V distruggendolo.

PERCHE’

Non c’è nessuna protezione contro le tensioni inverse sul regolatore a 5 V per cui la corrente può scorrere dal pin 5V fino al regolatore e poi a qualunque cosa connessa al pin Vin.

method08IL RIMEDIO

La Ruggeduino ha un diodo contro le tensioni inverse sull’ingresso del regolatore a 5 V così da assicurare che nessuna corrente possa tornare indietro al regolatore, anche in presenza di un circuito connesso al pin Vin.

method08fix


Modo n° 9: applicare più di 13 V al pin di reset

COME

Applicare più di 13 V al pin RESET. Il microcontrollore ATmega328P si danneggerà.

PERCHE’

Il pin RESET è collegato direttamente al pin di reset del microcontrollore ATmega328P. Anche se questo pin tollera 13 V, tensioni maggiori lo possono danneggiare.

method09IL RIMEDIO

Sulla Ruggeduino è stato posto un resistore da 1 Kohm in serie al pin di reset dell’ATmega328P. Se al pin RESET viene applicata una tensione maggiore di 13 V, questo resistore limita la corrente che può scorrere e quindi limita i danni a questo pin.

method09fix


Modo n° 10: superare la corrente totale ammessa dal microcontrollore

COME

Impostate almeno 10 pin di I/O come output con segnale high e fate scorrere attraverso ognuno di essi 20 mA (ad esempio, accendendo 10 LED). Avete in questo momento superato il quantitativo massimo di corrente ammesso dal microcontrollore ed esso si danneggerà.

PERCHE’

Non basta limitare la corrente di ogni singolo pin di I/O: il quantitativo totale di corrente erogato da tutti i pin di I/O non può eccedere i 200 mA, stando alla scheda tecnica dell’ATmega328P.

method10IL RIMEDIO

Sulla Ruggeduino c’è un integrato apposito (MIC2009A, mostrato qui sotto) che controlla che indipendentemente dalla corrente erogata dai pin di I/O, il totale della corrente che scorre nell’ATmega328P non superi (mediamente) i 150mA.method10fix

Se più di 150 mA di corrente scorrono nell’ATmega328P il MIC2009A inzia a ridurre la tensione finché la corrente non è riportata entro valori di sicurezza.


Articolo orginale: http://ruggedcircuits.com/html/ancp01.html

Per gentile concessione di Rugged Circuits.

Traduzione di Leonardo Miliani.