Я работаю над новым дизайном продукта, и, вероятно, будут небольшие или большие аппаратные изменения / исправления в течение срока службы продукта. Для будущих обновлений прошивки в полевых условиях мне нужен способ определения версии оборудования. Что такое хорошая стратегия?
В настоящее время я вытягиваю два запасных контакта вверх / вниз с помощью внешних резисторов и проверяю схему. Это позволяет использовать только 4 версии оборудования, но этого может быть достаточно для практических целей. Это может стать проблемой, если мне понадобится один или оба этих контакта в будущей версии оборудования.
Я предполагаю, что более экономичным способом может быть подключение резисторного делителя к выводу АЦП. Каждая ревизия оборудования может иметь разные значения резисторов. К сожалению, в моем текущем дизайне нет запасных АЦП.
Я предполагаю, что другим способом может быть кодирование номера версии аппаратного обеспечения в EEPROM или флэш-памяти mcu во время производства? (У нас нет такой возможности в данный момент.)
Я думаю, я ищу предложения для гибкого и надежного метода.
[РЕДАКТИРОВАТЬ]
Число рейнольдса предложение от @ trav1s: у меня нет адресной шины как таковой, но у меня есть 24LCxx EEPROM на шине I2C. 3 младших бита адреса ведомого устройства являются аппаратными. Я думаю, я мог бы изменить биты адреса и искать EEPROM во время запуска.