Мой обычный метод перепрограммирования AVR (пока ограниченный ATtiny13 и ATtiny2313) состоит в том, чтобы отсоединить чип от схемы хоста, подключить его к другому макету со всеми подключениями ICSP, запрограммировать, а затем заменить. Тем не менее, я продолжаю слышать, что можно запрограммировать микросхему на месте (что, я понимаю, весь смысл ICSP).
Есть ли какие-то особые аппаратные соображения, которые нужно учитывать перед программированием чипа на месте? Например, я беспокоюсь, что процесс ICSP может повредить компоненты схемы, подключенные к тем же выводам AVR, которые используются для ICSP. Нужно ли иногда добавлять диоды или другие буферы для защиты этих компонентов?
Я знаю, что этот вопрос звучит немного расплывчато, и я предполагаю, что это так - но я не предоставил подробности моей конкретной схемы, потому что меня интересуют более общие практические правила. Т.е. никогда не нужно беспокоиться об этом, или ответ действительно зависит от конкретной схемы, частью которой является MCU?
Используйте перемычку или переключатель, чтобы физически отключить заголовок ICSP. Таким образом, вы можете обмениваться контактами с другими функциями, не беспокоясь и не тратя время на другие компоненты.
Это кажется самым очевидным и самым безопасным решением, и это то, что я использую.
(Мой первый ответ был удален, поэтому я попытался добавить больше деталей).
источник
К сожалению, вы не можете заниматься схемным программированием для вашего AVR, если контакты используются другими функциями, например, светодиодами. Хотя это может работать, это не гарантируется, поскольку может привести к тому, что выходы программиста или микроконтроллера упадут слишком низко для его работы.
Еще одна альтернатива - заказать предварительно запрограммированные фишки. Я знаю, что Microchip предлагает это для некоторых своих чипов, но я не уверен насчет Atmel.
источник