Не редко, в радиолюбительской практике, возникает необходимость в прошивке микроконтроллера семейства AVR. Для себя я решил эту проблему изготовлением простейших программаторов под самые ходовые микроконтроллеры среди радиолюбителей, для ATMEGA8 и ATtyny2313. Схема программатора очень проста, при его изготовлении не возникнет проблем даже у начинающего радиолюбителя.
Программатор подключается к COM порту компьютера, для питания микроконтроллера требуется внешний источник питания. Я для этих целей спаял шнур, позволяющий запитывать микроконтроллер от порта USB того же компьютера.
Этим программатором можно прошить любой микроконтроллер семейства AVR, достаточно подключить выходы программатора к соответствующим ножкам микроконтроллера:
Для прошивки AVR микроконтроллеров я использую специализированную программу PonyProg.
При первом включении программы, требуется указать программе используемый нами программатор и куда мы его подключили, для этого, заходим в настройки оборудования,
выбираем последовательный порт, тип программатора - SI Prog API, выбираем COM порт, в который воткнули программатор, и жмём кнопку "Проверка", Если всё сделали правильно, появится соответствующее окошко. Если нет, ищите ошибки в монтаже.
После удачно пройденого теста необходимо пройти калибровку программы под ваш компьютер, для этого выбираем соответствующий пункт меню в разделе настроек. В появившемся оне жмём утвердительно кнопку "Да".
Об окончании калибровке программа сообщит соответствующим появившемся окошком. Эта процедура проводиться только один раз, при первом подключении программатора к компьютеру, и в дальнейшем проводить не требуется. Что бы убедиться в работоспособности программатора на панели выбираем семейство "AVR micro", тип подключенного микроконтроллера, в моём случае ATmega8, и жмём кнопку "Читать содержимое устройства".
Начнётся процесс чтения, и по окончании программа выдасть код, содержащийся в памяти микроконтроллера. Если микроконтроллер новый, память будет забита единицами. В шеснадцатеричном коде - FF.
Для записи в микроконтроллер необходимого кода жмём на кнопку "Открыть содержимое устройства из файла", выбираем необходимый HEX файл и жмём открыть.
Программа отобразит открытый код. Далее жмём кнопку "Запись устройства".
В появившемся окне жмём ДА. Начнётся процесс записи.
Потом проверки, и в случае успешной записи, программа выдаст соответствующее сообщение.
Некоторые авторы выкладывают прошивку не целиком, а по отдельности. Отдельно область программ и отдельно область данных. То же самое, но для чтения и записи используются соседние кнопки с буквами P (программа) и D (данные). Файлы могут иметь расширение не HEX, а e2p.
Теперь настал самый ответственный момент, требующий особого внимания, это запись битов конфигурации (fuse bits). Для этого жмём кнопку с замком "Биты конфигурации и защиты". Откроется соответствующее окно, в котором необходимо расставить "птички" так, как рекомендует автор устройства, которое вы повторяете.
После чего жмём ОК, начнётся запись конфигурации.
Это самый ответственный момент, из-за неправильно установленных битов конфигурации можно заблокировать микроконтроллер, и его работа может быть неправильная, а перепрограммирование будет возможно лишь на параллельном программаторе, конструкция которогог довольно сложна. Все авторы работают с разными программами, в которых биты конфигурации выставляются по разному. Для примера, теже биты конфигурации, но в программе Algorithm Builder
Обратите внимание, биты конфигурации выставлены инверсно!
Что бы не возникало вопросов, как надо выставлять фьюзы, перед изменением битов жмём кнопку "Читать" и смотрим на бит SPIEN, по умолчанию он всегда включен. Этот бит разрешает последовательное программирование. В PonyProg он специально заблокирован, что бы его случайно не выключить. Сравнивая этот бит в статье автора и со своей программой делаем выводы, как надо ставить биты, инверсно или нет, так как у автора он тоже включен!
Существуют программаторы, подключаемые к USB разъёму компьютера, собрал и я себе такой
Сразу же возникли проблемы с драйверами под windows7. Так же проблемы с софтом, так как не каждая программа умеет с ним работать. Пробовал разные версии прошивок программатора, различные варианты разных авторов, но всё таки отложил его в сторону.
Плата программатора для ATmega8 в формате lay тут