Pracuję nad nowym projektem produktu i prawdopodobnie będą istnieć małe lub duże zmiany / poprawki sprzętowe przez cały okres użytkowania produktu. W przypadku przyszłych aktualizacji oprogramowania układowego w terenie potrzebuję sposobu ustalenia wersji sprzętowej. Jaka jest dobra strategia?
Obecnie ciągnę dwa zapasowe piny w górę / w dół rezystorami zewnętrznymi i sprawdzam wzór. Pozwala to tylko na 4 wersje sprzętowe, ale może to wystarczyć do celów praktycznych. Może to stać się problemem, jeśli będę potrzebować jednego lub obu tych pinów w przyszłej wersji sprzętowej.
Wydaje mi się, że bardziej ekonomicznym sposobem może być podłączenie dzielnika rezystora do pinu ADC. Każda wersja sprzętu może mieć inne rezystory wartości. Niestety nie mam żadnych zapasowych ADC w moim obecnym projekcie.
Sądzę, że innym sposobem może być zakodowanie numeru wersji sprzętu w pamięci EEPROM lub pamięci flash mcu podczas produkcji? (W tej chwili nie mamy tego obiektu.)
Chyba szukam propozycji elastycznej i niezawodnej metody.
[EDYTOWAĆ]
Re. sugestia z @ trav1s: Nie mam magistrali adresowej jako takiej, ale mam EEPROM 24LCxx na magistrali I2C. Niskie 3 bity adresu podrzędnego są podłączone na stałe. Chyba mógłbym zmienić bity adresu i wyszukać EEPROM podczas uruchamiania.