Категория: Инструкции
USBasp - простой внутрисхемный USB-программатор для микроконтроллеров Atmel AVR. Программатор построен на микроконтроллере ATMega88 (или ATMega8) и содержит минимум деталей. Программатор использует свой USB-драйвер, никакие специальные USB контроллеры не нужны.
Особенности программатора:
- работа под любой платформой: Windows, Linux и Mac OS X
- какие-либо специальные компоненты или smd не нужны
- скорость программирования до 5 кБ/сек
- SCK-джампер позволяет программировать низкоскоростные контроллеры (< 1.5МГц)
- в планах: последовательный интерфейс (например для отладки)
Схема предназначена для программирования только 5В кристаллов. В других случаях, уровни должны быть преобразованы!
Т.к. в схеме программатора используется микроконтроллер, то его необходимо предварительно прошить. Для этого подключите другой рабочий программатор и установите джампер J2, для активации функции обновления прошивки.
Прошейте программатор при помощи прошивки: "bin/firmware/usbasp.atmega88.xxxx-xx-xx.hex" или "bin/firmware/usbasp.atmega8.xxxx-xx-xx.hex"
Необходимо будет установить фьюзы для подключения внешнего кварца
# TARGET=atmega8 HFUSE=0xc9 LFUSE=0xef
# TARGET=atmega48 HFUSE=0xdd LFUSE=0xff
# TARGET=atmega88 HFUSE=0xdd LFUSE=0xff
J1 - источник питания (от USB, либо внешний источник). Будьте аккуратнее, т.к. схема не содержит какой-либо защиты от КЗ.
J2 - обновление прошивки (сам себя обновлять не может!). Установленный джампер позволяет программировать контроллер программатора другим рабочим программатором.
J3 - если программируемый МК низкоскоростной <1.5 МГц, то необходимо установить данный джампер. Тогда SCK уменьшится с 375 кГц до примерно 8 кГц.
Установка драйверов под Windows
Подключите программатор USBasp к USB. Windows найдет устройство и попросит указать драйвер, укажите ему папку "bin/win-driver". Windows установит драйвер.
Теперь можно запустить avrdude, к примеру:
1. Войти в терминальный режим, МК: AT90S2313: avrdude -c usbasp -p at90s2313 -t
2. Записать main.hex в flash-память МК ATmega8: avrdude -c usbasp -p atmega8 -U flash:w:main.hex
Сборка их исходников (под Linux)
Компиляция прошивки:
1. Установите GNU toolchain для микроконтроллеров AVR (пакеты avr-gcc, avr-libc)
2. Войдите в директорию firmware/
3. Выполните команду "make main.hex"
4. Прошейте "main.hex" ATMega(4)8. Например при помощи uisp или avrdude (используйте
Makefile с опцией "make flash"). Для прошивки установите джампер J2 и подключите USBasp к рабочему программатору.
Также нужно установить фьюзы для работы от внешнего кварца (используйте Makefile
с опцией "make fuses").
Компиляция avrdude:
ПО AVRDUDE поддерживается программатором USBasp начиная с версии 5.2.
1. Установите пакет libusb: http://libusb.sourceforge.net/
2. Скачайте последнюю версию avrdude: http://download.savannah.gnu.org/releases/avrdude/
3. cd avrdude-X.X.X
4. Сконфигурируйте:
./bootstrap
./configure
5. Компиляция:
make
make install
Фото программатора USBasp
Программы для работы с программатором
AVRDUDE - поддерживается USBasp начиная с версии 5.2
BASCOM-AVR - поддерживается USBasp начиная с версии 1.11.9.6
Khazama AVR Programmer - Windows XP/Vista GUI приложение для USBasp и avrdude
eXtreme Burner - AVR - программа Windows GUI для USBasp
Небольшая программа, созданная с целью быстрой прошивки микроконтроллеров Atmel AVR.
Приложение Khazama AVR Programmer имеет простой и удобный минималистичный оконный интерфейс. Данный программатор является графической оболочкой программы avrdude и отлично подходит для начинающих разработчиков. В настоящее время Khazama AVR Programmer поддерживает около восьмидесяти моделей микроконтроллеров AVR, относящихся к семействам ATmega, ATxmega, ATtiny и AT90. Программатор имеет минимальное количество функций, однако выгодно отличается скоростью работы и стабильностью. Программное обеспечение позволяет: загружать в буфер сохраненные hex-файлы прошивки для EEPROM и FLASH памяти, записывать hex-файлы в EEPROM и FLASH память микроконтроллера, смотреть содержимое EEPROM и FLASH памяти чипа, очищать память контроллера, менять конфигурацию FUSE и LOCK битов, проводить верификацию EEPROM и FLASH памяти. Все операции можно осуществлять либо с помощью меню, либо с помощью кнопок на панели инструментов, внешний вид которых срисован с аналогичных кнопок в ПО PonyProg .
Среди прочих функций программы Khazama AVR Programmer стоит отметить: наличие контекстных подсказок и клавиш быстрого доступа, возможность установки данного приложения поверх всех остальных окон, наличие просмотрщика EEPROM и FLASH hex-файлов (без редактирования), визуализация и расшифровка значений битов конфигурации микроконтроллеров. Настраиваемая кнопка «AutoProgram» запускает на исполнение набор операций, заданных в окне «Program Options» (по умолчанию установлена очистка чипа и запись во FLASH память). Программа Khazama AVR Programmer работает с программатором USBasp. поддерживается программирование по TPI. Тактовая частота программирования по интерфейсу ISP задается в пределах от 500 Гц до 1,5 МГц.
Процедура программирования FUSE битов не требует разбирательств с шестнадцатиричными значениями и заключается в выборе необходимых параметров из выпадающих списков, что снижает вероятность залочить микроконтроллеры по ошибке. Также FUSE биты можно изменять, устанавливая галочки в нижнем поле. При этом поставить галки на несуществующие конфигурации нельзя, что также является плюсом в плане безопасности. В окне программирования FUSE битов присутствуют функции: записи фьюзов в память контроллера, сохранения текущей конфигурации в буфер, вызова сохраненной конфигурации из буфера, восстановления стандартной конфигурации FUSE битов, то есть той, с которой микроконтроллер поступил с завода. Приложение Khazama AVR Programmer работает с файлами дампов памяти *.hex.
Приложение было написано арабским программистом по имени Behzad Khazama (Иран, провинция Хорасан-Резави, город Себзевар). Последняя версия данного программатора вышла в середине 2011 года.
Программа представлена лишь на английском языке и не имеет русификатора.
Софт Khazama AVR Programmer поддерживается операционными системами семейства Microsoft Windows – XP, Vista, 7, 8 (32- и 64-разрядными).
Распространение программы: бесплатная
Здесь я расскажу как запрограммировать микроконтроллер на примере ATmega32 с помощью "Khazama AVR Programmer", "eXtreme Burner- AVR" и "usbasp".
usbasp - это программатор который можно собрать самому, либо купить (на ebay 3$). Драйвера и дополнительная информация на сайте создателя
Khazama AVR Programmer и "eXtreme Burner- AVR" это программы которые заливают прошивку в микроконтроллер, нужно использовать только 1 из них на выбор, ниже я расскажу как с ними работать.
Сперва нужно поставить необходимый драйвер для USBASP, который можно найти по ссылке выше. Далее нужно написать код который будет управлять нашим микроконтроллером, для этого я использую ATMEL STUDIO.
После того как мы скомпилируем наш код, создастся прошивка для МК (.hex файл) которую нужно залить в МК, её работоспособоность можно проверить в самой AVR студии или любой среде моделирования для этого предназначенной. к примеру Proteus.
Далее нужно подключить программатор к МК, для этого необходимы только 6 проводов USBASP (если их 10 то 3, 4, 6 и 8 выводы не используются ).
Ниже представлена схема программатора если вы решите собрать его самостоятельно:
Если купить готовый программатор, то чаще всего он уже с готовым разъёмом, который осталось подключить к микроконтроллеру. Лучше прозвонить кабель который выходит из программатора и найти землю, остальное можно найти с помощью распиновки.
Когда известно какой вывод за что отвечает осталось подключить их к ножкам микроконтроллера, для этого нужно свериться с даташитом и проверить распинову, нам нужны контакты MOSI, SCK, MISO, RESET, GND и VTG (это VCC +5 В питание). К примеру необходимые ножки ATmega8:
Когда всё готово нужно запустить Khazama AVR Programmer и проверить видит ли он МК.
Главное окно:
Сперва нужно выбрать в выпадающем меню в центре наш микроконтроллер. Затем нужно нажать command -> read chip signature:
Если не выдаст никаких ошибок то всё в порядке.
Теперь нужно показать ему наш .hex файл, для этого нужно нажать File -> load flash file to buffer. Выбрать нужный файл и нажать ОК:
Теперь нужно разобраться с fuse битами (про них можно почитать Здесь ).
Чтобы зайти в меню fuses нужно нажать Command -> fuse and lock bits (CTRL + A):
В появившемся окне нажать LOAD после чего мы увидим биты уже выставленные в микроконтроллере:
Галочка значит что бит НЕ выставлен, как по нотации ATMEL, пустой квадратик значит что бит ВЫСТАВЛЕН. "Write all" записать в МК выставленные биты.
Мне не нужно ничего менять, так что я нажимаю cancel и жму "auto programm" для того чтобы запрограммировать МК.
Всё, микроконтроллер получает напряжение от программатора и сразу начинает работать.
Если появляется ошибка "error setting usbasp isp clock" нужно либо перепрошить программатор, либо сменить программу для программатора, но даже с этой ошибкой МК можно прошивать как и раньше, только нельзя прочитать и выставить Fuse биты.
Я использую "eXtreme Burner- AVR", т.к с ним у меня никогда не было проблем и здесь удобнее менять информацию в EEPROM. Вот его основное рабочее окно:
USBasp - это внутрисхемный USB программатор для микроконтроллеров Atmel AVR. Данный программатор состоит из одного микроконтроллера AT m ega8 и небольшого количества пассивных элементов, поэтому он довольно компактный (70х20мм) и имеет элегантный дизайн.
Для работы с программатором необходимо установить только USB драйвер и нет необходимости прошивать сам микроконтроллер с использованием дополнительного оборудования.
СхемаUSBaspпрограмматора
Установка драйвера дляUSBaspпрограмматора:
ПодключитеUSBaspпрограмматор к компьютеру и операционная система оповестит Вас о нахождении нового оборудовании и предложит установить драйвера.
Указываем папку в которой лежат драйвера для USBasp программатора.
Нажмите кнопку «Далее» и начнется процесс установки.
После установки драйвера мастер оборудования завершит работу.
Установка драйвера дляUSBaspпрограмматора на Windows Vista x64 и Windows 7:
1. Скачайте драйвер - USBasp-win-driver-x86-x64-ia64-v1.2.4.zip [270,94 Kb] (cкачиваний: 4524) и распакуйте архив;
2. Вставьте USBASP в порт USB;
Система будет пытаться установить драйвер из Центра обновления Windows
Теперь, перейдите в диспетчер устройств и найдите запись для программатора USBASP. Он должен отображаться с желтым значком предупреждения;
Щелкните правой кнопкой мыши на устройстве и выберите пункт "Обновить драйвер"
В ответ на запрос "Как вы хотите найти драйвер", выберите "Выполнить поиск драйверов на этом компьютере"
Выберите папку, в которую вы распаковали файлы драйвера нажмите кнопку "Далее"
После чего, в окне появится красная полоса, которая предупреждает Вас сообщением "Windows не может проверить издателя этого программного драйвера";
Нажмите кнопку "Установить программное обеспечение этого драйвера" и драйвер будет установлен.
Программы для работы с программатором:
Программисту представляется возможность работать с широким разнообразием микроконтроллеров Atmel AVR в том числе и ATMEGA8A, Atmega168a и различным программным обеспечением:
AVRDUDE - поддерживается USBasp начиная с версии 5.2;
BASCOM-AVR - поддерживается USBasp начиная с версии 1.11.9.6;
Khazama AVR Programmer - Windows XP/Vista GUI приложение для USBasp и avrdude;
eXtreme Burner - AVR - программа Windows GUI для USBasp.
В комплекте с программатором идет 10-контактный кабель, как показано на основной фотографии.
Распиновка 10-контактного кабеля
1 - MOSI (Выход данных для последовательного программирования)
2 - VTG +5V (Выход +5В, для питания программируемой платы от шины USB током до *200мА. )
3 - NC (Не используется)
4 - GROUND (Общий или минус питания)
5 - RESET (Подключается к выводу RESET микроконтроллера)
6 - GROUND (Общий или минус питания)
7 - SCK (Выход тактирования данных)
8 - GROUND (Общий или минус питания)
9 - MISO (Вход данных для последовательного программирования)
10 - GROUND (Общий или минус питания)
При разомкнутом джампере — частота SCK будет высокой = 375 кГц, при замкнутом — пониженной = 8 кГц. Это сделано для программирования микроконтроллеров с низкой частотой тактирования (меньше 1.5 МГц).
Зеленый (желтый) светодиод "P” (POWER)— сигнализирует о том, что программатор находится в рабочем состоянии. Красный светодиод "F” (FIRMWARE) зажигается только когда идет процесс обмена данными с компьютером (запись либо считывание данных).
USBasp S51&AVR программатор предназначен для прошивки AVR контроллеров фирмы Atmel.
Программатор USBasp S51&AVR
У любителей arduino программатор USBasp тоже нашел применение, потому что может работать с ArduinoIDE и без проблем заливать скетчи или прошивать бутлоадер в микроконтроллеры семейства Atmega или ATtiny.
USBasp S51&AVR вид верхняя часть
USBasp S51&AVR вид нижняя часть
Где купить программатор USBasp S51&AVRЗаказать программатор USBasp S51&AVR
AT89S51, AT89S52, AT89S53, AT89S8252
AVR серии:ATTiny12, ATTiny13, ATTiny15, ATTiny24, ATTiny25, ATTiny26, ATTiny2313, ATTiny44, ATTiny45, ATTiny84, ATTiny85, AT90S2313, AT90S2323, AT90S2343, AT90S1200, AT90S8515, AT90S8535, ATMEGA48, ATMEGA8, ATMEGA88, ATMEGA8515, ATMEGA8535, ATMEGA16, ATMEGA162, ATMEGA163, ATMEGA164, ATMEGA165, ATMEGA168, ATMEGA169, ATMEGA169P, ATMEGA32, ATMEGA324, ATMEGA325, ATMEGA3250, ATMEGA329, ATMEGA3290, ATMEGA64, ATMEGA640, ATMEGA644, ATMEGA645, ATMEGA6450, ATMEGA649, ATMEGA6490, ATMEGA128, ATMEGA1280, ATMEGA1281, ATMEGA2560, ATMEGA2561, AT90CAN32, AT90CAN64, AT90CAN128, AT90PWM2, AT90PWM3 и т.д.
Программное обеспечение к программатору USBasp S51&AVR Драйвер к программатору USBasp S51&AVR Установка драйвера USBasp S51&AVR в Windows 7При подключении программатора USBasp S51&AVR к вашему пк, в диспетчере устройств Windows 7 мы увидим следующую картину
ваше устройство определится но операционная система не сможет найти и установить драйвера к нему.
Архив драйвера USBasp
потом кликаем правой кнопкой мышки по вашему устройству и выбираем обновить драйверы
Появится окно и мы выбираем Выполнить поиск драйверов на этом копьютере
после чего указываем путь к нашей папке с драйверами и жмем далее
далее появится окно безопасности Windows с предупреждением, но мы его игнорируем и выбираем Все равно установить этот драйвер
через несколько секунд драйвер успешно установится на пк
и в диспетчере устройств наш программатор отобразится правильно
Всем спасибо за внимание.