Ich muss Informationen über die Version oder Konfiguration auf der Karte / elektrisch codieren, damit die Firmware erkennen kann, welches Kartenlayout verwendet wird.
Welche Optionen sind möglich und welche Vor- und Nachteile haben sie?
Ich muss Informationen über die Version oder Konfiguration auf der Karte / elektrisch codieren, damit die Firmware erkennen kann, welches Kartenlayout verwendet wird.
Welche Optionen sind möglich und welche Vor- und Nachteile haben sie?
Antworten:
Auf den ersten Blick fallen mir zwei einfache Lösungen ein.
Diese beiden Vorschläge haben insofern eine Schwäche, als der Endbenutzer sie leicht ändern könnte, beispielsweise um "gesperrte" Funktionen zu öffnen. Dies ist möglicherweise kein Problem für Sie, aber etwas, das Sie berücksichtigen sollten.
Ich habe zuvor 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, ist es eine gute Idee, Jumper zu verwenden, anstatt die Eingaben mit Traces zu verknüpfen.
Einige Optionen, die mir einfallen:
SMD PADS / O OHM Widerstandsverbindungen. Verwenden Sie ein Binärsystem für die Hardwarekonfiguration, um die Anzahl der Pins für Ihren Prozessor zu verringern.
Jumper. Die Platine würde 2xN Anschlussstifte hinzufügen und einen Jumper an den rechten Stift hinzufügen, damit Sie Ihre Konfiguration auswählen können. Ein Fehler ist leichter zu beheben. Dies ist möglicherweise etwas kostspielig und verbraucht je nach Jumper mehr Platz auf der Platine.
Wenn Sie ein EEPROM auf der Karte 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 benötigen Sie keinen Platz auf der Platine und keine zusätzlichen Pins für die Versionserkennung.
Ein-Draht-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 es dem Mikrocontroller auch, diese Informationen während des Board-Tests zu schreiben (z. B. Kalibrierungsdaten). Viele haben einen Schreibschutzstift oder ein einmalig programmierbares Bit, um weitere Änderungen zu verhindern.
Weitere Vorteile sind nützliche Funktionen wie garantierte eindeutige Seriennummern.
Diese Option wird in vielen Systemen wie Oszilloskopsonden und Batterien verwendet, da nur eine einzige Datenleitung benötigt wird. Das EEPROM kann sogar über die Datenleitung selbst mit Strom 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 der DS2431, der 1 KB speichert.