Мені потрібно кодувати інформацію про версію чи конфігурацію на платі / електрично, щоб прошивка могла визначити, яка компонування плати використовується.
Які варіанти можливі та які їхні плюси?
Мені потрібно кодувати інформацію про версію чи конфігурацію на платі / електрично, щоб прошивка могла визначити, яка компонування плати використовується.
Які варіанти можливі та які їхні плюси?
Відповіді:
На голову приходять два простих рішення.
Обидві ці пропозиції мають слабку сторону в тому, що кінцевий користувач може легко їх змінити, скажімо, відкрити "заблоковані" функції. Це може не турбувати вас, але щось слід пам’ятати.
Я раніше використовував реєстр зрушень із прив'язаними високими та низькими шпильками, щоб кодувати доопрацювання плати до цього часу, якщо ви вже використовуєте SPI для чогось на вашій дошці, тривіально її читати.
Якщо вам потрібно мати змогу змінити ідентифікатор під час виконання, то корисним буде використання перемичок, а не зав'язування входів зі слідами.
Я можу придумати кілька варіантів:
З'єднання резисторів SMD PADS / O OHM. Використовуйте двійкову систему для налаштування обладнання, щоб зменшити кількість контактів для вашого процесора.
Джемпери. На платі були би штифти роз'ємів 2xN, додаючи перемичку до правого штифта, ви зможете вибрати вашу конфігурацію. Помилку простіше вирішити. Це може бути трохи затратно і використовувати більше місця на дошці залежно від перемичок.
Якщо у вас на платі є EEPROM, можливо, ви зможете вбудувати конфігурацію в пам'ять.
Чи можна змінити прошивку за допомогою #define або подібного? Тоді вам не потрібно місця на дошці та додаткових штифтів для виявлення версії.
Один провід EEPROM - це приємне рішення, оскільки їм потрібен лише один GPIO, але може зберігати велику кількість конфігураційної інформації. Вони також дозволяють мікроконтролеру записати цю інформацію під час тесту на платі (наприклад, дані калібрування). У багатьох є шпилька для захисту від запису або одноразовий програмований біт для запобігання подальших змін.
До інших переваг можна віднести такі корисні функції, як гарантовані унікальні серійні номери.
Цей варіант використовується в багатьох системах, таких як зонди осцилографа та батареї, через те, що потрібна лише одна лінія даних. EEPROM може навіть живитися від самої лінії даних.
Основним недоліком є вартість. Вартість не висока, але на масово випущеній продукції може мати значення кілька центів.
Прикладом такого EEPROM є DS2431, який зберігає 1 кб.