Estou trabalhando em um novo design de produto e provavelmente haverá pequenas / grandes alterações / correções de hardware durante a vida útil do produto. Para futuras atualizações de firmware no campo, preciso de uma maneira de determinar a revisão do hardware. O que é uma boa estratégia?
Atualmente, estou puxando dois pinos sobressalentes para cima / baixo com resistores externos e verificando o padrão. Isso permite apenas quatro revisões de hardware, mas isso pode ser suficiente para fins práticos. Pode se tornar um problema se eu precisar de um ou dos dois pinos em uma futura revisão de hardware.
Eu acho que uma maneira mais econômica seria ter um divisor de resistor conectado a um pino ADC. Cada revisão de hardware pode ter diferentes resistores de valor. Infelizmente, não tenho ADCs de reposição no meu design atual.
Eu acho que outra maneira poderia ser codificar o número da versão do hardware em uma EEPROM ou o flash da mcu durante a produção? (Não temos essa facilidade no momento.)
Acho que estou procurando sugestões para um método flexível e robusto.
[EDITAR]
Ré. sugestão de @ trav1s: não tenho um barramento de endereços em si, mas tenho uma EEPROM 24LCxx no barramento I2C. Os 3 bits baixos do endereço escravo são conectados. Acho que poderia alterar os bits de endereço e procurar a EEPROM durante a inicialização.