Ich muss Informationen über Version oder Konfiguration auf der Platine/elektrisch codieren, damit die Firmware erkennen kann, welches Platinenlayout verwendet wird.
Welche Möglichkeiten gibt es und welche Vor- und Nachteile haben sie?
Spontan fallen mir zwei einfache Lösungen ein.
Beide Vorschläge haben eine Schwäche, da der Endbenutzer sie leicht ändern könnte, um beispielsweise "gesperrte" Funktionen zu öffnen. Dies ist vielleicht kein Problem für Sie, aber etwas, das Sie bedenken sollten.
Ich habe bisher ein Schieberegister mit hoch und niedrig gebundenen Pins verwendet, um die Board-Revision zu codieren. Wenn Sie SPI bereits für etwas auf Ihrem Board verwenden, ist es trivial, es zu lesen.
Wenn Sie in der Lage sein müssen, die ID zur Laufzeit zu ändern, wäre es eine gute Idee, Jumper zu verwenden, anstatt die Eingänge mit Spuren zu verbinden.
Einige Optionen, die ich mir vorstellen kann: -
SMD-PADS/O-OHM-Widerstandsverbindungen. Verwenden Sie ein binäres System für die Hardwarekonfiguration, um die Anzahl der Pins für Ihren Prozessor zu reduzieren.
Pullover. Die Platine hätte 2xN-Anschlussstifte, wenn Sie einen Jumper zum rechten Stift hinzufügen, können Sie Ihre Konfiguration auswählen. Ein Fehler ist leichter zu beheben. Dies kann je nach Jumper etwas kostspielig sein und mehr Platz auf der Platine beanspruchen.
Wenn Sie EEPROM auf der Platine haben, können Sie die Konfiguration möglicherweise in den Speicher einbetten.
Ist es möglich, dass Sie die Firmware selbst mit einem #define oder ähnlichem ändern? Dann brauchen Sie keinen Platz auf der Platine und keine zusätzlichen Pins für die Versionserkennung.
One-Wire-EEPROMs sind eine gute Lösung, da sie nur einen GPIO benötigen, aber eine große Menge an Konfigurationsinformationen speichern können. Sie ermöglichen dem Mikrocontroller auch, diese Informationen während des Board-Tests zu schreiben (z. B. Kalibrierungsdaten). Viele haben einen Schreibschutz-Pin oder ein einmalig programmierbares Bit, um weitere Änderungen zu verhindern.
Weitere Vorteile sind nützliche Features wie garantiert eindeutige Seriennummern.
Diese Option wird in vielen Systemen wie Oszilloskop-Tastköpfen und Batterien verwendet, da nur eine einzige Datenleitung benötigt wird. Das EEPROM kann sogar über die Datenleitung selbst versorgt werden.
Der Hauptnachteil sind die Kosten. Die Kosten sind nicht hoch, aber bei Massenprodukten können ein paar Cent eine Rolle spielen.
Ein Beispiel für ein solches EEPROM ist das DS2431, das 1 kb speichert.
awjlogan