Мегаклон программатор AVRISP MKII для микроконтроллеров AVR.

AVR
Долгое время я программировал микроконтроллеры AVR клоном программатором STK500. Он прекрасно уживается с AvrStudio4. И работает прямо из среды этой программы. Так что я программировал AVR чипы и был очень счастлив. Но время шло и появилась AtmelStudio5, потом AtmelStudio6 , и постепенно я переехал на более новую версию AtmelStudio6. Переехал не потому, что перестала устраивать AvrStudio4, а просто удобство писания прог на СИ в 6-ой версии, как мне показалось малек удобнее чем на 4-ке. Есть и подсветка синтаксиса и всплывающие подсказки ну и куча разных фишек при отладке.

Но к сожалению мой любимый программатор-клон STK500 работал с новой 6-ой версией через пень-колоду. То подключится, то не подключится. Ну и писал я поэтому проги на 6-ой версии, а зашивал чипы из под 4-ой. Со временем меня это достало. И я решил сделать себе новый программатор для 6-й версии студии.

Требования к программатору были таковы:
1. Чтоб был прост, без лишних наворотов и не нужных примочек.
2. Чтоб работал надежно как кувалда, долго и счастливо.
3. Высокая скорость прошивания чипов. Ибо мой клон STK-500 не шибко быстрый.
4. Должен очень стабильно работать с AvrStudio4 и AtmelStudio6.

Рытье гугла привело меня к программатору AVRISP MKII. Далее я нарыл вагон схем этого программатора. Все нарытые мной схемы оказались похожи друг на друга, отличия были в мелочах. Из всех этих схем я соорудил свою схему, простую, без наворотов, без лишних кнопок и кучи мигающих светодиодов. Ну скажите пожалуйста, зачем мне аж 7 светодиодов на программаторе, если в самом окне программирования есть прогресс-бар показывающий сколько осталось до конца процесса программирования. Над прогресс-баром есть еще лог сообщений, в котором тоже пишется, что происходит с чипом. Ну и если что то не так с программатором, то сама студия выдает отдельное окно с сообщением в котором написано в чем проблема. Итак, я решил снести из схемы все эти светодиоды и кнопочки. Достаточно одного светодиода для визуализации процесса прошивания.

Срезал так же интерфейсы TPI(для некоторых Attiny) и PDI для Xmega, ибо не планирую в ближайшем будущем с ними работать. Пока Atmega хватает. Схема моего программатора вся на 5 вольт. Однако я уже несколько лет программировал своим древним STK500 на 5 вольт и схемы на 3.3 вольта, проблем не было, ничего не сжег. Но это уж сами решайте, шить таким образом или не шить. Кстати на выводах стоят гасящие резисторы, поэтому, по идее можно шить схемы с чипами запитанными на 3.3 вольта. Итак вот сама схема.


Как видим программатор получился 3 детали 2 запчасти. Вот и весь программатор.

Все конденсаторы керамические. Микроконтроллер ATUSB162-16AU я использовал б/у. Термофеном из какого-то устройства выпаял. Так как у меня есть старый программатор, то прошивку я залил им. И меня не сильно интересовало, есть ли в ATUSB162-16AU загрузчик. Но если вы собираете свой первый программатор, то с завода изготовителя в этих чипах ATUSB162-16AU стоит загрузчик. И можно залить прошивку в чип без программатора. Для этого надо воспользоваться программой скачанной у Atmel. Называется она FLIP. Таким образом, можно одним движением руки собрать этот программатор, не имея в наличии второго программатора. Проблема «курица и яйца» не возникает.

Вот сама плата.

Уже спаянная.

Вид сверху.

Готовый полностью.


Прошивку для программатора я взял из проекта LUFA. Понятно что там нет готового файла *.HEX для заливки в ATUSB162-16AU. Поэтому я скомпилировал его так, как писал об этом здесь. Но вам этого делать не надо, так как прошивка, разводка платы в (Sprint-Layout) и схема в нормальном виде в топике. Кстати, если не ошибаюсь, то вроде как загрузчик в ATUSB162-16AU работает на 8MHz, а сам программатор работает на 16MHz. Учитывайте это. Но в топике есть прошивка и для 8ми Мгц

Грабли которые возникли при сборке и тестировании программатора: Граблей в общем то не возникло, поэтому особо писать нечего.

Настройки FUSE BIT для ATUSB162-16AU:
HIGH 0xD9
LOW 0xDE
Но если в чипе стоит загрузчик, то значения FUSE BIT будут другие.

Перед тем как втыкать программатор в USB порт вашего любимого компьютера, надо сперва поставить AtmelStudio6. Потом втыкаем программатор. Драйвера подхватываются автоматически. Если нет, то вручную указываем папку в которой находится установленная AtmelStudio6. Программатор я протестировал с AvrStudio4 и с AtmelStudio6.0, 6.1, 6.2. Тест происходил на Windows XP (32bit) и Windows 7 (64bit). В обоих случаях все поставилось и разу стало работать. На днях (16.12.2013) опробовал на Windows 8 (64bit), заработал как миленький.

Результат:
1. Схема получилась как и хотелось, с минимумом деталей. Для начинающих само то.
2. Испробован под 3 платформами WINDOWS. Нареканий не возникло.
3. Если честно, то я впечатлился скорости прошивания программатора. 54 кило прошивки программатор засандалил в кристалл за 4-5 сек (без верификации). Мой старый клон STK500 такой же объем прошивал где то за 60 сек.(без верификации). Разница в скорости прошивания явно очевидна.
4. Студии работают с ним, как с родным. Ошибок не появлялось пока не одной.

Так что считаю, что данный программатор достиг поставленных перед ним целей.

Вот видео-тест работы программатора с AvrStudio4 и с AtmelStudio6. На видео при тесте с AvrStudio4 винда глюканула малек. Она в принципе на том компе тормозит постоянно.



Так что, уважаемые начинающие радиолюбители и не очень начинающие, пробуйте. Надеюсь вам понравится. Желаю удачи.

P.S.
Забыл сказать. На схеме есть два вывода RESET. Так вот, чтоб прошивать чипы используем тот RESET, который прикреплен к ноге PB4. Аппаратный RESET используется только лишь один раз, при загрузке прошивки в ATUSB162-16AU другим программатором.

Попытался запустить данный программатор в связке AVRDUDE 5.11.1 с привлекательной утилитой AURDUDE_PROG 3.2. Но пока не работает. Возможно если получится нарыть причину, то напишу.



P.S. №2
Заметил что каждые пол года AtmelStudio обновляется следующим сервис паком. И после каждого такого обновления программатор отказывается работать, ибо не совпадает версия прошивки программатора с требуемой. И каждый раз приходится заново перекомпилировать проект из LUFA. Потом заливать новую прошивку в программатор. Версия прошивки меняется в файле V2ProtocolParams.h

Это несколько неудобно. Вот на днях обновил Studio, воткнул программатор, хрясь а он не работает. Ибо студия требует обновить прошивку программатора. Засада. Вот я решил сразу этот параметр firmvare_version_minor поменять с запасом на последующие обновления студии. Сделал его 0x50. Прошил, проверил все работает. Надеюсь этого надолго хватит. В аттаче лежат прошивки для кварца на 8 и 16 MHz.
Файлы в топике: AVRISP_MKII.zip

Комментарии (60)

RSS свернуть / развернуть
Что то я тут не заметил ничего «Мега»!
Вот тут мой обыкновенный Клон. Все взял на радиокоте. Прикол том что Студия 6.1 хочет обновить паршивку клона и со старой, отказывается работать.
+2
очень легко исправляется. писал об этом в прошлом посте автора этого, просто увеличте версию прошивки и всё будет работать! сам пробовал.
0
Попробуй мою прошивку залить. Может попрет. А ты тоже молодец, я уверен что твой программатор лучше моего. И твой программатор не «МЕГА» а «ЭКСТРА», это даже лучше чем мега.
0
Да, из последней LUFой должно все работать.
0
О прикольно, так ты с Украины? Как то был там у вас, мне понравилось. Я во Львове был и Киеве, климат там классный, вроде жара но сухая, легко переносится.

А кстати тебе эти все 7 светодиодов на программаторе как то помогают? Я бы в них махом запутался.
0
Во Львове климат просто ужасный, в Киеве намного легче переносится жара.
Светодиоды показывают разные состояния линий программатора. Столько их там ненужно, хватило бы и двух.
0
О… я о том же. В моем STK500 всего один. Просто показывает, что чип шьется.
0
Дак у меня и есть последняя версия.
0

эта?
если да, то с прошивкой от LUFA-130303 эта студия предлагает обновить прошивку на программаторе и работать отказывается.
тут надо в файле V2ProtocolParams.h сменить (увеличить) значение #define FIRMWARE_VERSION_MINOR на 0x16 (как я помню это), могу ошибаться, делал с месяц назад.
0
а конкретно в программаторе из поста, забыли вывести CLK OUT — иногда очень помогает! ну про избыточность места на ПП — без коментариев, тут видно чт под корпус конкретный делали :)
0
Увы, у меня нету исходников прошивки к моему клону. Автор на радиокоте ее не публиковал.
0
А ошибку с прошивкой eeprom в последних версиях LUFA не исправили, кто в курсе?
Помню раньше были какие то проблемы.
0
Насколько я знаю, этот баг давно исправили.
0
И да, почему мега? Скорее милли) Мега был бы, если бы объединили три интерфейса в одном 6-пиновом коннекторе, добавили бы буферы для согласованию с любым напряжением, ацп, для индикации напряжения в студии.
+2
МЕГА это по приколу.
если бы объединили три интерфейса в одном 6-пиновом коннекторе, добавили бы буферы для согласованию с любым напряжением, ацп, для индикации напряжения в студии.
Да в общем то мне это все ненужно. Поэтому вырезал из схемы.
0
Тогда почему это МЕГАклон? больше похоже на микроклон. или мини.
+1
Да я же прикалываюсь, что ж такие все серьезные. Все буквально воспринимаете.
0
прошивка, разводка платы в (Sprint-Layout) и схема в нормальном виде здесь
Такие вещи надо класть в аттачи.
0
  • avatar
  • Vga
  • 29 мая 2013, 19:56
Я думаю что нет. Как сказал мне DI, у него объем не резиновый. Во вторых когда я пытался это сделать, вылезло сообщение, что слишком большой объем. Так что я полностью забил на это и теперь всегда выкладываю инфо на сторонние ресурсы.
0
Чего ты туда натолкал на целых 33 метра? Да, тут лимит в 10МБ, но для схемы, прошивки и платы этого более чем достаточно.
На сторонние же ресурсы выкладывать инфу не следует потому, что когда файл на яндексе протухнет — статья станет абсолютно бесполезной.
0
Выкинь из архива совершенно не нужные там флип, фотки платы из статьи и даташит на атмегу — и все прекрасно влезет.
0
Ладно уговорил, сделаю по слову твоему. Пускай будет всем хорошо.
0
Схема/прошивка в аттаче — хорошо, но теперь упал keep4u и картинки отвалились. Лучше залей их на сервер сообщества — это делает первая из двух кнопок «вставить картинку».
0
Извини не смогу, так сделать. Ибо доброжелатели из-за слова МЕГА минусуют статью, поэтому вылезло сообщение что не хватает рейтинга. Слишком народ у нас чувствительный, воспринимают каждую букву всерьез. Так что останется как есть.
0
Вроде как уже проплюсовали до +2, попробуй еще раз.
0
Может тогда не стоит давать желтые заголовки?
0
Так а че, пошутить что ли нельзя? Я не люблю когда все официально и строго. Мы ж не только пишем статьи, но и общаемся, обмениваемся опытом и информацией. Эта ж статья не претендует на главу в учебнике.
0
Отсутствие чувства юмора по моим наблюдениями приводит к вступлению в «Едросню» или даже к «православию головного мозга». Извините за оффтоп.
-2
Если бы конструкция была на атмеге, то я оценил бы заголовок «мегаклон программатора». Если бы умел програмировать исключительно атмега, то подошел бы «клон мегапрограмматора». Если бы конструкция была каким-нибудь 3-хэтажным объемным монтажем, так по определению надо меганазвание.

А такого юмора я не понимаю — лишь желтая пресса вспоминается.
0
А у тебя тоже вроде юмор есть.
0
О! так это у меня мега-клон получился))))
0
Поздно, авторские права уже Papandopala зарегистрировал :)
0
Честно говоря, тема пустая по сравнению с описанием данного программатора на микросине.
0
Тот кому нужна данная информация, тот и почерпнет ее для себя, кому ненужна значит ненужна, нет проблем. Скажем так если предложить реализацию данного программатора начинающему радиолюбителю, то думаю он согласится быстрее реализовать именно эту схему за пару часов, чем делать то что на microsin.ru. Каждому свой уровень и свои потребности. Кому то надо что то более сложное и навороченное пожалуйста microsin в подарок. Если нужно быстро сфарганить и чтоб работало как кувалда, пожалуйста и это есть. Каждому свое.
0
при такой минималистической схеме проситься форм-фактор «USB Dongle».
0
Автор молодец, а вот Атмел не молодцы ни разу. Сейчас каждое семейство имеет дебаггеры по бросовой цене.
+1
я так понимаю что отладчика для 6 студии не будет такого же доступного… а каким образом там вообще отлаживать…
0
Чухня, автор открыл для себя клон мк2 — это хорошо, на той-же луфе есть исходники, где можно в случай чего пофиксить F_CPU, а вот херня в том, что слышал пару-восемь раз, что есть пришивка для 162 чтоб умел работать и со студией и с дудкой одновременно, но, но, но… ниразу не видел, вот это было бы МЕГА хорошо.
0
У последней дудки в конфиге есть этот программатор, но она его не определяет почему-то, во всяком случае мой нестандартный клон. Может конфиг подправить чуток надо. Еще руки не дошли.
0
Дело не в дудке, вроде бы, ранее было так, что девайс на разных прошивках использовал разные драйвера, то от студии то от libusb — в этом мб и косячина была. А мб Вы и правы, мб ща дудку научили дрыгать дровами от студии, в любом случае через пару часов проверю.
0
Я сейчас скачал avrdude 5.11.1 и оболочку к ней AVRDUDE_PROG 3.2. Запустил эту всю капусту. Подключил свой старый клон stk500. Все четко работает. Чип пишется стирается. Потом подключил свой свежеиспеченный AVRISP MKII. И… дуля с маслом. При попытке считать FUSE или прошить кристал, прога пишет что все ОК! Все считано и прошито и что все работает. Но только при этом абсолютно ничего не происходит. Отключил AVRISP MKII от компа, опять попробовал считать FUSE и прикол, прога пишет, что FUSE считаны! И что все пучком! Если нароешь в чем причина и исправишь, то можем дополнить статью.
0
У меня не работает ни при каких настройках дудки, но у меня пока только 4-я студия установлена. Качается 6-я, может в ней драйвер подправлен, попробую.
0
В файле AppConfig.h есть строка:
#define RESET_TOGGLES_LIBUSB_COMPAT

её нужно раскомментарить.
Она позволяет при нажатии ресет переключаться между AtmelStudio & libUSB, ко всему прочему крайний режим сохраняется в EEPROM. Я, правда не пробовал, пока не до этого. Пытаюсь это всё поднять на Arduino Leonardo, пока что глухо, хотя AtmelStudio 6.1 моего Лео видит как AVRISP MKII.
Исходники AVRISP MKII от LUFA совершенно прекрасно компилируются без особого шаманства.
0
Это значит что можно программатор запустить под AVRDUDE?
0
Пока рою потихоньку, с временем туго. В личку отписал ответ.
Будет информация — буду иметь в виду.
0
А я тут на днях собрал такой же программатор на ATMega32U2, так как AT90USB162 у меня нет. И работает нормально, только я в процессе экспериментов затер загрузчик, ну и АЦП у нее нет, так что померять напряжение не получится.
0
Хорошая заметка. Большое спасибо!
0
У буржуинов недавно выложили такую версию dangerousprototypes.com/2013/05/27/usbtiny-mkii-slim-programmer/ по моему симпатично.
0
Там написано что работает и с AvrStudio и с AvrDude. Значит есть такая прошивка.
0
Работать будет либо с AvrStudio, либо с AvrDude. Там, вроде, это можно выбрать без перепрошивки.
0
Меня заинтересовал этот вариант, я наскоро сделал сборку проекта для моей ATMega32U2, драйвер установился автоматически от Студии 4, в студии программатор заработал (проверил только чтение сигнатуры и фьюзов). После этого сделал ресет, опять определился AVRISPMK2, я протупил и опять поставил драйвера от Студии, но потом допер и обновил драйвер на libusb, который тут же сгенерил имеющещейся в комплекте с libusb утилиткой.
В результате этого всего получилось, что по ресету переключается libusb|avrispmk2, но программатор работать перестал и в Студии, а в дудке в режиме libusb стал зависать…
Надо бы как-то собрать в один архивчик работающие варианты драйверов и прошивки и схемы под оба варианта. Ну как-то так…
0
Кстати, минимальный клон MkII тут уже публиковали, только в чуть более интересном исполнении.

Алсо, картинки отвалились.
0
  • avatar
  • Vga
  • 30 мая 2013, 13:20
Что там схемы вообще нет.
0
В аттаче там все.
0
Приветствую.
Собрал программатор, руководствуясь этой статьей. Прошил микру, программатор определился, драйвера стали. Но МК не читает.
Атмел студия 6 его вообще не видит, СВАВР и АВР студия 4.19 видят программатор, но при попытке что-либо считать с МК плюются ошибкой входа в Programming Mode.
Частоту менял, пару раз перешивал AT90USB162 — ни какого результата.
Подскажите, где искать проблему?
0
Не знаю где искать, на расстоянии трудно что либо сказать. Надо видеть все буквально что и как. очень часто проблема из-за неправильного подключения выводов MISO, MOSI, SCK, RESET, GND. Занимаюсь МК уже много лет, а все равно часто путаю подключение. Проверь правильность подключения. И резисторы гасящие уменьши до 100 Ом. Но если студия 6 не видит, значит все таки что то с драйверами не так. Хотя странно что 4ка все таки видит. Попробуй на другом компе поставить студию 6 с чистого листа и воткнуть программатор. Ну или если все плохо то купи такой же но готовый.
0
Вот тут подробнее о нем.
0
У меня такая проблема. Все спаял, по ISP прошивается, но компьютер не видит. Генерация на кварце есть. Фьюзы
Lock byte: 3F
High byte: D9
Low byte: DE
Extended: F1
0
Вчера нашёл старую заначку…
вставил в комп… Винда7х64 написала, что нашла новое устройство AT90USB162… сама установила Виндовый драйвер…
оказалось непрошитая версия платки была… никакие фьюзы не менял… кварц 16
Далее следовал по инструкции из AVRISPMKII_grott_2.zip (качал где то там посеридине radiokot.ru/forum/viewtopic.php?p=1738313 grott Вт июл 23, 2013 22:12:38)
Далее запускаем программу FLIP:
— выбираем AT90USB162 (Device->Select);
— открываем usb порт (Settings->Communication->USB);
— открываем файл прошивки (File->Load HEX File...);
— нажымаем Run (отмечены Erase, Program, Verify).
Чип AT90USB162 прошился очень быстро и удачно.

Вытаскиваем шнур USB и снова вставляем.

После данного шага в диспетчере устройств исчезает AT90USB162 и появляется LUFA AVRISP MKII Clone (или что-то подобное) и компьютер опять не может найти драйвера… Не беда, указываем драйвера из папки Atmel \ AVR Jungo USB.
0
Кстати, иногда приходится использовать программку zadig для подмены драйверов, у меня студия не видит программатор со стандартными драйверами, использую libusb32 из zadig.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.