Sto lavorando alla progettazione di un nuovo prodotto e probabilmente ci saranno piccole o grandi modifiche / correzioni hardware nel corso della vita del prodotto. Per futuri aggiornamenti del firmware sul campo ho bisogno di un modo per determinare la revisione dell'hardware. Qual è una buona strategia?
Attualmente sto tirando su / giù due perni di riserva con resistori esterni e controllando il motivo. Ciò consente solo 4 revisioni hardware, ma potrebbe essere sufficiente per scopi pratici. Potrebbe diventare un problema se avessi bisogno di uno o entrambi quei pin in una futura revisione dell'hardware.
Immagino che un modo più economico potrebbe essere quello di avere un divisore di resistenza collegato a un pin ADC. Ogni revisione hardware potrebbe avere resistori di valore diverso. Purtroppo non ho alcun ADC di riserva nel mio progetto attuale.
Immagino che un altro modo potrebbe essere quello di codificare il numero di versione dell'hardware in una EEPROM o il flash MCU durante la produzione? (Non abbiamo quella struttura al momento.)
Immagino che sto cercando suggerimenti per un metodo flessibile e robusto.
[MODIFICARE]
Ri. suggerimento di @ trav1s: non ho un bus di indirizzo di per sé ma ho una EEPROM 24LCxx sul bus I2C. I 3 bit bassi dell'indirizzo slave sono cablati. Immagino di poter cambiare i bit dell'indirizzo e cercare la EEPROM durante l'avvio.