AVRISP mkII совместимый клон - на базе USBtiny mkII SLIM.

К написанию данного материала сподвигло меня знакомство с купленной когда-то книгой издания 2016 года о программировании контроллеров AVR с использованием Atmel Studio и т.п. В ней автор вначале неплохо вкратце описывает общую теоретическую часть (без привязки к железу), в конце книги приводит русскоязычный перевод-конспект документации на контроллер tiny2313 (который он выбрал в качестве примера и главного героя книги) ... Основная же часть - полный трэшак! Причем не столько даже технический, сколько концептуальный. Я не буду давать резких оценок целесообразности изучения программирования на ассемблере даже микроконтроллеров в наше время, хотя это направление по-любому больше академическое, чем практическое ... Также опустим комментарии насчет выбора среды разработки для С-программ отличной от Atmel Studio (в которой автор предлагает программить на Asm) и выбора в качестве "героя книги" контроллера tiny2313 так такового (выбирали по цене?), без привязки к к.л. макетной плате (что было бы не только логично, но и удобно на практике). Почему для автора "так сложен" USB-интерфейс и работа с ним, а также его симпатия к ft245 и т.д. Но всех больше меня удивил перечень предложенных к использованию читателями программаторов!.. Вспоминаем - издание 2016 года, нам же предлагают две "колхозных" схемы (одна с парой буферов, другая с одним транзистором) на LPT и COM порты! Т.е. то что морально и технически устарело уже минимум как 10 лет назад! - как в плане стабильности, так и удобства в использовании ... Конечно, разве что попав в "технический вакуум" имеет смысл собрать подобную схему для однократного использования с целью записи прошивки в контроллер, который будет служить в дальнейшем программатором! Но автор про это не пишет, хотя видимо третий программатор (хоть USB-шный, уф ...) и должен по его мнению стать именно этой целью. И это программатор ... ("та-дам"!) USBasp! Браво! Но честное слово, это даже не смешно! Кто такие книги вообще в печать выпускает? Автор еще и глумится над читателем, типа что скорость программирования USBasp вполне достаточная ... Для tiny2313 если только что? Ню-ню ... Идея же самостоятельной сборки USBasp (а стало быть и примитивных программаторов на lpt/com для его инициализации) нецелесообразна как таковая (если это не самоцель) - купить готовый USBasp можно за несколько баксов, т.е. даже дешевле чем в розницу детали из которых он состоит! Вобщем из книги получается что радиолюбитель это нищеброд, не способный купить себе адекватный инструментарий и демо-плату (хоть туже ардуину!) - а почему оно так? Странно. Но в наибольшей степени поразил факт того что ни один! (даже USBasp) программатор из предложенных автором книги напрямую не поддерживается Atmel Studio - т.е. читателю предлагается заниматься чисто виртуальной отладкой (в симуляторе) и практическим "перетыканием" изучаемого контроллера из программатора в схему и обратно, или в лучшем случае довольствоваться возможностью внутрисхемного программирования USBasp и стороннего софта работы с ним прикрученного на кнопку как "внешний инструмент". А зачем так через ж ... ? А почему бы сразу не приобрести себе AVR Dragon (или хотябы предложить такой вариант?), или за вдвое меньшую цену совместимый клон программатора AVRISP mkII - которому и посвящена данная статья :-)

 

На самом деле, если честно, программатор USBtiny mkII SLIM остался обойденный вниманием на моем сайте по причине времени его приобретения (щас уж даже и не вспомню когда) и его функционалу в сравнении с уже имеющимися у меня программаторами AVR Dragon, USBasp, LittleWire ... Зачем я тогда вообще его купил? Могу вспомнить лишь мысль, что AVR Dragon штука несомненно универсальная и т.п. однако при этом весьма громоздкая и "электрически нежная" (жалко его типа на каждый день), а USBasp банально очень медленный (LittleWire еще медленней) и шить им "насыщенный под завязку" код в mega328 и то заждешься, а уж в mega644 (используемый в некогда собранном UzеBox) - ваще просто печаль ... Так что видимо именно благодаря сборке UzeBox'а и был приобретен клон AVRISP mkII. Вот только как до ЮзБокса творческо-разработческая мысль после сборки и тестирования так и не доходит, так и клон mkII лежал рядом с ним ... Ардуина сподручнее. Но вернемся к теме.

Основой данного программатора является контроллер 90usb162 с аппаратной реализацией USB-интерфейса и DFU-режимом обновления прошивки. Навскидку (судя по сохраненным мной материалам из сети) данный программатор в некотором подобии существовал еще чуть ли не 2010 году! (ссылки в конце статьи). На просторах сети можно найти великое множество разнообразных вариантов его конструкций и на базе макетных плат, и различные самопальные конструкции под ЛУТ - причем схемотехнические решения зачастую несколько отличаются. Также энтузиастами (видимо с сайта mdiy.pl - который сейчас недоступен) был создан проект топологии платы и ее трехмерная модель ...

 

Не удивительно, что китайцы воспользовались чужой разработкой и запустили на производство не только топологию платы ...

 

... но и полностью собрали устройство. И как всегда (в наше время) проще и дешевле купить уже собранное устройство, чем даже его, но в рассыпуху для самостоятельной сборки, особенно когда малые размеры деталек вовсе не благоприятствуют ручной сборке. Ниже фотки устройства сайта разработчик топологии ...

 

На фотках выше (не моих) устройство на зеленой плате имеет версию топологии 1.0
В начале статьи - фотки того, что я приобрел в исполнении китайцев (синяя плата, цена около 25 баксов, вроде была) - версия топологии 1.1, соответственно ее принципиальная схема от первоисточника:

С программной же точки зрения прошивка клона программатора AVRISP mkII является составной частью фреймворка LUFA и эволюционирует вместе с ним (а также усилиями отдельных энтузиастов допиливающих исходники из LUFA). В разные годы разные версии прошивок программатора обладали неодинаковой совместимостью с управляющим софтом (IDE). Помню, что сначала для работы с avrdude нужна была одна прошивка, а для Atmel Studio - другая (сейчас нужно только сменить драйвер). Также было ограничение на версию Atmel Studio и хаки прошивки для его обхода (IDE не хотела работать со "старой" версией и предлагала ее обновить, что было невозможно сделать штатными средствами) ... Не все так гладко? - так оно почти всегда так с клонами. Но в данном случае результат гарантирован и он более чем удобоюзабелен ;-)

Ну и по традиции о мелочах:

  1. При выборе и/или компиляции прошивки из исходников LUFA обратить внимание на вариацию схемотехники решения и примененный контроллер! Мой вариант (самые первые фотки) называется "USBtiny mkII SLIM" версия 1.1 - но даже у него есть разные топологии печатной платы (например), а есть еще и ваще другие (не SLIM). Так же новые исходники LUFA предполагают применение иного контроллера чем 90usb162 ... В настоящий момент использую эту прошивку - с Atmel Studio 6.1 полет нормальный, как и с avrdude любой версии. Для Дудки ставим драйвер libusb, для Студии - оригинальный AVRISP mkII (windrvr6), никакого другого переключения (ресетом, например) не требуется, светодиоды работают.
  2. Для прошивки программатора через DFU необходимо установить перемычку HWB и кратковременно замкнуть RESET (режим загрузчика). Далее классически используем Flip ... (кстати, версия 3.4.7 замечательно работает под Win7 x64).
  3. Архив с материалами (включая фотки, приведенные выше, документацию, исходники и т.д.) можно забрать с моего сервера (за недоступностью указанного первоисточника).
  4. Тестировал пока только ISP режим.

Напоследок - ссылки:

Чуть позже ...

MiGeRA (март 2019)

Заглавная » Радиоэлектроника » AVR-ISP программаторы » AVRISP mkII SLIM