Microcontrollore ICSP o pre-programmato


11

Ho progettato un PCB per la produzione su piccola scala; attualmente li sto saldando a mano in lotti di 20 alla volta. Questo PCB utilizza un microcontrollore ATMEGA168 che programmo prima di saldare alla scheda - questo metodo funziona bene per me al momento.

Sto cercando di avere un lotto di 200 schede prodotte e assemblate per me poiché il prodotto che ho progettato sembra essere abbastanza popolare. Sarebbe meglio includere un'intestazione ICSP sulla scheda o continuare a pre-programmare i circuiti integrati? La riprogrammazione della scheda dopo la fabbricazione o l'assemblaggio non è una funzionalità prevista o richiesta.

Non sono sicuro di come ciò avvenga in un ambiente di produzione su larga scala? L'aggiunta di un'intestazione ICSP aumenterebbe leggermente il costo di produzione, quindi la pre-programmazione è una pratica standard?

Risposte:


18

Suggerirei di includere sempre un'intestazione in quel tipo di quantità (piccola). Se arrivate a quantità maggiori, potete prendere in considerazione i pad per i pogo pin (dovreste creare un dispositivo per mantenere il PCB in allineamento) o, nelle vostre quantità, potreste usare uno dei cavi Tag Connect che richiedono solo fori e non popolati pastiglie (si agganciano alla lavagna).

inserisci qui la descrizione dell'immagine

Oltre a consentirti di riprenderti dall'esigenza di un aggiornamento di programmazione, questo ti permetterà di avere una casa di montaggio popolare le schede prima della programmazione, il che potrebbe migliorare la logistica.

La pre-programmazione è certamente un'opzione, anche in quantità di produzione (puoi anche far fare il distributore per te), ma sembra essere utilizzata principalmente nelle applicazioni più semplici. Di solito i chip su schede sono programmati (o possono essere programmati) dopo il montaggio.


Sembra una buona soluzione: grazie per l'aiuto, quei cavi sembrano abbastanza utili!
edcs,

1
Tag-Connect funziona bene per questo. Puoi anche ottenere versioni senza i perni di bloccaggio (la plastica nera a destra dell'immagine) che si basano invece sulla pressione o su una piastra posteriore che cattura i perni. Si noti che il cavo nella foto è di circa $ 50. Sul lato positivo, i contatti PCB sono circa $ 0.
Ben Jackson,

20

Se hai lo spazio per un'intestazione, questa è probabilmente l'opzione migliore e i pin leggermente sfalsati raccomandati da Majenko sono un buon modo per mantenere un connettore in posizione senza aggiungere complessità.

Ma ecco un approccio alternativo, per le schede in cui non hai spazio per adattarsi a un'intestazione, o l'intestazione standard non esegue tutte le attività di programmazione / configurazione / test della scheda.

Dato un PCB con fattore di forma ridotto come qui (diametro 33mm) inserisci qui la descrizione dell'immagine

puoi disporlo con punti di prova (etichettati sul retro) inserisci qui la descrizione dell'immagine

e creare un dispositivo di prova per esso (usando i pin Pogo ) inserisci qui la descrizione dell'immagine

Ciò richiede una certa capacità di lavorazione e almeno un trapano a colonna (perché i perni del pogo devono essere esattamente verticali). Tuttavia, se si è disposti a rischiare un prototipo di PCB, è possibile bloccarlo su un foglio di materiale e "individuare" attraverso i fori del punto di prova per ottenere i perni pogo esattamente nel posto giusto. (Ricevo 10 PCB a un prezzo ridicolmente basso da Itead, quindi perderne uno non è un grosso problema).

Con un tornio e un mulino, realizzare i pilastri e i morsetti per posizionare il PCB esattamente nel posto giusto è un gioco da ragazzi, ma non è troppo difficile con strumenti più semplici.

Quindi si adatta semplicemente ogni PCB, programmarlo e testarlo. Il connettore sciolto normalmente va ai pin dell'intestazione su un Launchpad TI, utilizzato per programmare questa MPU (TI MSP430) tramite l'interfaccia SBW, ma lo stesso principio si applicherebbe a JTAG o ad altre interfacce. (Il cavo marrone nella parte superiore è un cavo co-ax che trasporta un segnale di calibrazione a un contatore di frequenza). inserisci qui la descrizione dell'immagine

La base in mogano lucido è opzionale; Preferisco solo uno stile steampunk per i miei impianti di prova.


Questa è un'ottima risposta e grazie per aver dedicato del tempo a fornire una risposta così utile e dettagliata! Non l'ho contrassegnato come risposta perché nel mio caso, ho lo spazio per adattarmi a un'intestazione ICSP, ma è qualcosa che terrò a mente se devo costruire qualcosa di minuscolo.
edcs,

2
È una bella maschera (o è un appuntamento fisso)? Esiste qualcosa per la chiave angolare del PCB o è semplicemente allineato ad occhio?
Spehro Pefhany,

Osservo i perni del pogo attraverso i fori visibili del punto di prova prima di spingere verso il basso e far oscillare i morsetti. Crudo ma funziona. Su un PCB più grande raccomanderei un paio di perni di posizionamento, ad esempio nei fori di montaggio del PCB.
Brian Drummond,

13

Aggiungo sempre spazio per un'intestazione ICSP, anche se non è popolata. Ho tre modi per farlo al momento a seconda della situazione.

Uno dei miei progetti ha un'intestazione del passo molto fine per la quale ho costruito un adattatore (il filo con anima piena da 0,6 mm è perfetto per questo):

inserisci qui la descrizione dell'immagine

Uso questo connettore quando lo spazio ha un valore assoluto. (Mi dispiace che sia sfocato, la fotocamera del mio telefono è nitida).

La seconda disposizione che uso spesso è quella di incorporare l'ICSP in un'altra intestazione. Se i pin ICSP possono essere utilizzati anche come pin GPIO e puoi utilizzarli con una connessione rimovibile, è abbastanza semplice includere qualsiasi altra connessione ICSP di cui potresti aver bisogno (MCLR, ad esempio) a un costo minimo. Quindi basta collegare il programmatore a quell'intestazione con un adattatore che dovrebbe essere abbastanza semplice da realizzare.

Il terzo modo è fornire un footprint di intestazione "sfalsata" o "offset" per ICSP. Lo uso principalmente su schede di sviluppo in cui l'utente finale potrebbe voler fare ICSP ma non vuole rovinare la propria scheda saldando un'intestazione in modo permanente. Questa impronta consente a un'intestazione standard di inserirsi a pressione e stabilire un buon contatto solido senza alcuna saldatura:

inserisci qui la descrizione dell'immagine

Quando inizi a gestire quantità molto maggiori, può sicuramente essere più conveniente convincere il produttore di chip a pre-programmare i chip per te con il tuo firmware. Penso che tutti i principali produttori forniscano questa struttura.


Grazie per la risposta dettagliata - informazioni sicuramente utili qui! Non ho accettato la tua risposta perché userò il cavo Tag Connect suggerito, anche se il metodo pin sfalsato funzionerebbe altrettanto bene.
edcs,

Atmel lo fornisce sicuramente come opzione.
Ignacio Vazquez-Abrams,

2
L'impronta sfalsata dell'intestazione è pura genialità. +1
Vladimir Cravero,

5

Se si utilizza un processore che può essere riprogrammato in un circuito, consiglio vivamente che le schede siano progettate in modo tale da consentirne l'uso, anche se effettivamente utilizzare la funzionalità richiederebbe la realizzazione di un apparecchio per quello scopo specifico e non si non hai intenzione di costruirne uno. Se si riscontra un problema del firmware dopo la produzione di un grande lotto di schede, la costruzione di un dispositivo in grado di riprogrammare quelle schede può essere molto più economica rispetto alla necessità di rielaborarle o ricostruirle.

In alcuni casi, un buon approccio potrebbe essere quello di selezionare il layout I / O di una scheda in modo tale che i pin del controller necessari per la riprogrammazione in-circuit siano assegnati a scopi che "naturalmente" li espongono a punti di contatto facilmente accessibili. Ad esempio, una scheda progettata per l'uso con contatti a cupola in metallo potrebbe avere i contatti stessi collegati ai pin di programmazione nel circuito. Un tale progetto non richiederebbe di dedicare spazio nel layout per un connettore di programmazione, ma - specialmente se anche il contatto della batteria era generalmente dimensionato, consente a un connettore di programmazione di cavarsela con semplici contatti a molla.

Nota che non importa se il codice sembra essere ben testato; le modifiche da un batch di chip al successivo possono comunque causare problemi imprevisti. Ad esempio, ho progettato un prodotto che avrebbe dovuto spegnersi sotto il controllo del processore avendo l'output del processore "alto" su un pin quando doveva essere "acceso". Sul primo batch di 10.000 unità tutto ha funzionato bene, ma su un batch successivo il processore avrebbe iniziato a funzionare male quando la sua tensione ha raggiunto i 2 volt, e potrebbe riportare quel pin su "alto"; l'uscita "alta" a 2 volt era appena sufficiente per riaccendere l'unità. Poiché il processore è stato specificato per rimanere in modalità di sospensione fino a IIRC 1,6 volt, è stato possibile correggere il problema riprogrammando le unità in modo che entrassero in modalità sospensione quando si attiva il loro stato di spegnimento. Se tale riprogrammazione non fosse stata possibile, sarebbero state necessarie rilavorazioni molto più costose (oppure rottamazione e ricostruzione).

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.