Из макетной платы AVR-USB-MEGA16 буквально за полчаса можно самостоятельно изготовить популярный программатор USBasp (см. ссылки [2]).
Конструкция очень простая - коннектор U1 ISP макетной платы, который почти никогда не используется (благодаря наличию бутлоадера в памяти чипа ATmega32), можно использовать как коннектор для подключения внешней, программируемой платы. Все необходимые сигналы (MOSI, MISO, SCK, GND) уже выведены на разъем, осталось только завести сигнал сброса. Исходники оригинального программатора USBasp портировал на макетную плату AVR-USB-MEGA16 Орлов Александр.
Итак, процесс изготовления программатора по шагам.
[hardware USBasp]
1. Берем макетку AVR-USB-MEGA16, и отрезаем сигнал сброса, который приходит на ножку коннектора U1 ISP. Это нужно сделать в двух местах, с двух сторон платы, см. фото.
2. Затем нужно припаять два проводка МГТФ. Первый проводок должен подключить резистор R1 обратно к ножке 4 ~RESET микроконтроллера (т. к. мы его отрезали).
Второй проводок должен соединять внешний порт P10 макетки (порт PB2 микроконтроллера ATmega32, ножка 42) с отрезанным контактом 5 коннектора U1 ISP. Этим проводом мы будем подавать сигнал сброса на программируемую плату.
[Оболочка программатора Khazama AVR]
3. Надо скачать программу для управления программатором USBasp. Одна из программ (их написано несколько), которая может это делать под Windows, называется Khazama AVR. Эта же программа, кстати, используется для работы с бутлоадером макетки AVR-USB-MEGA16. Программа бесплатна, её можно скачать с сайта автора (см. ссылки [4]). Установка простая, никаких лишних вопросов не задает.
[Прошивка 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).
После установки фильтра программа Khazama AVR сможет работать с нашим программатором.
6. Нужно изготовить кабель ISP, через который программируемое устройство будет подключаться к нашему программатору. На фото пример такого кабеля для стандартной цоколевки ISP6. Примеры других стандартных цоколевок коннекторов ISP см. в [6].
Обращаю Ваше внимание, что через такой коннектор на программируемую плату будет подаваться питание +5 вольт от программатора, и программатор в такой конфигурации рассчитан на программирование устройств, микроконтроллер которых питается от 5 вольт. Если Ваш микроконтроллер питается от отдельного источника, то провод питания кабеля ISP нужно перерезать (во избежание конфликта по питанию из-за разности напряжений).
7. Теперь можно испытать программатор в работе. Подключаем ISP кабелем программируемую плату, затем подключаем программатор (запрограммированную макетку AVR-USB-MEGA16) по USB к компьютеру. Запускаем программу Khazama AVR. Выбираем из выпадающего списка нужный чип (который мы будем программировать). Загружаем прошивку, которую будем прошивать, и нажимаем кнопку Auto Program. Запустится процесс программирования.
На фото показан процесс программирования чипа AT90USB162 на другой макетной плате (AVR-USB162).
Можно прошивать и фьюзы (внимание, с фьюзами будьте осторожнее), однако для некоторых чипов программирование фьюзов не поддерживается.
[Ссылки]
1. Макетная плата AVR-USB-MEGA16.
2. Программатор USBasp.
3. Как использовать бутлоадер макетной платы AVR-USB-MEGA16.
4. Оболочка программатора Khazama AVR.
5. Библиотека libusb.
6. Цоколевки коннекторов ISP.
7. Исходники и скомпилированные прошивки firmware для USBasp, собранного на макетной плате AVR-USB-MEGA16.
|