Программатор для AVR. Выбор типа программатора. AVR910.
Программатор для AVR
Решил собрать программатор для AVR. Что может быть проще самодельного программатора для AVR? Не угадаете, проще может быть только покупной программатор для AVR. Есть множество типов программаторов: параллельные, высоковольтные, битбэнг... Лично я попользовался разными программаторами и пришел к выводу, что просто программатор это скучно, нужно делать маленький комплекс по восстановлению МК. Практически единственное, с чем я сталкивался, так это с неправильно выставленным источником тактирования.
Я предпочитаю работать с микроконтроллерами фирмы Atmel. Если быть точным, то я работаю только с ATMEGA16, ATMEGA8, ATTINY2313 и ATTINY13. Скоро начну эксперименты с ATMEGA128. Остальное было баловство, либо не привлекло моего внимания.
Выбор типа программатора
Программатор является необходимой железкой при работе с микроконтроллерами. Хотя есть микроконтроллеры, которые имеют встроенный бутлоадер. Бутлоадер это замечательный финт ушами для железячников, так как позволяет избавиться от необходимости покупать и использовать ставшую ненужной железяку. В большинстве случаев, для работы бутлоадера достаточно реализовать связь микроконтроллера с компьютером через UART. Идеально подходит связка MAX232 и стандартный COM порт компьютера. А если у вас на компьютере нет COM порта, но есть USB, то можно воспользоваться переходниками или самодельным адаптером, который позволит напрямую подключить наш микроконтроллер к USB порту компьютера. А так как я практически всегда делаю железки которые общаются с компьютером, то просто кощунственно не воспользоваться возможностью эксплуатации бутлоадеров. Бутлоадер может быть прошит не только на заводе, у некоторых микроконтроллеров есть возможность самостоятельно прошить бутлоадер. Например у ATMEGA8 и ATMEGA16 есть такая возможность, а вот у ATTINY серии подобного функционала нету. А еще, для прошивки бутлоадера, все-таки необходим программатор.
К программаторам можно отнести и некоторые отладчики, типа JTAG. Они тоже позволяют прошить микроконтроллер. Поиграл я в свое время с JTAG ICE и пришел к выводу, что мне достаточно отладочных средств которыми я пользуюсь. Для моих целей JTAG явно избыточен и по этому я его не использую.
К битбэнг программаторам относятся программаторы банально дрыгающие лапами порта (быстро меняющие состояние выводов порта). Яркий пример программатор Громова. Надежный как топор, правда очень многие люди не смогли осилить его изготовление. Там в схеме всего несколько резисторов на килоОм и несколько любых одинаковых диодов.
У битбэнга есть огромный минус и он заключается в том, что для него нужен настоящий COM порт, а различные переходники с USB на COM его не устраивают. Есть случаи когда он разработал на них, но это единичные случаи и шьет он тогда катастрофически медленно. Сейчас же я хочу перестраховаться и иметь в лапах USB программатор.
В противоположность простым программаторам, использующим дрыганье лапок, стоят программаторы со вспомогательным микроконтроллером. Этот тип программаторов конектится к прошиваемому микроконтроллеру по SPI и пишет в него данные получаемые с компьютера. Это позволяет добиться высокой скорости записи. Этот тип программаторов страдает одной очень большой проблемой, для него нужен программатор. Программатор позволяет единоразово прошить этот вспомогательный микроконтроллер для программатора и больше не вспоминать о нем.
Окончательный выбор программатора для AVR
Среди всего многообразия я остановил свой взор на двух программаторах. На USBasp и AVR910. Но AVR910 был лидером по двум причинам. Во-первых, он совместим с программой идущей в комплекте с AVR Studio; во-вторых, он генерирует меандр, что позволило сэкономить на одной микросхемке.
Подбиваем хотелки и возможности
Я решил остановиться на AVR910, который реализован на ATMEGA8, с применением софтового USB. Самым заманчивым вариантом оказался вариант предложенный Рыжковым Андреем aka PROTTOSS из Новокузнецка. Схему программатора и прошивку с драйверами можно скачать по адресу http://prottoss.com. Поклонники USBAsp могут зашить свой любимый программатор.
На плате программатора разведена ZIF-панелька с выводом всех лапок на штыри. Использовалась универсальная панелька в которую входят узкие и широкие корпуса МК. на одну сторону выведена цанговая панелька для подключения кварцев разного номинала со всем нужным обвязом. Так же на одну лапку выведен меандр от программатора и RC-цепь из конденсатора на 22pF с резистором на 10 КОм. Плюс разведен классический разъем ISP и свой собственный штекер для быстрого подключения к штырям расположенным по краям ZIF. Дополнительно выведено 4 штыря с питанием и 4 штыря с заземнем. Кстати, подключение кварца или RC-цепи осуществляется обычными джамперами.
Результат
Частенько этот программатор используется для отладочных целей, например если надо отработать небольшой алгоритм, а для отладки достаточно питания и пары светодиодов.
Отредактировано:2020-10-01 08:13:44