Ich arbeite an einem neuen Produktdesign und es wird wahrscheinlich kleine oder große Hardware-Änderungen / Korrekturen während der gesamten Lebensdauer des Produkts geben. Für zukünftige Firmware-Updates im Feld benötige ich eine Möglichkeit, die Hardware-Revision zu ermitteln. Was ist eine gute Strategie?
Ich ziehe gerade zwei Ersatzstifte mit externen Widerständen nach oben / unten und überprüfe das Muster. Dies ermöglicht nur 4 Hardware-Revisionen, aber dies könnte für praktische Zwecke ausreichen. Es könnte zu einem Problem werden, wenn ich in einer zukünftigen Hardwarerevision einen oder beide dieser Pins benötige.
Ich denke, ein wirtschaftlicherer Weg könnte sein, einen Widerstandsteiler an einen ADC-Pin anzuschließen. Jede Hardwarerevision kann unterschiedliche Wertwiderstände haben. Leider habe ich in meinem aktuellen Design keine Ersatz-ADCs.
Ich vermute, eine andere Möglichkeit könnte sein, die Hardware-Versionsnummer in einem EEPROM oder dem mcu-Flash während der Produktion zu verschlüsseln? (Wir haben diese Einrichtung im Moment nicht.)
Ich schätze, ich suche nach Vorschlägen für eine flexible und robuste Methode.
[BEARBEITEN]
Re. Vorschlag von @ trav1s: Ich habe keinen Adressbus an sich, aber ich habe ein 24LCxx-EEPROM auf dem I2C-Bus. Die unteren 3 Bits der Slave-Adresse sind fest verdrahtet. Ich denke, ich könnte die Adressbits ändern und während des Startvorgangs nach dem EEPROM suchen.