Soffio di fumo nell'aria. 3 PCB diversi. PCB ha fantasmi?


15

Sì, questo è un haiku. (EDIT: risolto ... ora è in realtà un Haiku)

No, non sto sorridendo.

Sto facendo dei test standard; vedere cosa succede quando una delle due barre di alimentazione viene messa in corto circuito su GND su un PCB che ho progettato. Stiamo parlando di un alimentatore da 12 V alimentato da un alimentatore da banco, con un convertitore buck integrato da 5 V che fornisce l'altro binario sul PCB (a cui è collegato il mio ATmega328PB).

La guida da 12 V ha un gruppo di prese a botte DC che saranno esposte agli utenti finali. Quindi, naturalmente, ho deciso di inserire un cacciavite da gioielliere in uno di essi per condurre il mio test di corto circuito.

Ecco, uno sbuffo di fumo dal mio ATmega328PB.

Penso che ciò significhi che è successa una delle seguenti cose:

inserisci qui la descrizione dell'immagine

Tempo schematico

Ecco lo schema delle connessioni all'ATmega328PB:

Schema ATmega328PB

Ecco tutti gli schemi delle cose nel progetto che hanno una connessione alla guida a 12 V (la guida VBAT +) e che controllano i percorsi di ritorno della corrente GND:

Controllo di potenza FET

Front End analogico

Ed ecco uno schema dei jack a cilindro e dei relativi pin di rilevamento dei jack (si noti che questi si collegano direttamente ad alcuni dei pin di ATmega328PB senza resistenza in serie):

Martinetti DC con pin di rilevamento jack

Il piano di corto circuito

Il piano per gestire i cortocircuiti sulla guida a 12 V era semplicemente quello di disattivare il FET del canale N LOAD_FET a causa di una delle due condizioni logiche soddisfatte nel firmware:

  1. Il campionamento ADC a una frequenza di 1 Hz rileverà la condizione di sovracorrente e causerebbe l'interruzione della conduzione dell'interruttore FET_LOAD, interrompendo così la corrente di corto circuito
  2. La tensione che alimenta l'ATmega andrebbe in black-out e l'MCU ripristinerebbe e inizializzando l'interruttore FET_LOAD su "off", tagliando così la corrente di corto circuito

Il grande fumo

Ecco una sonda oscilloscopio di ciò che accade alla guida Vbat + su CH1 (giallo) e alla guida +5 su CH2 (blu) quando si collega Vbat + a GND tramite l'applicazione di un cacciavite da gioielliere ai fili esposti di un cavo che è collegato al circuito jack a botte (non ho inserito il cacciavite nella presa ) mentre è alimentato da un alimentatore da banco impostato su 12V @ 5 Amp:

Corto circuito |  CH1 - Vbat + |  CH2 - + 5 V.

Dopo ciò, l'ATmega si surriscalda semplicemente ogni volta che accendo la scheda e agisce efficacemente come un cortocircuito tra l'ingresso + 5V e la massa del segnale. Ho dissaldato l'ATmega con aria calda e ho testato il FET N-channel FET_LOAD per vedere se era fritto. In effetti aveva fallito in modo tale che non si sarebbe più spento o riacceso quando una tensione di gate era stata applicata a +5 o terra del segnale, ma invece operava da qualche parte nella zona crepuscolare tra. Stava scendendo di circa 2,3 volt mentre conduceva ~ 200 mA indipendentemente dal fatto che fosse "acceso" o "spento" quando un carico veniva inserito nel jack del barilotto.

impressione

Avevo la sensazione che, a causa del danneggiamento della FET, il vettore per danni all'ATmega potesse essere stato causato dalla trasmissione di un'alta tensione attraverso lo scarico della FET al suo gate e all'MCU. Ha effettuato alcuni test successivi con tensioni più basse che alimentano la guida a 12V. Nota che le prime tre immagini sono sostanzialmente le stesse, ma con correnti di picco diverse. Una volta spento l'ATmega (a causa della caduta di tensione sulla guida Vbat +), il segnale LOAD_GND_ENABLE fornito dall'MCU (blu, in basso) a sua volta diventa basso, tagliando l' interruttore FET_LOAD .

Leggenda:

CH1 = Tensione attraverso Rshunt (0,005 ohm) CH2 = Tensione con segnale LOAD_GND_ENABLE (collegato ad ATmega)

Vbat + fornito a 6V:

inserisci qui la descrizione dell'immagine

Vbat + fornito a 7V:

inserisci qui la descrizione dell'immagine

Vbat + fornito a 8V:

inserisci qui la descrizione dell'immagine

Vbat + fornito a 9V:

inserisci qui la descrizione dell'immagine

In quest'ultima, la corrente non ha mai smesso di aumentare e il segnale LOAD_GND_ENABLE ha fatto una danza funky, ma tutto sommato sembrerebbe che i limiti massimi non siano mai stati superati sul pin LOAD_GND_ENABLE (almeno non penso che fossero ... Ho solo un ambito a 2 canali e avrei dovuto misurare la guida + 5V per sapere quale voltaggio su LOAD_GND_ENABLE wrt Vcc).

Prossimi passi

Mi rimane solo 1 tavola che può essere sacrificata, quindi il mio piano è di:

  1. Utilizzare un ATmega328PB vuoto in modo che tutti i suoi pin vengano impostati su un'impedenza elevata senza alcuna periferica configurata / inizializzata. Ripetere il test di corto circuito per vedere se ATmega328PB continua a fumare. Se non va male, allora l'MCU deve essere fallita perché stava provando / affondando troppa corrente da uno dei suoi pin configurati come output mentre stava eseguendo il firmware nei test precedenti.

  2. Prova con un ATmega328PB montato su una scheda breakout (purtroppo questo chip non viene fornito in pacchetti DIP) collegato al PCB tramite flywires. Inizia in modo selettivo a connettere un singolo flywire alla volta, eseguendo il test e vedendo quale flywire è quello responsabile della frittura di ATmega328PB.

  3. Ordinare un nuovo PCB campione con layout alterato in modo tale che tutte le tracce che si collegano all'ATmega328PB siano collegate tramite ponti di saldatura che possono essere saldati a mano durante il test. In questo modo il test di corto circuito (e qualsiasi altro test) può essere condotto con l'ATmega collegato a un numero limitato di segnali alla volta, e semplifica il collegamento di tutti gli altri circuiti esterni a questi ponti di saldatura per controllarli indipendentemente dall'ATmega .

Sì, è davvero una domanda (e)!

E le domande sono:

  • qualcuno vede qualcosa qui che io no. È ovvio? Spero non sia ovvio ...
  • Quale sarebbe il tuo prossimo passo?

5
+1 per l'haiku e per una domanda dettagliata completa davvero ben fatta. Ma sfortunatamente non ho l'esperienza / conoscenza per iniziare a dare una risposta.
manassehkatz-Reinstate Monica,

2
Una frequenza di campionamento di 1 secondo per la cortocircuito è WAY TOO SLOW. Supponendo che la parte a rischio sia un semiconduttore, con una regione attiva di spessore di 10 micron, che 10 micron con un Tau termico di 1,14 microsecondi, è necessario rilevare la sovracorrente (così breve) molto velocemente.
analogsystemsrf

2
Le cose elettriche non funzionano dopo aver fatto uscire il fumo magico ...
Solar Mike,

Vorrei che avessimo visto altre domande come questa. +1
Wossname

Risposte:


1

Penso che il tuo interruttore nella linea LOAD_GND sia probabilmente il colpevole qui, combinato con le linee di rilevamento jack non protette al micro (che noterei sono collegate a LOAD_GND per qualsiasi jack in cui NON è inserita una spina.

Considera cosa succede se spegni quel mosfet (il jack rileva le linee su qualsiasi presa senza un jack inserito sarà collegato alla tensione della batteria tramite il carico cortocircuitato, ne conseguirà fumo), dovresti almeno avere una serie di resistenze e un morsetto sul jack rileva le linee (diciamo 10k circa e una coppia di diodi), ma davvero non vedo cosa lo switch LOAD_GND ti compra davvero su un interruttore high side?

Per inciso, la scena automobilistica ha interruttori laterali alti controllati dalla logica davvero piacevoli con intervento di sovracorrente incorporato e rilevamento della corrente, vale la pena dare un'occhiata.


Hai assolutamente ragione. Molto conciso, molto giusto. Grazie a te signore.
macdonaldtomw,

3

La guida a 12 V ha un gruppo di jack DC che verranno esposti agli utenti finali. Quindi, naturalmente, ho deciso di inserire un cacciavite da gioielliere in uno di essi per condurre il mio test di corto circuito.

Ciò significa che hai messo + 12V sulla JACK_DETECTlinea non protetta , friggendo l'MCU. Vedi "tensione su qualsiasi pin [..]" sopra.

Ri-progettare il circuito che un breve morto tra VBAT+e JACKx_DETECTnon consente la tensione sul pin MCU a salire sopra VCC - ad esempio con un resistore e un diodo.


0

Apparentemente non posso commentare (ancora). Ma ho cambiato la mia risposta per concordare con quanto sopra, con la seguente osservazione.

Un elemento a cui mi occuperei è quello di assicurarmi che i tuoi FET siano in uno stato ben guidato (pullup / pulldown) quando ATMega è nello stato di avvio / ripristino. I pin sono normalmente impostati sulla modalità di ingresso IIRC, che fa galleggiare la porta FET e presenta un drive Vgs scadente, aumentando la resistenza del canale. Se il flusso di corrente tra le connessioni di drain e source è significativo, si surriscalda / distrugge rapidamente il FET.

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.