Come attacchi una nuova tavola?


24

Ottieni il tuo PCB dal produttore. È un nuovo design, ovviamente hai affettato tutte le parti principali, ma sai che ci saranno problemi. Ci sono troppe cose che possono causare problemi, ad esempio:

  • Errori nello schema
  • Errori nel layout, non rilevati da ERC / DRC
  • Parti fuori posto durante la saldatura
  • Shorts e simili durante la saldatura
  • qualsiasi combinazione di quanto sopra

Ultimamente ho avuto due schede relativamente complesse in cui ho dovuto de-popolare tutte le schede dopo l'assemblaggio per individuare l'errore. Ho trovato gli errori, ma le schede erano rottami.

Ho provato a iniziare con il minimo indispensabile di parti e parti che non possono essere saldate a mano (sto usando pasta, stencil e tostapane). In genere si tratta dell'MCU, del connettore JTAG e di alcuni condensatori. Quindi sto gradualmente popolando altre aree controllandole per problemi.

Questo approccio funziona, ma è molto lento. Devo anche commentare / commentare qualsiasi codice che presuppone la presenza di un determinato hardware.

Qualcuno ha suggerimenti / suggerimenti su come affrontare i PCB di nuova progettazione?

EDIT: Sto pensando principalmente al tipo di problemi che lascia la tua scheda morta, come i pantaloncini nascosti della power rail o qualsiasi cosa che bruci l'MCU.


2
può essere una buona idea popolare la tua alimentazione e la distribuzione, compresi i blocchi di massa e bypass, e quindi applicare l'alimentazione in ingresso alla scheda. se hai un berretto di tantalio all'indietro, lo saprai in fretta. quindi controlla che l'MCU (ed ecc.) abbia le giuste tensioni di alimentazione sui pin giusti, prima di passare a popolare quei dispositivi.
JustJeff,

1
Come commento laterale, penso che sia buona norma mantenere il codice "modulare" come hai fatto tu (rimuovendo la funzionalità per le periferiche mancanti). Scrivo sempre il mio codice in modo tale che funzionerà in una modalità "demo" che ignora le periferiche mancanti ma continua a scorrere la logica del programma fino a quando non sono sicuro che le periferiche siano correttamente sottoposte a debug. Quindi almeno il programma viene eseguito in modo da poter sapere se è stato programmato.
AngryEE,

2
Quando si applica l'alimentazione in ingresso, iniziare con un limite di corrente basso.
Starblue,

1
Dovrebbe essere wiki della comunità.
Brian Carlton,

1
@Morten - Ah, ha senso. Hai ragione, è improbabile che i cappellini possano causare problemi.
Kevin Vermeer,

Risposte:


10

Ho deciso che il breadboarding in anticipo è una perdita di tempo a meno che non ci siano aspetti delle prestazioni di una parte che è necessario misurare da soli.

Penso anche che costruire la tavola a pezzi sia una perdita di tempo. Il debug hardware iniziale richiede solo un giorno o due. Eventuali problemi impercettibili non verranno visualizzati fino all'integrazione del software. Preferirei eseguire il debug di un circuito (quello completo) piuttosto che diverse riduzioni ad hoc del circuito.

Costruisci la cosa! Montare l'intera scheda e accenderla. Guarda la tensione di alimentazione. Quanti mA consuma? Quale parte sta bruciando a caldo? Quale parte è calda? Quindi prova a masterizzare il firmware su qualsiasi microcontrollore sulla scheda. Quindi iniziare a scrivere il firmware. Fai partire l'orologio e attiva un perno. Ottieni comunicazioni seriali (o quant'altro). Ora scrivi i programmi di test per ogni periferica. Quindi costruire il dispositivo di test di produzione e iniziare a scrivere il firmware "reale".


Modificare:

Alla ricerca di binari bloccati

Se una rotaia di alimentazione è bloccata a terra (misura 0 ohm con un ohmmetro), accenderla su un'alimentazione da banco. Impostare la tensione normalmente e il limite di corrente su alcune centinaia di mA. Stampa il design del PCB su carta e trova un DMM che misura i microvolt. Misurare i microvolt iniziando dai terminali di alimentazione e annotare le cadute di tensione sulla stampa del PCB. Osservando le differenze di microvolt, è possibile tracciare esattamente dove sta andando la corrente senza spopolare o tritare il PCB. Questa tecnica è migliore dell'utilizzo di un ohmmetro perché è possibile pompare molta corrente attraverso il circuito, più di quanto fornirà un normale ohmmetro.

Una tecnica simile funziona per trovare tracce in corto su una tavola altrimenti popolata. Eseguire la scheda e utilizzare un ambito per trovare tracce "digitali" che si trovano in un intervallo di tensione intermedio.


Ho usato lo stesso approccio. Di solito funziona, ma un paio di volte è tornato a mordermi piuttosto male. L'ultima volta era uno slot apparentemente innocuo sotto un connettore che era stato inserito durante la produzione e aveva messo in corto circuito il terreno e gli aerei di potenza. Colpa tutta mia, ma è stato un errore frustrante e difficile da trovare.
Morten,

1
Per usare l'approccio "Costruisci la cosa", penso di dover ordinare più di un singolo PCB.
Morten,

Ho visto sonde "squeaker" usate per uno scopo simile: azzerare il corto. Purtroppo, non riesco a trovare un link al prodotto.
Toybuilder


20

Lo faccio popolando la scheda con il minimo indispensabile inizialmente, facendo funzionare prima la fornitura, quindi l'MCU, quindi aggiungendo i vari sottosistemi uno alla volta e testandoli prima di continuare, scrivendo il software di test secondo necessità. Non trovo affatto lento il processo.

Ho testato schede di qualsiasi complessità a bordo nudo. Costa extra ma ne vale la pena.


3
ci vuole solo un grosso bug trovato in questo modo per renderlo molto più veloce
Kortuk

11

Tagli solo circuiti molto piccoli. Quindi ho saldato i piccoli circuiti su schede protettive. Se si lavora con chip SMD, aiuta ad ottenere gli adattatori SMD-> Thru-hole.

Questo in sostanza ti dà "blocchi". Ho quindi saldato questi circuiti su un kit di sviluppo o un vecchio PCB con l'MCU che sto cercando di utilizzare. Sembra atroce, con quattro o cinque piccoli PCB diversi che pendono da uno più grande, ma funziona.

Una volta che ho i blocchi che funzionano su una scheda di sviluppo, mi sposto su un PCB. Se le modifiche schematici a tutti rendendo il PCB, vado indietro e rielaborare il blocchi di costruzione e test sul bordo dev di nuovo.


In una nota a margine, invece di commentare il codice, dovresti esaminare le direttive del preprocessore #define e #ifdef. Semplifica notevolmente l'aggiunta e la rimozione di blocchi funzionali di codice in una MCU.


Sembra come lo faccio, che ritengo sia un modo molto carino di evolvere un design. Inoltre, consente di riutilizzare le parti in un secondo momento.
Trygve Laugstøl,

9

Con schede di qualsiasi complessità, è quasi altrettanto importante sviluppare un piano di test quanto lo è sviluppare la scheda stessa. Anche all'inizio della progettazione della scheda, è una buona idea sapere cosa testerai, anche se l'implementazione non esiste ancora; "design for test" come si suol dire. Assicurati di portare segnali chiave ai pad del punto di prova. Prova a dividere il progetto in modo che i singoli sottosistemi possano essere creati in modo indipendente o il più vicino possibile.


Mmm, ottimo consiglio! Per qualche ragione non ho mai pensato a "design for test" in questo contesto prima.
morten

2
puoi portarlo al livello successivo progettando la capacità di autotest. aumenta la complessità della tua scheda, ma può semplificare la verifica del tuo progetto e ti dà anche la possibilità di includere test automatici all'accensione nel tuo prodotto sul campo.
JustJeff,

8

Suppongo che una domanda chiave sia: qual è la checklist pre-volo prima di rilasciare una scheda in produzione. La mia lista pre-volo è:

  1. Revisione schematica del progetto
    1. Nomi netti e porte off-sheet
    2. Pin di alimentazione collegati
  2. Schematic DRC
  3. Scrub impronta
    1. Codice completo del produttore
    2. Il numero di parte corrisponde all'impronta su PCB e pinout nello schema
    3. Il numero di pin dell'impronta è "lato destro rivolto verso l'alto" e corretto
    4. Dimensioni dell'impronta ricontrollate per dimensioni dei fori, gioco, elementi di sicurezza, ecc.
    5. I connettori di accoppiamento sono orientati correttamente; pin 1 a 1, 2 a 2, ecc.
  4. Dimensioni PCB e fori
  5. PCB DRC
  6. Fab Drawings ha tutti i livelli e le chiamate.

Questa risposta comunità wiki'd.


5

Ciò che hanno detto gli altri ragazzi è tutto valido, ma vorrei aggiungere i miei 2 centesimi.

La cosa migliore in assoluto da fare non è commettere errori in primo luogo. Sembra sciocco menzionarlo, ma troppo spesso viene trascurato. Fai una revisione schematica e del progetto PCB. Chiedi a più persone di vedere il tuo design, anche gli ingegneri principianti. Utilizzare i controlli delle regole di progettazione nel software. Usa qualsiasi risorsa disponibile per assicurarti che il tuo design sia buono. Avere buone pratiche di ingegneria per migliorare le probabilità di catturare un bug.

Negli ultimi 20 anni, e avendo progettato dozzine e dozzine di PCB (alcuni con 14 strati e 2.000 componenti), ho avuto solo DUE PCB che erano inutilizzabili al primo giro di prototipi. Ovviamente ho avuto dei bug, ma solo due schede sono state "murate".

In ogni caso, i prototipi erano completamente popolati prima che io iniziassi mai a eseguirne il debug. Avrei tirato fuori le barre di alimentazione per assicurarmi che non ci fossero pantaloncini. Quindi eseguire un'ispezione visiva usando un microscopio. Quindi accenderlo. Dopodiché inizierei un test metodico e una sessione di debug, lavorando su piccole sezioni del circuito alla volta fino a quando tutto è testato e funzionante. Nella maggior parte dei casi, farei un paio di modifiche e passerei alla produzione in serie con la prossima revisione del PCB.

Niente di tutto ciò sarebbe stato possibile senza grandi sforzi per ridurre gli errori in anticipo.


Alcuni produttori (come 4pcb) offrono persino test DFM gratuiti sui tuoi gerber. Quei test gratuiti sono una bella aggiunta alla DRC dei tuoi strumenti PCB.
ajs410,

4

Su un design totalmente nuovo, generalmente seguo un approccio di divisione e conquista.

Cerco di isolare i principali blocchi architettonici e di alimentare ogni sezione in modo indipendente utilizzando interruttori / alimentatori CC / potenziometri ecc. Per simulare le dipendenze necessarie per far funzionare il circuito.

Questo approccio generalmente non è difficile quando si ha a che fare con alimentatori: la maggior parte dei convertitori ha bisogno solo di input e forse di alcuni segnali logici per iniziare a cambiare (e si spera non liberare il fumo magico del fallimento).

Le schede che sono la seconda / terza rotazione (clean-up) di solito non hanno bisogno di tale diligenza. Posso solo isolare parti del circuito che sono state modificate, testarle in modo indipendente e salvare i test del resto del circuito per l'accensione all-in.

Non dimenticare i dispositivi di protezione individuale. Mi sento a disagio a alimentare qualsiasi cosa con i componenti esposti senza gli occhiali di protezione (e talvolta i tappi per le orecchie ...)


1
+1 per la protezione degli occhi / orecchie! Una volta ho sentito un DAC esplodere da tutto il laboratorio - il ragazzo che ci lavorava aveva un punto cieco temporaneo nella sua visione per circa 5 minuti!
Toybuilder,

3

Bene, uno dei primi passi per evitare che si verifichino reti in cortocircuito è in primo luogo fare un buon uso dei controlli delle regole di progettazione nel software della scheda. Entrambi a livello schematico per assicurarsi che le reti non vengano inavvertitamente legate insieme quando non dovrebbero esserlo; e a livello di PCB per garantire spazi sufficienti tra le reti.

Se ci sono elementi di progettazione non testati, piuttosto che affrontare un progetto completamente nuovo su una scheda, provo a costruire schede di prova di prova e di prestazione su PCB proto economici (come il servizio BareBonesPCB di Advanced Circuit - due strati, nessuna maschera di saldatura, circa $ 80 per un turno di 24 ore).

Anche quando faccio una scheda completa, sulle schede di prima generazione, mi piace inserire molte intestazioni di breakout. In alcuni casi, è possibile popolare due PCB identici, uno con la parte "stabile", con i perni di testata che escono verso l'alto; e un altro con la parte "testing", con prese per pin di entrata inferiori. Se tutto va bene, puoi finire di popolare entrambe le schede. In alternativa, è possibile girare nuove versioni del circuito "testing" che è possibile scambiare in posizione.


le intestazioni sono fantastiche, soprattutto se devi rielaborare o aggiungere funzionalità in un secondo momento o se hai bisogno di output di debug improvvisati. Mi piace anche l'idea di fare un BareBones per piccoli protos ... potrei farlo da solo
ajs410
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.