Jak powiedział Steven, PIC nie mają wbudowanych unikalnych numerów seryjnych w czasie produkcji. Wyjaśnijmy, że mówimy o liczbie, która różni się między dwoma układami tego samego modelu.
Większość PIC ma w sobie zakodowany identyfikator chipa. Może to odczytać programista PIC, aby określić typ PIC, do którego jest podłączony. O ile wiem, tylko 12-bitowe rdzenie PIC nie mają takiego identyfikatora układu. Wszystkie pozostałe PIC można zidentyfikować elektrycznie, chociaż istnieje wiele różnych sposobów, które należy wprowadzić w tryb programowania, a następnie odczytać identyfikator chipa. Oprogramowanie do programowania PIC, które może zidentyfikować dowolny PIC, nie jest trywialne.
Jeśli naprawdę miałeś na myśli numer seryjny, to należy go zaprogramować w części po produkcji. Robiliśmy to wiele razy. Podczas procesu testowania produkcji, gdy oprogramowanie układowe jest zaprogramowane w PIC, konfigurujesz go tak, aby uzyskać także unikalny numer seryjny i program. Jednym prostym sposobem jest rozpoczęcie od głównego pliku HEX wygenerowanego przez narzędzia oprogramowania układowego. Zawiera pusty numer seryjny. Piszesz mały program, który pobiera nowy numer seryjny zgodnie z twoją strategią, odczytuje główny plik HEX, zastępuje nowy numer seryjny pustym i zapisuje tymczasowy plik HEX. Tymczasowy plik HEX służy do programowania części, a następnie jest usuwany.
Aby uzyskać większą niezawodność, stan numeru seryjnego jest przechowywany w pamięci EEPROM w przyrządzie produkcyjnym, a nie w pliku dyskowym. System prosi przyrząd o nowy numer, a ten przyrząd nigdy nie podaje tego samego numeru dwa razy. Gdy przydzielony zakres numerów seryjnych zostanie wyczerpany, nie działa. Jest to szczególnie przydatne, jeśli masz dla siebie jednostki budowlane producenta zdalnego. W ten sposób, jeśli zepsują coś na komputerze i przywrócą dane z kopii zapasowej, nie zresetuje również zakresu numerów seryjnych. Tak, tak się naprawdę stało.
Jeśli numer seryjny ma być odczytany z zewnątrz, lokalizacje identyfikatora użytkownika, które ma większość kodów PIC, mogą być odpowiednim miejscem do jego przechowywania. Różnią się one od ogólnej pamięci programu lub pamięci EEPROM tym, że można je odczytać nawet wtedy, gdy układ jest chroniony kodem.
Jeśli Twoje PIC są programowane przez Microchip lub dystrybutora, zazwyczaj możesz je w jakiś sposób zserializować. Jednak programowanie fabryczne dotyczy tylko dojrzałych produktów o dużej objętości. Jeśli uważasz, że będziesz regularnie aktualizować oprogramowanie, nie używaj programowania fabrycznego. Czasy realizacji są długie i utkniesz ze starymi wersjami w przygotowaniu. Twoje urządzenie i tak będzie musiało zostać przetestowane po jego zbudowaniu, więc dodanie kroku do zaprogramowania PIC zwykle stanowi bardzo niewielkie dodatkowe obciążenie.