Metodo per assegnare indirizzi univoci per scheda


18

Stiamo progettando schede trasmettitore / ricevitore per un'applicazione di controllo remoto RF. Per evitare discorsi tra coppie non corrispondenti, vogliamo indirizzi univoci per scheda. L'indirizzo è specificato per i chip codificatore / decodificatore tramite 8 pin di indirizzo.

Probabilmente assembliamo un piccolo lotto (circa 25) a mano, ma i PCB saranno fabbricati professionalmente.

Qual è il tuo modo preferito di fare indirizzi univoci per scheda in una situazione come questa? Ho ponderato interruttori DIP, ponticelli e tracce di taglio / ponticello. Mi sto inclinando a tagliare le tracce, ma mi piacerebbe sapere cosa fanno di solito le persone più esperte.


quanto dovrebbero essere riconfigurabili? e quanto fisicamente robusto? è sicuro supporre dal telecomando RF che ci sarà un ambiente di vibrazione ostile?
JustJeff,

4
Evitare interruttori DIP; le persone li cambieranno.
Brian Carlton,

@JustJeff, non dovrebbero essere riconfigurati a meno che uno dei controller fallisca e debba essere sostituito, o qualcosa del genere. Non ci saranno molte vibrazioni.
Steven Ourada,

@Brian, sì, c'è questa possibilità, ma non sono troppo preoccupato per questo.
Steven Ourada,

1
Mi sto rendendo conto che la mia domanda era probabilmente troppo ampia e discutibile. Mi piacciono le risposte e ho imparato cose buone; grazie a tutti coloro che hanno contribuito.
Steven Ourada,

Risposte:


15

Sono sorpreso che nessuno abbia menzionato EEPROM. Abbiamo dovuto inserire numeri univoci nei prodotti un sacco di volte e la maggior parte delle volte sono andati nella EEPROM del processore o talvolta in posizioni riservate della memoria del programma. Questa è generalmente una cosa semplice da fare come fase finale del test di produzione e del processo di calibrazione. Una volta che l'unità è considerata funzionante ed è stata eseguita qualsiasi calibrazione, il sistema di test di produzione invia un comando al micro per fornirgli il suo numero seriale, oppure usa l'interfaccia di programmazione per scrivere direttamente il numero seriale nella posizione appropriata. A volte i file HEX che stanno programmando nel micro sono modificati una tantum dal file HEX del modello principale con il numero seriale univoco per quel dispositivo, con checksum e possibilmente altre informazioni modificate di conseguenza.

Alcuni anni fa lavoravo con un'azienda che produceva centinaia di migliaia di piccole cose all'anno tramite un produttore a contratto in Cina. Abbiamo inviato due sistemi di prova completi al produttore cinese. Il programma di test manterrebbe un file di numero seriale e potremmo inviare loro nuovi file per configurare le unità per nuovi intervalli di numeri seriali. Tutto è andato abbastanza bene per un po ', fino a quando un giorno abbiamo ottenuto unità con numeri di serie duplicati. Si scopre che i cinesi hanno fatto qualcosa di stupido con uno dei sistemi in modo che non funzionasse più. Invece di dirci, che avevano severi ordini da fare se qualcosa fosse andato storto, hanno fatto una copia completa del disco dal sistema di lavoro all'altro sistema. Questo ovviamente ha copiato anche i file dei numeri di serie e lo stato corrente, quindi da allora in poi entrambi i sistemi hanno distribuito la stessa sequenza di numeri di serie.

Ho dovuto progettare sistemi di test più recenti, quindi mi sono assicurato che l'intervallo di numeri seriali e lo stato corrente fossero mantenuti in una EEPROM nell'hardware del tester e non fornissi alcuna documentazione al riguardo al produttore. Avevamo realizzato una dozzina di schede tester e abbiamo assegnato con cura intervalli di numeri seriali separati a ciascuna. Quando il produttore doveva essere aggiornato con un nuovo blocco di numeri di serie, abbiamo inviato loro schede tester aggiornate. Finora questo sistema ha funzionato molto bene. Inoltre semplifica la produzione dell'unità occasionale qui o in un sito di produzione diverso. Ogni posto ha il proprio tester con il proprio intervallo di numeri di serie e solo una persona era il custode principale dei numeri di serie e avrebbe assegnato nuovi intervalli ai tester.


1
Ciao Olin! Brian ha menzionato EEPROM nella sua risposta, ma non ha aggiunto dettagli. La tua storia mette il dito sul punto debole dell'assegnazione programmatica di ID univoci. C'è una catena di produzione che prevede alcuni passaggi logistici in cui le cose possono andare storte. Ci è successo anche una volta quando il servizio di programmazione del nostro distributore ha dimenticato di aumentare il contatore. Prima o poi succedono queste cose. IMO niente batte l'SSN (vedi la mia risposta): nessuna programmazione, nessuna amministrazione, niente di niente :-)
stevenvh

15

Il mio preferito è Maxim DS2411 . È una piccola parte SOT-23 che contiene un SSN univoco (Silicon Serial Number). Non molto economico in sé, ma potrebbe essere il più economico in assoluto , quando si pensa al costo logistico e ai costi di programmazione in altre soluzioni. La soluzione SSN non richiede alcun intervento / operazione manuale oltre al pick-and-place automatico.
Il rischio di ID duplicati è quasi zero.
In un commento a questa risposta mikeselecticstuff ha indicato queste EEPROM con indirizzo MAC . Sono EEPROM comuni con un ID univoco programmato in un'area protetta da scrittura della EEPROM. Sono più economici del DS2411 e dispongono di un po 'di spazio per i dati dell'utente.

Ω

inserisci qui la descrizione dell'immagine

L'operatore deve semplicemente posare una goccia di saldatura su entrambe le metà per "programmare" un bit. Meno della metà del tempo (un punto di saldatura anziché due e nessun componente da raccogliere e posizionare) e nessun componente richiesto. Quindi risparmi due volte. E come dice Olin, con le giuste dimensioni e spazio, sono entrambi facili da colmare e da rimuovere.

Se la tua scheda ha un microcontrollore (quale scheda al giorno d'oggi non lo è?) Puoi avere un numero seriale programmato dal servizio di programmazione. Il costo logistico dalla tua parte è minimo: tieni traccia di quale seriale dovrebbero iniziare con ogni lotto di programmazione.
Il rischio di errori che generano ID duplicati è basso, a seconda di come è organizzato il servizio di programmazione, ma ho saputo che è successo.

Ho saputo di quanto segue, ma non ricordavo come si chiamavano e pensavo anche di aver bisogno di una foto per spiegarlo meglio.

shunt DIP programmabile
Apparentemente questo è chiamato shunt DIP programmabile . Lo si utilizza come un DIP-switch, ma invece di utilizzare interruttori in miniatura utilizza connessioni deboli che è possibile "programmare" rompendole con una penna o un piccolo cacciavite.
Questo ha lo stesso grande svantaggio delle soluzioni di saldatura selettiva: l'operatore deve decidere quali connessioni rompere e quali dovrebbero essere lasciate intatte, e quindi l'errore umano non è mai lontano. Affidabilità per quanto riguarda l'unicità: bassa.


2
Concordo sui ponticelli di saldatura se un essere umano deve fare ognuno di essi. Ho provato alcune cose diverse, ma ho trovato due cuscinetti a semicerchio per funzionare al meglio. Con le giuste dimensioni e spazio, sono entrambi facili da collegare e da rimuovere. Puoi vedere alcuni di questi su una scheda su embedinc.com/products/ready02/qprot05_1280.jpg sotto l'estremità destra del connettore DB-9 vicino alla parte superiore della scheda.
Olin Lathrop l'

7

Le EEPROM I2C sono buone e piccole. Esistono chip con numero di serie a 1 filo.


Hmm, non ci avevo pensato molto, anche se avrei dovuto progettare un'interfaccia per leggerlo e presentare continuamente l'indirizzo all'encoder / decodificatore, dato che non ho un accesso immediato agli interni di quel chip. Ora che lo dici, però, sembra che il venditore possa offrire questo dato che gli encoder / decodificatori sono solo microcontrollori con un firmware proprietario. Potrebbe parlarne con loro.
Steven Ourada,

3

Se l'indirizzo deve essere impostato da qualcuno con capacità di saldatura, è possibile disporre un footprint della resistenza di montaggio superficiale per ciascun pin e saldare selettivamente in jumper da 0 ohm.


Sì, è un modo per andare. La mia teoria è che è un po 'più facile tagliare le tracce dei jumper di saldatura, ma potrei sbagliarmi.
Steven Ourada,

5
@Steven - a prima vista le tracce di taglio possono sembrare più semplici poiché non hai bisogno di componenti, ma il taglio è disordinato ed è costoso controllare se hai una corretta interruzione. La saldatura è più economica, esp. quando non hai bisogno dei jumper (vedi la mia risposta).
Stevenvh,

1

Per un semplice indirizzamento a 8 bit di solito uso le tracce di taglio. È più permanente dei ponticelli / collegamenti di saldatura e dissuade le persone dal cambiarlo altrettanto. Ecco come lo faccio di solito alla lavagna:

inserisci qui la descrizione dell'immagine

Ogni link è un pad (ma questo è un limite del mio software - preferirei che non fosse stagnato) quindi non ottiene alcuna maschera di saldatura, e solo 5 mil (al contrario dei 10 mil per il resto della traccia) che rende più facile il taglio. 5 mils è il minimo per il segnale che stanno trasportando nel mio caso - potresti usare più spesso. Nel mio esempio sta solo usando un pacchetto di resistori come resistori pull-up. Ovviamente potresti sostituirlo con quello che vuoi.

Ricordati solo di assicurarti che non vi sia alcuna maschera di saldatura su di essi.

Un'altra opzione è quella (come menzionato da qualcun altro) di utilizzare i pad resistori SMT e collegarli. Ma, se hai intenzione di andare dai resistori per agire come pull-up, perché non lasciare semplicemente i resistori a cui non ti collegheresti in primo luogo?


4
Per rispondere alla tua ultima domanda: perché i costi di posizionamento selettivo dei componenti sono costosi; devi farlo a mano. È più economico avere il componente posizionato dal pick-and-place e saldare 1 punto a mano rispetto al pick-and-place manualmente e quindi saldare manualmente due punti. Inoltre, se si posizionano tutti i resistori, è possibile utilizzare un array di resistori (proprio come è stato fatto in precedenza), che è anche più economico. Costo del posizionamento di 1 resistenza >> costo della resistenza stessa.
Stevenvh,

2
In che modo il taglio è più permanente della saldatura? Posso rivendicare il tuo taglio con la stessa facilità con cui puoi rimuovere la mia saldatura. Anche la saldatura è più affidabile (come fai a sapere se è tagliata correttamente). Ad essere sincero, non mi piace affatto l'idea di taglio, ma era ovvio, presumo :-)
Stevenvh,

Questo è molto vero Non uso ancora P&P, i miei volumi non ne valgono la pena. Vorrei costruire la mia macchina P&P un giorno però ... Ma prima devo costruire una trapano CNC per i fori;)
Majenko,

Puoi saldarlo facilmente, sì. La permanenza è più psicologica che fisica.
Majenko,

Se il tuo P&P sarà in grado di fare 01005s (0,25 mm x 0,12 mm), voglio venire a dare un'occhiata! Non ho idea di come lo facciano!
Stevenvh,

1

Se hai un dispositivo a 1 filo nel tuo circuito, la tua scheda nascerà con un numero seriale.

Ho una scheda inverter di potenza e poiché i MOSFET tendono a scaldarsi molto, ho aggiunto un sensore di temperatura DS18B20 sul dissipatore di calore, rilevando la temperatura dei MOSFET. Ciò ha anche fornito al mio inverter un numero di serie, assegnato al sensore di temperatura.

Inoltre, è possibile utilizzare alcuni fusibili sulla scheda e bruciarne alcuni prima di lasciare la fabbrica per funzionare come dispositivo di numero seriale.

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.