Как я планирую в схемотехническом программировании AVR?

12

Мой обычный метод перепрограммирования AVR (пока ограниченный ATtiny13 и ATtiny2313) состоит в том, чтобы отсоединить чип от схемы хоста, подключить его к другому макету со всеми подключениями ICSP, запрограммировать, а затем заменить. Тем не менее, я продолжаю слышать, что можно запрограммировать микросхему на месте (что, я понимаю, весь смысл ICSP).

Есть ли какие-то особые аппаратные соображения, которые нужно учитывать перед программированием чипа на месте? Например, я беспокоюсь, что процесс ICSP может повредить компоненты схемы, подключенные к тем же выводам AVR, которые используются для ICSP. Нужно ли иногда добавлять диоды или другие буферы для защиты этих компонентов?

Я знаю, что этот вопрос звучит немного расплывчато, и я предполагаю, что это так - но я не предоставил подробности моей конкретной схемы, потому что меня интересуют более общие практические правила. Т.е. никогда не нужно беспокоиться об этом, или ответ действительно зависит от конкретной схемы, частью которой является MCU?

Тим
источник

Ответы:

15

Я использовал ISP почти для каждой платы AVR, которую я сделал; нечего бояться. Руководство AVR ISP mkII дает довольно хорошее краткое изложение ограничений, на которые вы должны обратить внимание в разделе «Target Interface». В принципе, если вы подключите выводы MISO / MOSI / SCK непосредственно к программатору и получите между ними и остальной цепью около 820 Ом (и не будете делать ничего прикольного с выводом сброса), все в порядке. Я не буду беспокоиться о том, что провайдер может повредить другие компоненты; это не программист высокого напряжения. Все сигналы работают при 5 В, так что если это может повредить внешний компонент, то же самое может сделать ваш микроконтроллер.

Если вы действительно застряли с платой, которая не позволяет программировать интернет-провайдерам, я бы по крайней мере попытался использовать гнездо ZIF для вашей платы программирования. Они дорогие, но это значительно улучшит качество вашей жизни.

phooky
источник
Спасибо за ссылку - это именно то, что я после. На самом деле я не использую настоящего провайдера AVR - просто правильно запрограммированный Arduino. (!) Я заменил это на Bus Pirate через несколько дней, так что я собираюсь собрать доску с ZIF-сокетами. Моя нынешняя процедура крайне безобразна!
Тим
1

Используйте перемычку или переключатель, чтобы физически отключить заголовок ICSP. Таким образом, вы можете обмениваться контактами с другими функциями, не беспокоясь и не тратя время на другие компоненты.

Это кажется самым очевидным и самым безопасным решением, и это то, что я использую.

(Мой первый ответ был удален, поэтому я попытался добавить больше деталей).

Али Афшар
источник
Как это будет работать? Затем, когда переключатель / перемычка подключена, контакты будут по-прежнему подключены к остальной цепи.
eeze
0

К сожалению, вы не можете заниматься схемным программированием для вашего AVR, если контакты используются другими функциями, например, светодиодами. Хотя это может работать, это не гарантируется, поскольку может привести к тому, что выходы программиста или микроконтроллера упадут слишком низко для его работы.

Еще одна альтернатива - заказать предварительно запрограммированные фишки. Я знаю, что Microchip предлагает это для некоторых своих чипов, но я не уверен насчет Atmel.

Томас О
источник
О, хорошо, я подозревал это. Я просто буду продолжать делать что-то медленное и неуклюжее, наверное. (О, и нет никаких шансов заставить Atmel сделать предварительное программирование для меня, я просто скромный любитель. :-))
Тим
Стоимость микрочипа ~ 40 долларов США. Опять же, не уверен насчет Атмела. Если вы заказываете в диапазоне 10-100, это, вероятно, того стоит.
Томас О
3
Я запрограммировал множество плат с другими нагрузками на контакты SPI, особенно со светодиодами, без каких-либо проблем. Просто будьте осторожны, чтобы ничто не управляло сигналами. Это означает, например, что если у вас подключено SPI-устройство, дайте ему подтягивающий резистор или что-то подобное, чтобы оно тоже было сброшено или не выбрано.
Янн Вернье