Ho bruciato uno spillo. Ora cosa faccio?


16

Ho accidentalmente cortocircuito i pin 10 e 11 con 10 impostato sull'uscita HIGH e 11 impostato sull'ingresso. Il pin 11 non funziona. Come faccio a capire quale componente ho bruciato?

Il problema può essere risolto?


3
Specificare quale scheda Arduino è aiuterebbe a identificare i componenti eventualmente compromessi, dallo schema.
Anindo Ghosh,

@AnindoGhosh L'ho taggato uno ^
asheeshr

Risposte:


21

Assunzione: poiché non è stato specificato il modello Arduino specifico, utilizzare Arduino Uno per illustrare questa risposta. La logica si applica in modo identico agli altri Arduinos, per i rispettivi pin-out e tensioni operative del microcontrollore.

Fare riferimento a questo diagramma pin-out per Arduino Uno : ( fonte )


Pin-out di Arduino Uno


  • Come si può vedere, i pin 10 e 11 sono entrambi pin GPIO standard.
  • Qualsiasi GPIO non può emettere una tensione superiore alla tensione di alimentazione del microcontrollore (V CC ) , in Arduino. Per Uno V CC è di 5 Volt.
  • Qualsiasi pin GPIO può resistere a tensioni di ingresso fino a V CC e leggermente più alte (5,5 Volt è tollerato di serie)
  • Inoltre, quando qualsiasi Arduino GPIO è impostato per l'ingresso, è in uno stato ad alta impedenza, rendendo così impossibile passare abbastanza corrente in esso per le tensioni coinvolte, affinché si verifichino danni.
  • Pertanto, cortocircuitare i pin 10 e 11 non può causare alcun danno a nessuno dei pin , nelle circostanze riportate nella domanda.

Esaminiamo ora le possibilità alternative:

  • Se Uno è alimentato dal jack a barilotto CC invece di 5 volt dalla connessione USB o da un altro alimentatore regolato, il pin Vin emette 1 caduta di diodi inferiore a questa tensione di ingresso: sarebbe di circa 8,3 Volt se l'alimentazione fosse di 9 Volt batteria collegata al jack barile.
  • Cortocircuitare questo pin VIN su uno qualsiasi dei pin analogici o digitali dell'Arduino ( diversi dai pin specifici che sono protetti da resistori ) è molto probabile che distrugga il circuito interno di diodi / protezione ESD per quel pin all'interno del microcontrollore o distrugga il microcontrollore si. Questa potrebbe essere la causa del problema.
  • Un'altra ipotesi è che il Pin 11 sia stato esposto ad un'altra fonte di alta tensione, oltre il Vcc della scheda. Ciò potrebbe essere dovuto al back-EMF di un motore o all'alta tensione (può essere di oltre 10 volt ) generata da un bender piezoelettrico (altoparlante piezoelettrico) se viene urtato contro qualcosa. Ciò potrebbe causare danni ai diodi ESD / ai circuiti di protezione come indicato sopra
  • Successivamente, le scariche elettrostatiche dall'elettricità statica possono danneggiare qualsiasi dato pin GPIO anche quando il dispositivo non è acceso. Ti è capitato di pettinarti e poi toccare la tavola di Arduino ad un certo punto, per esempio? Il problema verrà visualizzato solo in seguito, quando si tenta di utilizzare quel pin sulla lavagna, quindi la causalità è spesso difficile da individuare.
  • Infine, se due pin sono entrambi impostati in uscita , uno impostato in alto e l'altro in basso, e questi sono in corto, il pin "Alto" vede un corto a terra attraverso il pin "Basso". Questa fonte per affondare la contesa può causare il surriscaldamento del microcontrollore e, sebbene i microcontrollori AVR abbiano in genere protezione dell'output sui GPIO, ciò potrebbe causare l'arresto dell'uno o dell'altro pin, anche se in questo caso è più probabile che l'intero guasto del microcontrollore .

Detto questo, se per qualsiasi motivo il Pin 11 non esegue più input o output, i corrispondenti circuiti di protezione interna dell'MCU sono irrimediabilmente danneggiati. Non c'è modo di ripararlo. Questo è stato trattato bene nella risposta di Manishearth .

Considerati fortunato che l'intero microcontrollore non sia stato distrutto e ricodifica le tue applicazioni per non utilizzare più il Pin 11.

Suggerimento personale: ho bloccato le prese VIN sulle mie schede Arduino molto tempo fa attaccando un po 'di isolante spellato in esse, per evitare di esporre accidentalmente qualsiasi ponticello a quella tensione. Se dovessi davvero usare VIN un giorno, passerò un'ora deliziosa lottando per estrarre quel po 'di isolamento bloccato lì dentro.


6
Blocco delle prese VIN. Brillante!
Jeff Severns Guntzel,

9

Non dovrebbe essere possibile distruggere il pin accorciando l'input in output. I pin di input possono gestire la tensione di livello Vcc, quindi dovrebbero essere in grado di gestire la tensione di output inferiore dall'altro pin. Inoltre, hanno un'alta impedenza, quindi dovrebbero proteggerli dalla maggior parte delle cose. (Vedi la risposta di Anindo su questa stessa domanda per maggiori dettagli su questo). Nel tuo caso specifico, suppongo che sia accaduto uno dei seguenti:

  • Entrambi i pin sono stati configurati per l'output
  • Hai messo in corto qualcosa e non te ne sei accorto
  • (Dato che hai detto in chat che il perno ha ripreso a funzionare), la polvere accumulata o l'umidità hanno fatto cadere il perno

Tuttavia, puoi distruggere i pin con le seguenti connessioni (presi da questo eccellente post , ci sono molti altri modi in generale per distruggere un Arduino lì):

  • Pin di uscita ALTO su GND
  • Pin di uscita ALTO a Pin di uscita BASSO
  • Applicare qualsiasi tensione superiore a 5,5 V a un pin (ciò potrebbe distruggere più del solo pin)

Per quanto riguarda cosa fare in generale quando si distrugge un perno:

In tali casi, il pin del microcontrollore è bruciato e non può essere riparato. L'unico modo per risolvere questo problema è sostituire il microcontrollore (se si tratta di un pacchetto DIP è relativamente economico e facile) o acquistare una nuova scheda. Quando si sostituisce il microcontrollore, è necessario masterizzare il bootloader sul nuovo microcontrollore (a meno che non lo si abbia con il bootloader) se si desidera programmare Arduino tramite USB.


Dando un'occhiata agli schemi, le seguenti schede hanno pin direttamente collegati al microcontrollore.

  • Uno
  • Mega
  • Duemilanove
  • LilyPad
  • Fio
  • Nuova Generazione
  • Diecimila

Sulle seguenti schede sono presenti alcuni pin protetti e difficili da bruciare:

  • BT (pin 13, con una resistenza da 1k)
  • USB v2.0 (pin 13, con una resistenza da 1k)
  • Nano (pin Rx / Tx, con resistori da 1k)
  • Seriale (pin 13, con una resistenza da 1k)
  • Seriale unilaterale (pin 13, con una resistenza da 1k)
  • Mini 03 (pin 13, con una resistenza da 1k)

Tuttavia, se si brucia un pin su questi, non c'è molto altro da fare che sostituire il microcontrollore.

Se sembri soggetto a scottature, potresti provare il ruggedduino .


3

Un'altra cosa abbastanza economica da provare è comprare un altro atmega328, scaricare il tuo sospetto chip danneggiato, caricare quello nuovo nel socket, bruciare il bootloader e vedere se questo aiuta. Supponendo che la tua scheda abbia un DIP atmega328 con socket.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.