Wir entwerfen Sender- / Empfängerplatinen für eine HF-Fernsteuerungsanwendung. Um zu vermeiden, dass zwischen nicht übereinstimmenden Paaren gesprochen wird, benötigen wir eindeutige Adressen pro Karte. Die Adresse wird für Codierer / Decodierer-Chips über 8 Adresspins angegeben.
Wir werden wahrscheinlich eine kleine Charge (ca. 25 Stück) von Hand zusammenbauen, aber die Leiterplatten werden professionell hergestellt.
Was ist Ihre Lieblingsmethode, um in einer solchen Situation eindeutige Adressen pro Board zu erstellen? Ich habe über DIP-Schalter, Jumper und Leiterbahnen nachgedacht. Ich neige dazu, Spuren zu hinterlassen, aber ich würde gerne hören, was erfahrene Leute normalerweise tun.
pcb-design
addressing
Steven Ourada
quelle
quelle
Antworten:
Ich bin überrascht, dass niemand EEPROM erwähnt hat. Wir mussten einige Male eindeutige Nummern in Produkte einfügen, und die meiste Zeit sind sie in das EEPROM des Prozessors oder in manchmal reservierte Speicherplätze des Programmspeichers gelangt. Dies ist normalerweise eine einfache Sache, die als letzter Schritt des Produktionstests und des Kalibrierungsprozesses ausgeführt werden muss. Sobald das Gerät als funktionsfähig gilt und eine Kalibrierung durchgeführt wurde, sendet das Produktionstestsystem einen Befehl an das Mikro, um ihm seine Seriennummer zu geben, oder verwendet die Programmierschnittstelle, um die Seriennummer direkt an die entsprechende Stelle zu schreiben. Manchmal handelt es sich bei den HEX-Dateien, die in das Mikro programmiert werden, um eine einmalige, von der Master-Vorlage abgewandelte HEX-Datei mit der eindeutigen Seriennummer für dieses Gerät, mit entsprechend geänderten Prüfsummen und möglicherweise anderen Informationen.
Vor ein paar Jahren arbeitete ich mit einem Unternehmen zusammen, das über einen Auftragshersteller in China 100.000 kleine Dinge pro Jahr herstellte. Wir haben zwei komplette Testsysteme an den chinesischen Hersteller geschickt. Das Testprogramm würde eine Seriennummerndatei verwalten, und wir könnten ihnen neue Dateien senden, um die Einheiten für neue Seriennummernbereiche zu konfigurieren. Für eine Weile ging alles gut, bis wir eines Tages Einheiten mit doppelten Seriennummern bekamen. Es stellte sich heraus, dass die Chinesen etwas Dummes mit einem der Systeme gemacht hatten, damit es nicht mehr lief. Anstatt uns mitzuteilen, was genau zu tun ist, wenn etwas schief geht, haben sie eine vollständige Kopie der Festplatte vom Arbeitssystem auf das andere System erstellt. Dabei wurden natürlich auch die Seriennummerndateien und der aktuelle Status kopiert, sodass von nun an beide Systeme die gleiche Sequenz von Seriennummern verteilten.
Ich musste neuere Testsysteme entwerfen, also stellte ich sicher, dass der Seriennummernbereich und der aktuelle Status in einem EEPROM in der Testerhardware gespeichert waren, und lieferte dem Hersteller keine Dokumentation dazu. Wir ließen etwa ein Dutzend der Testkarten herstellen und ordneten jedem sorgfältig separate Seriennummernbereiche zu. Wenn der Hersteller mit einem neuen Block von Seriennummern aktualisiert werden musste, schickten wir ihnen aktualisierte Testkarten. Bisher hat dieses System sehr gut funktioniert. Es macht es auch einfach, die gelegentliche Einheit hier oder an einem anderen Produktionsstandort zu produzieren. Jeder Ort hat einen eigenen Tester mit einem eigenen Seriennummernbereich, und nur eine Person war der Hauptverwalter der Seriennummern und würde den Testern neue Bereiche zuweisen.
quelle
Mein Favorit ist der Maxim DS2411 . Es ist ein kleines SOT-23-Teil, das eine eindeutige SSN (Silicon Serial Number) enthält. An sich nicht sehr billig, aber insgesamt vielleicht am billigsten , wenn man den logistischen Aufwand und die Programmierkosten in anderen Lösungen berücksichtigt. Die SSN-Lösung erfordert neben dem automatisierten Pick-and-Place keinen manuellen Eingriff.
Das Risiko doppelter IDs ist nahezu Null.
In einem Kommentar zu dieser Antwort zeigte mikeselecticstuff auf diese MAC-Adress-EEPROMs . Es handelt sich um gängige EEPROMs mit einer eindeutigen ID, die in einem schreibgeschützten Bereich des EEPROMs programmiert ist. Sie sind billiger als der DS2411 und haben noch Speicherplatz für Benutzerdaten.
Der Bediener muss lediglich einen Tropfen Lötzinn über beide Hälften legen, um ein Bit zu "programmieren". Weniger als die Hälfte der Zeit (ein Lötpunkt anstelle von zwei und keine Komponente zum Bestücken) und keine Komponenten erforderlich. Sie sparen also zweimal. Und wie Olin sagt, sind sie mit der richtigen Größe und Lücke leicht zu überbrücken und zu lösen.
Wenn Ihre Karte über einen Mikrocontroller verfügt (welche Karte derzeit nicht?), Kann vom Programmierservice eine Seriennummer darin programmiert werden. Der logistische Aufwand auf Ihrer Seite ist minimal: Verfolgen Sie bei jedem Programmierstapel, mit welcher Serie sie beginnen sollen.
Das Risiko von Fehlern, die zu doppelten IDs führen, ist gering, je nachdem, wie gut der Programmierservice organisiert ist, aber ich habe es gewusst.
Ich wusste über Folgendes Bescheid, erinnerte mich aber nicht, wie sie genannt wurden, und dachte auch, ich brauche ein Bild, um es besser zu erklären.
Anscheinend spricht man von einem programmierbaren DIP-Shunt . Sie verwenden es wie einen DIP-Schalter, aber anstelle von Miniaturschaltern werden schwache Verbindungen verwendet, die Sie "programmieren" können, indem Sie sie mit einem Stift oder einem kleinen Schraubendreher trennen.
Dies hat den gleichen großen Nachteil wie die Selektivlötlösungen: Der Bediener muss entscheiden, welche Verbindungen unterbrochen werden sollen und welche intakt bleiben sollen, und dann ist menschliches Versagen nie weit entfernt. Zuverlässigkeit in Bezug auf die Einzigartigkeit: gering.
quelle
I2C-EEPROMs sind gut und klein. Chips mit 1-Draht-Seriennummer sind vorhanden.
quelle
Wenn die Adresse von einer Person mit Lötfähigkeit eingestellt werden soll, können Sie für jeden Pin eine Widerstandsfläche für die Oberflächenmontage auslegen und selektiv 0-Ohm-Jumper einlöten.
quelle
Für die einfache 8-Bit-Adressierung verwende ich normalerweise Cut-Tracks. Es ist dauerhafter als Jumper / Lötverbindungen und hält die Leute davon ab, es so stark zu verändern. So mache ich es normalerweise an der Tafel:
Jeder Link ist ein Pad (aber das ist eine Einschränkung meiner Software - ich würde es vorziehen, wenn es nicht verzinnt ist), sodass es keine Lötmaske bekommt und nur 5 mils (im Gegensatz zu den 10 mils für den Rest des Tracks) macht es leichter zu schneiden. 5 mils ist das Minimum für das Signal, das sie in meinem Fall tragen - Sie könnten dicker verwenden. In meinem Beispiel wird nur ein Widerstandspaket als Pull-up-Widerstände verwendet. Sie können dies natürlich durch das ersetzen, was Sie wollen.
Denken Sie daran, darauf zu achten, dass sich keine Lötmaske darüber befindet.
Eine andere Möglichkeit besteht darin, (wie bereits erwähnt) SMT-Widerstandspads zu verwenden und diese zu überbrücken. Aber wenn Sie nur zu Widerständen gehen, um als Klimmzüge zu fungieren, warum lassen Sie dann nicht einfach die Widerstände weg, mit denen Sie sich überhaupt nicht verbinden würden?
quelle
Wenn Sie ein 1-Wire-Gerät in Ihrer Schaltung haben, wird Ihre Karte mit einer Seriennummer geboren.
Ich habe eine Wechselrichterplatine und da die MOSFETs sehr warm werden, habe ich einen DS18B20-Temperatursensor am Kühlkörper angebracht, der die Temperatur der MOSFETs misst. Dadurch erhielt mein Wechselrichter auch eine Seriennummer, die dem Temperatursensor zugewiesen wurde.
Sie können auch ein paar Sicherungen auf Ihrer Platine verwenden und einige davon durchbrennen lassen, bevor Sie das Werk verlassen, um als Seriennummerngerät zu fungieren.
quelle