Come ha affermato Steven, i PIC non hanno numeri di serie univoci incorporati al momento della produzione. Cerchiamo di essere chiari sul fatto che stiamo parlando di un numero che potrebbe variare tra due chip dello stesso modello.
La maggior parte dei PIC hanno un ID chip codificato al loro interno. Questo può essere letto da un programmatore PIC per determinare il tipo di PIC a cui è collegato. Per quanto ne so, solo i PIC core a 12 bit non hanno un simile ID chip. Tutti gli altri PIC possono essere identificati elettricamente, anche se ci sono un certo numero di modi diversi che devono essere messi in modalità di programmazione e quindi la lettura dell'ID chip. Il software di programmazione PIC in grado di identificare un PIC arbitrario non è banale.
Se intendevi veramente il numero di serie, questo deve essere programmato nella parte dopo la produzione. Lo abbiamo fatto molte volte. Durante il processo di test di produzione quando il firmware è programmato nel PIC, lo si imposta per ottenere anche un numero seriale univoco e programmare anche quello. Un modo semplice è iniziare con un file HEX master prodotto dagli strumenti del firmware. Questo contiene un numero seriale vuoto. Scrivi un piccolo programma che prende un nuovo numero seriale in base alla tua strategia, legge il file HEX principale, sostituisce il nuovo numero seriale con quello vuoto e scrive un file HEX temporaneo. Il file HEX temporaneo viene utilizzato per programmare la parte, quindi eliminato.
Per una maggiore robustezza, si memorizza lo stato del numero seriale in EEPROM nella maschera di produzione, non in un file su disco. Il sistema chiede alla maschera un nuovo numero e questa maschera è progettata per non dare mai lo stesso numero due volte. Quando si ritiene che l'intervallo dei numeri di serie sia esaurito, si rifiuta di funzionare. Ciò è particolarmente utile se si dispone di un'unità di produzione remota per te. In questo modo se rovinano qualcosa sul computer e si ripristinano dal backup, non ripristinerà anche l'intervallo di numeri di serie. Sì, questo è effettivamente successo.
Se il numero seriale deve essere letto dall'esterno, le posizioni degli ID utente presenti nella maggior parte dei PIC potrebbero essere il luogo appropriato per memorizzarlo. Questi differiscono dalla memoria generale del programma o EEPROM in quanto possono essere letti anche quando il chip è protetto da codice.
Se ricevi i tuoi PIC programmati dal Microchip o da un distributore, di solito puoi farli serializzare in qualche modo. Tuttavia, la programmazione in fabbrica è solo per prodotti maturi ad alto volume. Se pensi che aggiornerai il firmware regolarmente, quindi non utilizzare la programmazione di fabbrica. I tempi di consegna sono lunghi e rimarrai bloccato con le vecchie versioni in cantiere. Il tuo dispositivo dovrà essere testato dopo che è stato costruito comunque, quindi aggiungere un passaggio per programmare il PIC di solito è un onere extra molto piccolo.