Avrisp mkii clone своими руками

Компактный программатор USBTiny-MkII SLIM (клон AVRISP-MKII)

Компактный программатор USBTiny-MkII SLIM (клон модели AVRISP-MKII) поддерживает все микроконтроллеры Attiny, Atmega, и Xmega. Программатор имеет три программных интерфейса: ISP, PDI и TPI. Он работает со средой разработки AvrStudio или AvrDude. Небольшая удобная плата содержит двунаправленный преобразователь напряжения для всех интерфейсов, который работает от напряжения 1,2 В, имеет джампер для выбора напряжения 5 В или 3,3 В для питания целевой микросхемы (LDO стабилизатор) и светодиодные индикаторы состояния. Сердцем устройства является контроллер AT90USB162 с подключением по USB для обеспечения быстроты программирования.

Об устройстве:
Схема построена и основана на проекте LUFA (link), программатор по аналогии с моделью USBTiny-MKII (link) и USBTiny MKII PL (link). Я использовал прибор MAX3002 вместо оригинального преобразователя GTL2003, также как автор PL версии – данная микросхема более доступна. Для данной замены также потребовалось изменить код, который описан в последней сноске – код в прикрепленном файле уже в измененном виде – оригинальный работает некорректно.
ВНИМАНИЕ – как показано, MAX3002 версия (1.0) работает плохо, когда ISP линии нагружены сопротивлением или емкостью – не копировать! Печатная плата версии 1.1 с микросхемой GTL2003, которая отлично работает, доступна как обновление ниже – эта плата работает с оригинальной прошивкой.

Программатор имеет три IDC 6-выводных гнезда для поддержки трех программных протоколов: ISP, PDI и TPI. Они позволяют программировать все доступные микросхемы Atmega, Attiny и Xmega. Печатная плата только выглядит сложной, но она может быть изготовлена и в домашних условиях. Сквозные отверстия располагаются не под микросхемой или другими элементами, поэтому они могут соединяться проводами. Сквозные отверстия, расположенные под микросхемой at90usb162, выводят ее остальные свободные выводы на контактные площадки с нижней стороны платы – поэтому схему также можно использовать как тестовую плату для других кодов, используя для этой цели подключение по USB. Изменение кода выполняется очень просто – через встроенный USB загрузчик и бесплатный программный инструмент от компании Atmel – FLIP.

Под IDC гнездами расположен джампер – вы можете выбрать напряжение, которое можно использовать для питания вашей целевой микросхемы. Для напряжения 5 В необходимо закоротить выводы 1 и 2, а для напряжения 3,3 В выводы 2 и 3. Для снижения напряжения используется стабилизатор LDO MCP1825S-3302ED – однако вы может использовать любой другой совместимый по выводам прибор, такой как LF33. Снятие джампера приведет к отключению напряжения от “передаваемой” стороны и вы должны подать это напряжение от целевой микросхемы, чтобы обеспечить работу программатора.

Я не буду писать о программировании, поскольку каждый знает, как это сделать. Программатор можно использовать напрямую из среды разработки AvrStudio или AvrDude. Недостатком этого является тот факт, что мы должны выбрать с каким программным обеспечением мы хотим его использовать – тем не менее, замена одного на другое, вопрос нескольких минут 🙂

Запуск:
После правильной спайки платы подсоедините ваш программатор к USB порту. Вы увидите уведомление, что ваш ПК обнаружил новой устройство, которое называется “AT90USB162 DFU”. Загрузите и установите программное обеспечение FLIP от компании Atmel. Затем установите DFU драйверы из папки Atmel\Flip\usb\. После правильной установки запустите FLIP, щелкнув на иконке “chip”, и выберите из списка at90usb162. Далее нажмите вторую иконку “usb cable”, выберите USB, и потом OPEN в следующем окне. Программа FLIP должна обнаружить вашу микросхему без проблем – если микросхема не определяется (вы получите сообщение об ошибке) то это означает, что вы что-то сделали неправильно. Попытайтесь переустановить драйвер, подсоединить программатор к другому usb порту или перезагрузить компьютер.

Читайте также:  Dodge challenger своими руками

Если ваша микросхема новая (незапрограммированная), тогда после подсоединения она автоматически запустится в режиме загрузчика. Если вы хотите обновить прошивку, тогда вставьте HWB джампер и закоротите RST выводы. Микросхема запустится в режиме загрузчика. После это джампер можно снять.

Если вы хотите скомпилировать свой собственный код, тогда вам необходимо только WinAvr версии 2010-01-10. Выберите make clean и затем make all – это все, что надо сделать. Но здесь мы можем выбрать программное обеспечение, с помощью которого необходимо скомпилировать прошивку. Если мы хотим использовать AvrDude, тогда откройте файл makefile и добавьте следующую строку:
CDEFS += —DLIBUSB_DRIVER_COMPAT

На следующем шаге запишите прошивку в микросхему. Щелкните на первой иконке “open book” и выберите наш HEX файл. Затем нажмите кнопку RUN. Необходимо поставить галочки во флажки “erase”, “program”, и “verify”. Код будет записан очень быстро. Теперь повторно подключите программатор к usb порту – или закоротите RST выводы, при этом загорится два светодиодных индикатора.

После этого ПК обнаружит новое устройство LUFA AVRISP MkII CLONE – теперь пришло время установить для него драйвер. Если мы хотим использовать программатор с AvrStudio, тогда установите драйвер из папки Atmel\AVR Tools\usb\ – эта папка создается при установке AvrStudio. Но если мы хотим использовать программатор с AvrDude, тогда установите драйвер LIBUSB. Распакуйте файлы, запустите приложение inf-wizard, выберите наш программатор из списка, сохраните созданный файл и щелкните на install now (установить сейчас) или используйте windows инсталлятор. При этом должен загореться светодиодный индикатор LED1 – это означает, что программатор готов к работе – поздравляем, это все.

В AvrStudio, щелкните на кнопку Con, затем выберите из списка AVRISP mkII, и нажмите connect (подсоединить).

В AvrDude, измените тип вашего программатора в командной строке на:
c avrisp2 —P usb или c avrispmkII —P usb.

Обновление 2013-03-03:
В AVRISP-MKII lufa проекте уже внесено несколько изменений, наиболее важными из которых являются:
Устранение ошибок, которые блокировали USB соединение после не успешной попытки подключения к целевой микросхеме.
Добавлена функция для быстрого переключения между Jungo (Avr/Atmel Studio) и LibUSB (AvrDude) драйвером в одной прошивке FirmWare. Просто закоротите выводы сброса, и в системе появится отдельное устройство с другим серийным номером. Два мигающих светодиодных индикатора означают, что мы имеем Jungo драйвер и четыре, что мы имеем LibUSB драйвер. В обоих случаях нам необходимо установить правильные драйверы. При использовании другой среды разработки необходимо заранее загрузить другие прошивки в устройство и использовать фильтр драйвера.
В дополнение к этому программатор запоминает последний использованный режим, и в этом режиме программатор запускается после повторного подсоединения, он также запоминает последнюю используемую SCK скорость. Ниже находится пакет со скомпилированным кодом с поддержкой функции переключения (LUFA 130303). Для того чтобы скомпилировать программу самостоятельно с вышеуказанной функцией переключения, вам необходимо вставить строку (без примечаний) RESET_TOGGLES_LIBUSB_COMPAT в файле AppConfig.h.

Галерея:

В файлы проекта входят: печатная плата, схема, несколько файлов в формате PDF, скомпилированные HEX файлы для двух версий, полный исходный код на С для различных версий – версия 110528 , версия 111009 , версия 130303, файлы помощи.

Источник

Arduino.ru

Делаем программатор AVRISP MKII за 5 минут

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

На нашем форуме уже была инфа про то, что платы Arduino Leonardo, Micro и ProMicro легко переделываются в программатор AVRISP MKII. Но никаких подробностей никто не рассказывал, хотя очевидно, что это будет интересно всем. Мне как раз нужен был программатор для АтмелСтудии, и я на выходных разобрался сам, и результатами хочу поделиться.
Есть такая библиотека «LUFA» для МК с USB на борту, в ней куча примеров работы через USB, один из которых собссно наш программатор. Но есть одна засада, те исходники что выложены не работают с atmega32u4 на котором собраны все вышеупомянутые ардуины. Хотя официально нигде про это не написано. Но оказывается есть некая подпаченная версия исходников, которая с этим мк работает. Уже не помню, где я её нашёл, главное с ней всё завелось без проблем.
В чём плюсы этого программатора -он умеет шить все AVR, работает в разных программах, а главное в atmel студии и конечно с avrdude. Правда были какие-то версии avrdude с которыми он не работает, но с последней 6.3 точно работает. Это нужно учитывать. Последний avrdude так же используется в ArduinoIDE 1.6.12 Так что с ним так-же удобно работать, с тиньками можно просто нажимать кнопку «загрузка» без выбора пункта «загрузить через программатор»
Программатор быстрый, и у него нет заморочек с джамперами что б читать медленные МК. Учитывая что дешевая плата промикро стоит сейчас порядка 200 рублей, и кроме неё больше в принципе ничего не нужно -программатор получается ещё и очень дешевым. В общем очевидный конкурент народному программатору USBAsp. На фото -прошивка тини25 ардуиной микро в качестве программатора avrisp mk2

Читайте также:  Автозапуск дизельного генератора своими руками

Схема подключения проста:
Все выводы ISP на программаторе соединяются с одноимёнными на программируемом чипе кроме Reset,
его нужно подключить на вывод 8 (portb,4). Ещё можно измерять напряжение на программируемом чипе (в атмел студии) для этого вывод А5 (ADC0) подключить к целевому MK, при условии конечно что он питается от своего источника. Иначе будет измеряться напряжение с программатора.

Ардуино MICRO/LEONARDO ЦЕЛЕВОЙ МК
MISO MISO
MOSI MOSI
SCK SCK
pin8 (PB4) Reset
Gnd Gnd
Vcc Vcc
A5 Vcc*

На фото работа с модулем программатора в атмел студии 7.

Прошить ардуино микро можно без программатора, собственным её загрузчиком. Например воспользоваться avrdude и командной строкой :

Источник

Программатор AVRISP mkII на базе AT90USB162 (часть I)

Введение.

Возникла необходимость переделать ПТК Штрих-LIGHT-200 в АСПД Штрих-LIGHT-200. В процессе доработки, выяснилось, вместо привычной для Штриха ATMega128 с ISP интерфейсом, на борту была установлена ATXMega128A1 с PDI интерфейсом. Такого программатора в наличии не оказалось, соответственно варианта два: просить у коллег программатор прошить процессор, либо собрать программатор самостоятельно. Второй вариант показался сложнее — поэтому вполне очевидно, что мы выбрали именно его. За основу был взят AVRISP mkII на базе AT90USB162 для ATXMega128A1 предложенный коллегой Lion V на профсоюзе инженеров ККМ.

Сборка.

Скажем честно – основной проблемой стала именно плата, сперва по привычке попытались сделать навесным монтажом, идея оказалась хоть и реализуемой, но трудоемкой. Поэтому решили воспользоваться советом коллеги и сделать плату самостоятельно, по технологии ЛУТ, на всякий случай — наш опыт по изготовлению платы. Плата получилась не эталонного качества, но нас даже это устроило. В архиве платы двух вариантов DIP и SMD, мы выбрали SMD вариант

Схема клона программатора Atmel AVR MKII на базе AT90USB162

Сборка схемы не представляет сложностей, кварцевый резонатор 8МГц берется с ОКА102, резисторы 75, 300 Ом, не нашли откуда снять — пришлось покупать. Конденсаторы на 22 пФ не нашли, установили 27 пФ. В качестве PDI разъема используется USB разъем с материнской платы, он как раз по габаритам подходит. Длина проводников PDI разъема должна быть как можно меньше, у нас она 5 см.

Установка внутреннего ПО (новый микроконтроллер AT90USB162).

Данная методика верна только для установки ПО на новый микроконтроллер AT90USB162, для смены ПО процедура имеет некоторые отличия. При первом включении микроконтроллер AT90USB162 автоматически уходит в режим программирования, и не требует дополнительных операций для перевода в этот режим.
Программировать будем программой Flip (второе название программатор DFU Flip), которую устанавливаем на компьютер.
Подключаем собранный программатор к USB, система обнаружит новое устройство «AT90USB162 DFU» .

Читайте также:  Как сделать своими руками машину тише

На этом этапе Windows 7 все сделал самостоятельно, Windows 2000 запросил DFU драйверы, которые находятся в папке «Atmel Flip usb», после установки драйверов устройство определится уже без ошибок и с другим названием «AT90USB162».

Запускаем программу Flip.


Окно программы Flip

В окне программы запускаем меню выбора микроконтроллера для программирования, в нашем случае это микроконтроллер AT90USB162.


Для выбора микроконтроллера для программирования нажимаем иконку со значком микросхемы.

После выбора микроконтроллера указываем тип подключения и факт подключенного устройства, для этого щелкаем по иконке с картинкой USB кабеля, в открывшемся меню выбираем тип интерфейса – USB, после чего появляется окно предложением открыть соединение с подключенным устройством, соответственно выбираем вариант «Open». При удачном подключении в StatusBar появится надпись «USB ON»


Указываем программе тип подключения, в нашем случае USB.

Выбираем файл для загрузки, в нашем случае вариант под кварцевый резонатор 8 мГц «AVRISP-MKII (8 MHz).hex». Тут важное замечание программа Flip в принципе не видит пути Windows, а понимает только DOS пути, на практике это означает, что каталог с файлом прошивки должен находится в директории с именем не более 8 знаков и в имени директории не должно быть кириллицы.

Правильный путь для загрузки файла прошивки. Файл загрузится.


Неправильный путь для загрузки файла прошивки, в пути к файлу есть директория с кириллицей «ПО». Файл не загрузится.


Ошибка загрузки файла прошивки при неправильном пути к файлу.

После загрузки файла окно программы примет следующий вид.


Окно программы после успешной загрузки файла и удачного подключения по USB интерфейсу.

Устанавливаем «галочки» Erase, Program, Verify и нажимаем клавишу «Run», при успешном программировании все radiobutton отмеченные checkbox должны гореть зеленым. После прошивки выдергиваем и снова вставляем разъем USB программатора. С этого момента программа Flip больше не будет видеть микросхему AT90USB162, а программатор теперь будет определяться системой как LUFA AVRISP MkII Clone, при этом на программаторе горят два светодиода, в нашем случае красный и желтый.


После программирования программатор будет определяться системой как LUFA AVRISP MkII Clone.

Что бы программатор виделся системой корректно, необходимо установить AVR Studio из него подтянутся USB драйвера. Windows 7 находит драйвера автоматически, Windows 2000 драйвера надо указать вручную, которые лежат в папке с установленным AVR Studio (у нас такой вариант c:\Program Files (x86)\Atmel\Atmel USB Drivers\).

Установка внутреннего ПО (ранее прошитый микроконтроллер AT90USB162).

После того, как микроконтроллер AT90USB162 будет прошит, для входа в программирование для работы с программой Flip необходима другая процедура.

— Подключаем плату через USB

— Замыкаем перемычку RESET на землю (24 нога на землю)

— Не снимая перемычки RESET, устанавливаем перемычку MOD (S1 замыкает 13 ножку на землю)

— Не снимая перемычки MOD, снимаем перемычку RESET (24 ногу отрываем от земли)

— Снимаем перемычку MOD (S1 в положение Normal, то есть 13 ножку отрываем от земли)

После этой процедуры в системе должно появиться устройство AT90USB162

и теперь снова будет работать программирование через USB с помощью программы DFU Flip. Если устройство AT90USB162 в Диспетчере Устройств не появилось, значит надо перепрошить bootloader.

Файлы.

Заключение.

Собранный программатор подключаем к плате Штрих-LIGHT-200, пытаемся прошить, и … ничего, AVR Studio выдает кучу предупреждений, но при этом отказывается шить плату. Материал по работе с программатором и разбором ошибок получился довольно громоздким, поэтому мы решили его выделить в отдельную часть.

Источник

Оцените статью
Сделай сам