Gibt es eine eingebaute Seriennummer im PIC-Chip?

12

Ich habe Dutzende von PIC16-Chips. Ich möchte zu Identifikationszwecken eine eindeutige Seriennummer vom Chip abrufen. Ich weiß, dass es manuell gemacht werden kann. Aber es ist langweilig.

Fragen:

  1. Hat PIC eine eingebaute Seriennummer?
  2. Wenn die Antwort Nein lautet, gibt es eine einfache Möglichkeit, einen Code mit einer eindeutigen Seriennummer auf jeden Chip hochzuladen, wenn ich den Chip bei Microchip bestelle?
mlam
quelle

Antworten:

16
  1. Nein

  2. Ist möglich, aber ich weiß nicht, welche Mengen benötigt werden, dh ob sie dies für Dutzende von Geräten tun. Wir hatten immer Chargen von mindestens 1000 Teilen. Es ist wie bei der Vorprogrammierung mit Ihrer Software, aber Sie geben an, an welchen Stellen die eindeutige ID programmiert werden soll. Sie müssen die Start-ID und das Format angeben (BCD, Binär, LSD / MSD zuerst, ...).

Beachten Sie, dass sich diese Nummer im normalen Programmspeicher befindet und gelöscht wird, wenn Sie den Teil zur Neuprogrammierung löschen.

edit
Der Grund , warum Controller dies auf Chipebene meistens nicht haben, ist, dass es teuer ist: Die Programmierung erfolgt durch Lasern, was ein zusätzlicher Produktionsschritt ist. Bei massenprogrammierten Mikrocontrollern kann die eindeutige ID problemlos mit der Software programmiert werden, und dies erfordert keinen zusätzlichen Schritt.

Eine Alternative wäre eine SSN (Silicon Serial Number) wie die Maxim DS2411 . Diese sind ebenfalls laserprogrammiert, also auch nicht billig, aber Sie vermeiden die zusätzlichen logistischen Schritte, bei denen immer etwas schief gehen kann. Ich habe gewusst, dass es passiert.
(eine andere Änderung) Mike schlägt alternativ einen MAC-Adresschip vor . Hierbei handelt es sich um EEPROMs mit einer eindeutigen ID (MAC-Adressen sind global eindeutig), die in einem schreibgeschützten Teil des Geräts programmiert ist. Der Rest des Teils kann als normales EEPROM verwendet werden, beispielsweise zum Speichern von Geräteparametern. Die EEPROMs scheinen viel billiger als die SSN zu sein und erfüllen dieselbe Funktion.


Siehe auch
Methode zum Zuweisen eindeutiger Adressen pro Karte

stevenvh
quelle
Gibt es einen Grund, warum es nicht immer gemacht wird?
Federico Russo
@ Federico - zu meiner Antwort hinzugefügt
Stevenvh
1
Eine billigere Alternative zum Dallas / Maxim-Teil sind die Ethernet-MAC-Adresschips von Microchip, die Ihnen auch Platz für EEPROM bieten. microchip.com/stellent/…
mikeselectricstuff
@ stevenvh, danke für die Antwort. Besonders über SSN. Ich muss 100 Chips bestellen, um anzugeben, an welchen Stellen die eindeutige ID programmiert werden soll. Sie müssen die Start-ID und das Format angeben. Sie meinen, ich kann dies über die Mikrochip-Website tun, wenn ich die Chips bestelle?
Mlam
Danke @mikeselectricstuff, es ist nützlich. Ich werde es in Betracht ziehen.
Mlam
10

Wie Steven sagte, sind in PICs zur Herstellungszeit keine eindeutigen Seriennummern eingebaut. Lassen Sie uns klarstellen, dass es sich um eine Zahl handelt, die zwischen zwei Chips des identischen Modells variieren würde.

In die meisten PICs ist eine Chip-ID codiert. Dies kann von einem PIC-Programmierer gelesen werden, um den PIC-Typ zu bestimmen, mit dem er verbunden ist. Soweit ich das beurteilen kann, haben nur die 12-Bit-Core-PICs keine solche Chip-ID. Alle anderen PIC können elektrisch identifiziert werden, obwohl es eine ganze Reihe unterschiedlicher Möglichkeiten gibt, sie in den Programmiermodus zu versetzen und dann die Chip-ID auszulesen. PIC-Programmiersoftware, die einen beliebigen PIC identifizieren kann, ist nicht trivial.

Wenn Sie wirklich Seriennummer gemeint haben, muss diese nach der Produktion in das Teil programmiert werden. Das haben wir schon oft gemacht. Während des Produktionstestprozesses, wenn die Firmware in den PIC programmiert ist, richten Sie sie so ein, dass sie auch eine eindeutige Seriennummer erhält und diese ebenfalls programmiert. Eine einfache Möglichkeit besteht darin, mit einer HEX-Masterdatei zu beginnen, die von den Firmware-Tools erstellt wurde. Diese enthält eine leere Seriennummer. Sie schreiben ein kleines Programm, das je nach Strategie eine neue Seriennummer abruft, die HEX-Masterdatei liest, die leere durch die neue Seriennummer ersetzt und eine temporäre HEX-Datei ausgibt. Die temporäre HEX-Datei wird zum Programmieren des Teils verwendet und dann gelöscht.

Für eine bessere Robustheit speichern Sie den Status der Seriennummer im EEPROM in der Produktionsvorrichtung und nicht in einer Datenträgerdatei. Das System fragt die Vorrichtung nach einer neuen Nummer, und diese Vorrichtung ist so ausgelegt, dass sie niemals zweimal dieselbe Nummer ausgibt. Wenn der zugewiesene Seriennummernbereich erschöpft ist, funktioniert er nicht mehr. Dies ist besonders nützlich, wenn Sie einen Remote-Hersteller für Gebäudeeinheiten haben. Auf diese Weise wird auch der Seriennummernbereich nicht zurückgesetzt, wenn etwas auf dem Computer durcheinander gebracht und aus dem Backup wiederhergestellt wird. Ja, das ist tatsächlich passiert.

Wenn die Seriennummer von außen gelesen werden soll, sind die Benutzer-ID-Speicherorte, über die die meisten PICs verfügen, möglicherweise der geeignete Speicherort. Diese unterscheiden sich vom allgemeinen Programmspeicher oder EEPROM dadurch, dass sie auch dann gelesen werden können, wenn der Chip durch Code geschützt ist.

Wenn Sie Ihre PICs vom Microchip oder einem Distributor programmieren lassen, können Sie sie normalerweise auf irgendeine Weise serialisieren lassen. Die werkseitige Programmierung gilt jedoch nur für ausgereifte Produkte mit hohem Volumen. Wenn Sie glauben, dass Sie die Firmware regelmäßig aktualisieren, verwenden Sie keine werkseitige Programmierung. Die Vorlaufzeiten sind lang und Sie werden mit alten Versionen in der Pipeline stecken bleiben. Ihr Gerät muss ohnehin nach dem Bau getestet werden, sodass das Hinzufügen eines Schrittes zum Programmieren des PIC normalerweise nur eine geringe zusätzliche Belastung darstellt.

Olin Lathrop
quelle
Diese Produktionsvorrichtungsidee ist fantastisch!
Joel B
1
  1. Einige tun.
  2. Aus dem Datenblatt:

    Die PIC16 (L) F15324 / 44-Geräte werden während der endgültigen Herstellung einzeln mit einem Microchip Unique Identifier (MUI) codiert. Die MUI kann nicht durch einen Massenlöschbefehl oder ein anderes vom Benutzer zugängliches Mittel gelöscht werden. Diese Funktion ermöglicht die Rückverfolgbarkeit von Geräten der Microchip-Technologie in Anwendungen, in denen dies erforderlich ist. Es kann auch vom Anwendungshersteller für eine Reihe von Funktionen verwendet werden, für die eine nicht überprüfte eindeutige Identifizierung erforderlich ist, z.

    • Verfolgung des Geräts
    • Eindeutige Seriennummer. Die MUI besteht aus neun Programmwörtern.

bearbeiten

  1. Schauen Sie sich die Microchips-Linie mit einzigartigen ID-Chip-Produkten an . Jeweils nur ein paar Cent. Kleine Pakete, I2C-Kommunikation und eine kleine Menge EEPROM.
D Ente
quelle