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

Но к сожалению мой любимый программатор-клон 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.
- +3
- 29 мая 2013, 17:41
- Papandopala
- 1
Файлы в топике:
AVRISP_MKII.zip
Что то я тут не заметил ничего «Мега»!
Вот тут мой обыкновенный Клон. Все взял на радиокоте. Прикол том что Студия 6.1 хочет обновить паршивку клона и со старой, отказывается работать.
Вот тут мой обыкновенный Клон. Все взял на радиокоте. Прикол том что Студия 6.1 хочет обновить паршивку клона и со старой, отказывается работать.
Попробуй мою прошивку залить. Может попрет. А ты тоже молодец, я уверен что твой программатор лучше моего. И твой программатор не «МЕГА» а «ЭКСТРА», это даже лучше чем мега.
- Papandopala
- 29 мая 2013, 17:59
- ↓
О прикольно, так ты с Украины? Как то был там у вас, мне понравилось. Я во Львове был и Киеве, климат там классный, вроде жара но сухая, легко переносится.
А кстати тебе эти все 7 светодиодов на программаторе как то помогают? Я бы в них махом запутался.
А кстати тебе эти все 7 светодиодов на программаторе как то помогают? Я бы в них махом запутался.
- Papandopala
- 29 мая 2013, 20:56
- ↑
- ↓
Во Львове климат просто ужасный, в Киеве намного легче переносится жара.
Светодиоды показывают разные состояния линий программатора. Столько их там ненужно, хватило бы и двух.
Светодиоды показывают разные состояния линий программатора. Столько их там ненужно, хватило бы и двух.
О… я о том же. В моем STK500 всего один. Просто показывает, что чип шьется.
- Papandopala
- 29 мая 2013, 22:00
- ↑
- ↓
И да, почему мега? Скорее милли) Мега был бы, если бы объединили три интерфейса в одном 6-пиновом коннекторе, добавили бы буферы для согласованию с любым напряжением, ацп, для индикации напряжения в студии.
МЕГА это по приколу.
если бы объединили три интерфейса в одном 6-пиновом коннекторе, добавили бы буферы для согласованию с любым напряжением, ацп, для индикации напряжения в студии.Да в общем то мне это все ненужно. Поэтому вырезал из схемы.
- Papandopala
- 29 мая 2013, 18:57
- ↑
- ↓
прошивка, разводка платы в (Sprint-Layout) и схема в нормальном виде здесьТакие вещи надо класть в аттачи.
Я думаю что нет. Как сказал мне DI, у него объем не резиновый. Во вторых когда я пытался это сделать, вылезло сообщение, что слишком большой объем. Так что я полностью забил на это и теперь всегда выкладываю инфо на сторонние ресурсы.
- Papandopala
- 29 мая 2013, 20:40
- ↑
- ↓
Выкинь из архива совершенно не нужные там флип, фотки платы из статьи и даташит на атмегу — и все прекрасно влезет.
Ладно уговорил, сделаю по слову твоему. Пускай будет всем хорошо.
- Papandopala
- 29 мая 2013, 20:57
- ↑
- ↓
Извини не смогу, так сделать. Ибо доброжелатели из-за слова МЕГА минусуют статью, поэтому вылезло сообщение что не хватает рейтинга. Слишком народ у нас чувствительный, воспринимают каждую букву всерьез. Так что останется как есть.
- Papandopala
- 29 мая 2013, 21:03
- ↑
- ↓
Так а че, пошутить что ли нельзя? Я не люблю когда все официально и строго. Мы ж не только пишем статьи, но и общаемся, обмениваемся опытом и информацией. Эта ж статья не претендует на главу в учебнике.
- Papandopala
- 30 мая 2013, 11:05
- ↑
- ↓
Отсутствие чувства юмора по моим наблюдениями приводит к вступлению в «Едросню» или даже к «православию головного мозга». Извините за оффтоп.
- KalyakaMalyaka
- 30 мая 2013, 11:30
- ↑
- ↓
Если бы конструкция была на атмеге, то я оценил бы заголовок «мегаклон программатора». Если бы умел програмировать исключительно атмега, то подошел бы «клон мегапрограмматора». Если бы конструкция была каким-нибудь 3-хэтажным объемным монтажем, так по определению надо меганазвание.
А такого юмора я не понимаю — лишь желтая пресса вспоминается.
А такого юмора я не понимаю — лишь желтая пресса вспоминается.
Тот кому нужна данная информация, тот и почерпнет ее для себя, кому ненужна значит ненужна, нет проблем. Скажем так если предложить реализацию данного программатора начинающему радиолюбителю, то думаю он согласится быстрее реализовать именно эту схему за пару часов, чем делать то что на microsin.ru. Каждому свой уровень и свои потребности. Кому то надо что то более сложное и навороченное пожалуйста microsin в подарок. Если нужно быстро сфарганить и чтоб работало как кувалда, пожалуйста и это есть. Каждому свое.
- Papandopala
- 29 мая 2013, 21:35
- ↑
- ↓
Автор молодец, а вот Атмел не молодцы ни разу. Сейчас каждое семейство имеет дебаггеры по бросовой цене.
- count_enable
- 29 мая 2013, 23:59
- ↓
я так понимаю что отладчика для 6 студии не будет такого же доступного… а каким образом там вообще отлаживать…
- maxlenin1979
- 30 мая 2013, 02:16
- ↓
Чухня, автор открыл для себя клон мк2 — это хорошо, на той-же луфе есть исходники, где можно в случай чего пофиксить F_CPU, а вот херня в том, что слышал пару-восемь раз, что есть пришивка для 162 чтоб умел работать и со студией и с дудкой одновременно, но, но, но… ниразу не видел, вот это было бы МЕГА хорошо.
У последней дудки в конфиге есть этот программатор, но она его не определяет почему-то, во всяком случае мой нестандартный клон. Может конфиг подправить чуток надо. Еще руки не дошли.
Дело не в дудке, вроде бы, ранее было так, что девайс на разных прошивках использовал разные драйвера, то от студии то от libusb — в этом мб и косячина была. А мб Вы и правы, мб ща дудку научили дрыгать дровами от студии, в любом случае через пару часов проверю.
Я сейчас скачал avrdude 5.11.1 и оболочку к ней AVRDUDE_PROG 3.2. Запустил эту всю капусту. Подключил свой старый клон stk500. Все четко работает. Чип пишется стирается. Потом подключил свой свежеиспеченный AVRISP MKII. И… дуля с маслом. При попытке считать FUSE или прошить кристал, прога пишет что все ОК! Все считано и прошито и что все работает. Но только при этом абсолютно ничего не происходит. Отключил AVRISP MKII от компа, опять попробовал считать FUSE и прикол, прога пишет, что FUSE считаны! И что все пучком! Если нароешь в чем причина и исправишь, то можем дополнить статью.
- Papandopala
- 30 мая 2013, 12:46
- ↑
- ↓
В файле AppConfig.h есть строка:
#define RESET_TOGGLES_LIBUSB_COMPAT
её нужно раскомментарить.
Она позволяет при нажатии ресет переключаться между AtmelStudio & libUSB, ко всему прочему крайний режим сохраняется в EEPROM. Я, правда не пробовал, пока не до этого. Пытаюсь это всё поднять на Arduino Leonardo, пока что глухо, хотя AtmelStudio 6.1 моего Лео видит как AVRISP MKII.
Исходники AVRISP MKII от LUFA совершенно прекрасно компилируются без особого шаманства.
#define RESET_TOGGLES_LIBUSB_COMPAT
её нужно раскомментарить.
Она позволяет при нажатии ресет переключаться между AtmelStudio & libUSB, ко всему прочему крайний режим сохраняется в EEPROM. Я, правда не пробовал, пока не до этого. Пытаюсь это всё поднять на Arduino Leonardo, пока что глухо, хотя AtmelStudio 6.1 моего Лео видит как AVRISP MKII.
Исходники AVRISP MKII от LUFA совершенно прекрасно компилируются без особого шаманства.
У буржуинов недавно выложили такую версию dangerousprototypes.com/2013/05/27/usbtiny-mkii-slim-programmer/ по моему симпатично.
Там написано что работает и с AvrStudio и с AvrDude. Значит есть такая прошивка.
- Papandopala
- 30 мая 2013, 11:43
- ↑
- ↓
Меня заинтересовал этот вариант, я наскоро сделал сборку проекта для моей ATMega32U2, драйвер установился автоматически от Студии 4, в студии программатор заработал (проверил только чтение сигнатуры и фьюзов). После этого сделал ресет, опять определился AVRISPMK2, я протупил и опять поставил драйвера от Студии, но потом допер и обновил драйвер на libusb, который тут же сгенерил имеющещейся в комплекте с libusb утилиткой.
В результате этого всего получилось, что по ресету переключается libusb|avrispmk2, но программатор работать перестал и в Студии, а в дудке в режиме libusb стал зависать…
Надо бы как-то собрать в один архивчик работающие варианты драйверов и прошивки и схемы под оба варианта. Ну как-то так…
В результате этого всего получилось, что по ресету переключается libusb|avrispmk2, но программатор работать перестал и в Студии, а в дудке в режиме libusb стал зависать…
Надо бы как-то собрать в один архивчик работающие варианты драйверов и прошивки и схемы под оба варианта. Ну как-то так…
Кстати, минимальный клон MkII тут уже публиковали, только в чуть более интересном исполнении.
Алсо, картинки отвалились.
Алсо, картинки отвалились.
Приветствую.
Собрал программатор, руководствуясь этой статьей. Прошил микру, программатор определился, драйвера стали. Но МК не читает.
Атмел студия 6 его вообще не видит, СВАВР и АВР студия 4.19 видят программатор, но при попытке что-либо считать с МК плюются ошибкой входа в Programming Mode.
Частоту менял, пару раз перешивал AT90USB162 — ни какого результата.
Подскажите, где искать проблему?
Собрал программатор, руководствуясь этой статьей. Прошил микру, программатор определился, драйвера стали. Но МК не читает.
Атмел студия 6 его вообще не видит, СВАВР и АВР студия 4.19 видят программатор, но при попытке что-либо считать с МК плюются ошибкой входа в Programming Mode.
Частоту менял, пару раз перешивал AT90USB162 — ни какого результата.
Подскажите, где искать проблему?
- ultra_lammer
- 22 октября 2014, 14:46
- ↓
Не знаю где искать, на расстоянии трудно что либо сказать. Надо видеть все буквально что и как. очень часто проблема из-за неправильного подключения выводов MISO, MOSI, SCK, RESET, GND. Занимаюсь МК уже много лет, а все равно часто путаю подключение. Проверь правильность подключения. И резисторы гасящие уменьши до 100 Ом. Но если студия 6 не видит, значит все таки что то с драйверами не так. Хотя странно что 4ка все таки видит. Попробуй на другом компе поставить студию 6 с чистого листа и воткнуть программатор. Ну или если все плохо то купи такой же но готовый.
- Papandopala
- 22 октября 2014, 16:05
- ↑
- ↓
У меня такая проблема. Все спаял, по ISP прошивается, но компьютер не видит. Генерация на кварце есть. Фьюзы
Lock byte: 3F
High byte: D9
Low byte: DE
Extended: F1
Lock byte: 3F
High byte: D9
Low byte: DE
Extended: F1
Вчера нашёл старую заначку…
вставил в комп… Винда7х64 написала, что нашла новое устройство AT90USB162… сама установила Виндовый драйвер…
оказалось непрошитая версия платки была… никакие фьюзы не менял… кварц 16
Далее следовал по инструкции из AVRISPMKII_grott_2.zip (качал где то там посеридине radiokot.ru/forum/viewtopic.php?p=1738313 grott Вт июл 23, 2013 22:12:38)
вставил в комп… Винда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.

Комментарии (60)
RSS свернуть / развернуть