AVR-USB-MEGA16: быстрое изготовление ISP-программатора USBasp Печать
Добавил(а) microsin   

Из макетной платы AVR-USB-MEGA16 буквально за полчаса можно самостоятельно изготовить популярный программатор USBasp (см. ссылки [2]).

Конструкция очень простая - коннектор U1 ISP макетной платы, который почти никогда не используется (благодаря наличию бутлоадера в памяти чипа ATmega32), можно использовать как коннектор для подключения внешней, программируемой платы. Все необходимые сигналы (MOSI, MISO, SCK, GND) уже выведены на разъем, осталось только завести сигнал сброса. Исходники оригинального программатора USBasp портировал на макетную плату AVR-USB-MEGA16 Орлов Александр.

Итак, процесс изготовления программатора по шагам.

[hardware USBasp]

1. Берем макетную плату AVR-USB-MEGA16, и отрезаем сигнал сброса, который приходит на ножку коннектора U1 ISP. Это нужно сделать в двух местах, с двух сторон платы, см. фото.

USBasp-AVR-USB-MEGA16-IMG_1197.JPG USBasp-AVR-USB-MEGA16-IMG_1205.JPG

2. Затем нужно припаять два проводка МГТФ. Первый проводок должен подключить резистор R1 обратно к ножке 4 ~RESET микроконтроллера (т. к. мы его отрезали).

USBasp-AVR-USB-MEGA16-IMG_1226.JPG

Второй проводок должен соединять внешний порт P10 макетной платы (порт PB2 микроконтроллера ATmega32, ножка 42) с отрезанным контактом 5 коннектора U1 ISP. Этим проводом мы будем подавать сигнал сброса на программируемую плату.

USBasp-AVR-USB-MEGA16-IMG_1231.JPG

[Оболочка программатора Khazama AVR]

3. Надо скачать программу для управления программатором USBasp. Одна из программ (их написано несколько), которая может это делать под Windows, называется Khazama AVR. Эта же программа, кстати, используется для работы с бутлоадером макетной платы AVR-USB-MEGA16. Программа бесплатна, её можно скачать с сайта автора (см. ссылки [4], или скачайте архив [7]). Установка простая, никаких лишних вопросов не задает.

Примечание: в принципе программа Khazama 1.6.2 портабельна, т. е. она не требует установки, достаточно сделать копию папки уже установленной программы. Вы можете так и поступить, и скачать уже установленную программу вместе с драйвером в архиве [7]. Распакуйте из архива папку Khazama162 в любое место на диске (например, прямо в корень C: или в папку Program Files), создайте ярлычок для исполняемого файла Khazama AVR Programmer.exe, и установка на этом завершена.

[Прошивка firmware USBasp]

4. В архиве с исходниками есть скомпилированные прошивки на все частоты кварцев и возможные кристаллы (см. каталог HEX). У меня на плате AVR-USB-MEGA16 стоял микроконтроллер ATmegs32 и кварц на 12 МГц, поэтому я взял файл HEX\USBasp-MEGA32-12MHz.hex. Потом с помощью бутлоадера, прямо через USB записал этот файл в память микроконтроллера макетной платы (процедура использования бутлоадера подробно описана в [3]).

[Первое подключение программатора к компьютеру]

5. Подключаем запрограммированную макетную плату к компьютеру. Операционная система Windows увидит новое устройство USBasp, и сразу автоматически установит его - это устройство USB HID, драйвер не нужен. Однако для программы Khazama AVR для работы с устройством USB На библиотеке V-USB нужен драйвер фильтра. Для этого надо установить библиотеку Libusb, см. [5]. На момент написания статьи (март 2011) последний релиз библиотеки 1.2.2.0, качать и устанавливать надо libusb-win32-devel-filter-1.2.2.0.exe. После установки можно сразу запустить Wizard для установки фильтра (при этом запрограммированная макетная плата должна быть подключена по USB).

USBasp-AVR-USB-MEGA16-05.PNG

USBasp-AVR-USB-MEGA16-06.PNG

USBasp-AVR-USB-MEGA16-07.PNG

После установки фильтра программа Khazama AVR сможет работать с нашим программатором.

6. Нужно изготовить кабель ISP, через который программируемое устройство будет подключаться к нашему программатору. На фото пример такого кабеля для стандартной цоколевки ISP6. Примеры других стандартных цоколевок коннекторов ISP см. в [6].

USBasp-AVR-USB-MEGA16-IMG_1217.JPG

Обращаю Ваше внимание, что через такой коннектор на программируемую плату будет подаваться питание +5 вольт от программатора, и программатор в такой конфигурации рассчитан на программирование устройств, микроконтроллер которых питается от 5 вольт. Если Ваш микроконтроллер питается от отдельного источника, то провод питания кабеля ISP нужно перерезать (во избежание конфликта по питанию из-за разности напряжений).

7. Теперь можно испытать программатор в работе. Подключаем ISP кабелем программируемую плату, затем подключаем программатор (запрограммированную макетную плату AVR-USB-MEGA16) по USB к компьютеру. Запускаем программу Khazama AVR. Выбираем из выпадающего списка нужный чип (который мы будем программировать). Загружаем прошивку, которую будем прошивать, и нажимаем кнопку Auto Program. Запустится процесс программирования.

USBasp-AVR-USB-MEGA16-01.PNG

На фото показан процесс программирования чипа AT90USB162 на другой макетной плате (AVR-USB162).

USBasp-AVR-USB-MEGA16-IMG_1216.JPG

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

USBasp-AVR-USB-MEGA16-02.PNG

USBasp-AVR-USB-MEGA16-03.PNG

[Ссылки]

1. Макетная плата AVR-USB-MEGA16.
2. USBasp - USB programmer for Atmel AVR controllers site:fischl.de - домашняя страничка программатора USBasp.
3. Как использовать бутлоадер макетной платы AVR-USB-MEGA16.
4. Khazama AVR Programmer site:khazama.com - оболочка программатора Khazama AVR.
5. LibUSB site:libusb.org - библиотека libusb.
6. Цоколевки коннекторов ISP.
7. 110303usb-mega16-to-usbasp.zip - исходный код и скомпилированные прошивки firmware для USBasp, собранного на макетной плате AVR-USB-MEGA16.