Если кто-то использует процессор, который может быть перепрограммирован в схеме, я настоятельно рекомендую, чтобы платы были сконструированы таким образом, чтобы разрешить его использование, даже если для фактического использования этой функции потребуется создание приспособления для этой конкретной цели, а не планирую строить один. Если проблема с микропрограммой обнаружена после изготовления большой партии плат, сборка устройства, которое может перепрограммировать эти платы, может быть намного дешевле, чем необходимость переделывать или перестраивать их.
В некоторых случаях хорошим подходом может быть выбор схемы ввода / вывода платы, чтобы выводы контроллера, необходимые для перепрограммирования внутри цепи, были предназначены для целей, которые «естественным образом» приводят к тому, что они подвергаются воздействию легко доступных точек контакта. Например, плата, предназначенная для использования с металлическими купольными контактами, может иметь сами контакты, подключенные к контактам внутрисхемного программирования. Такой дизайн не потребовал бы выделение какого-либо места в макете для разъема для программирования, но - особенно, если контакт батареи также был, как правило, имеет размеры, допускается, чтобы разъем для программирования проходил с помощью простых подпружиненных контактов.
Обратите внимание, что это не обязательно имеет значение, если код кажется хорошо протестированным; переход от одной партии чипов к другой все еще может вызвать неожиданные проблемы. Например, я разработал продукт, который должен был отключаться под управлением процессора, так как вывод процессора был «высоким» на выводе, когда он должен был быть «включен». В первой партии из 10000 единиц все работало нормально, но в более поздней партии процессор начал работать со сбоями, когда его напряжение достигало около 2 вольт, и мог переключить этот вывод обратно на «высокий»; 2-вольтного «высокого» выхода было едва достаточно, чтобы снова включить устройство. Поскольку было указано, что процессор остается в режиме ожидания до 1,6 вольт IIRC, можно было исправить проблему, перепрограммировав устройства так, чтобы они переходили в спящий режим при активации их состояния выключения. Если бы такое перепрограммирование было бы невозможным, потребовалась бы гораздо более дорогая переделка (или же слом и восстановление).