Extreme burner windows 10

4a4ik

26 июля 2013 г.

Как запрограммировать AVR микроконтроллер с помощью usbasp

Здесь я расскажу как запрограммировать микроконтроллер на примере 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 биты.

Электроника для всех

Блог о электронике

Оболочки для USBASP

Вот уже почти два года активно использую USBasp в качестве основного программатора. Все мне в нем нравится, кроме прошивающей программы — avrdude консольная, а мне под каждую прошивку писать свой батник лениво.
Да и начинающим порой разобраться в прорве его ключей бывает сложно. Так что будем натягивать на него ГУЙ ака Графически Удобный Йнтерфейс. Их существует с пол десятка я же отобрал наиболее удачные, на мой взгляд, оболочки.

Читайте также:  Linux find файлы с расширением

Мной долгое вовсю юзался GUI от yourdevice.net .

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

Также есть оболочка написанная на Java: Burn-o-Mat — красивая, удобная. Но жууутко тормозная.

У меня на компе (весьма древнем) она вообще еле шевелится. Зато кроссплатформенная.

Еще нашлась дивная программка Khazama AVR Programmer созданная неким арабом.

Вполне неплохо работает, выставление fuse битов похоже на AVRProg идущий в составе студии.

Но чего мне не хватало так это окна с кексами. Как в UniProf или в PonyProg. Люблю я пофтыкать в колонки хексов. Медитативное занятие. Сидишь и в уме дизассемблируешь потихоньку 🙂 По знакомым адресам узнаешь где у тебя что записано. Как память распределяется… В общем, это низкоуровневый Дзен. Да и просто полезно визуально поглядеть сколько у тебя осталось еще свободных ячеек. Или изменил одну команду, а перекомпилиовать лень — поправил прям в хексе. Ну, а глянуть в дамп епрома так это вообще святое — я обычно туда какие нибудь логи люблю выгружать, а потом программатором зырю. AVRDUDE выдает intel hex который не очень удобен для просмотра — мусор слева и справа от дампа отвлекает, а хекс редактор открывать лень… Короче, одним словом — хочу :))))

И вот недавно один индус отжег и родил мега прогу eXtreme Burner — AVR . Причем это не оболочка на AVRDUDE это полноценная программа, заточенная на работу с USBAsp.

Проект еще совсем нов, поддерживаются далеко не все контроллеры, FUSE биты задаются числами. Не очень удобно, зато точно не перепутаешь единцу с нулем. Мне нравится, буду юзать!

Extreme burner windows 10

Когда я начинал использовать USBasp (очень популярный программатор для микроконтроллеров AVR), то применял его с утилитой командной строки AVRDUDE [5] (консольная программа для управления многими программаторами AVR). Эта программа имеет порты на большинстве операционных систем. Интерфейс командной строки, где нужно вводить множество трудно запоминаемых опций, имеет свои достоинства и недостатки — он удобен для написания командных файлов в целях автоматизации, когда нужно эффективно повторять одни и те же действия. Но если нужно быстро переходить с одного типа микроконтроллера на другой, или изменять какие-нибудь входные данные (файл прошивки, фьюзы и т. п.), то приходится снова влезать в головоломку составления ключей и опций командной строки.

[Avrdude-GUI]

Позже появилась программа Avrdude-GUI [6] (графическая оболочка над AVRDUDE), которая несколько облегчала задачу общения с программатором USBasp, однако всех проблем не решала и создавала новые проблемы. Эта утилита не могла просто записывать и сразу проверять байты фьюзов, и не могла читать содержимое памяти чипа. При переходе на новую версию AVRDUDE нужно было искать совместимую с ней версию Avrdude-GUI.

[AVRDUDE_PROG]

Еще одна оболочка для консольной утилиты AVRDUDE, написана на Delphi [7].

[eXtreme Burner]

При очередном поиске альтернативы утилиты для управления USBasp оказалось, что для этого есть замечательная утилита с полноценным GUI-интерфейсом: eXtreme Burner [2, 3, 4]. С этой программой работа с USBasp значительно упростилась.

Упростилась настройка источников тактирования. Семейство микроконтроллеров AVR поддерживает несколько способов генерации тактовых сигналов, которые удовлетворяют разным вариантам приложений. Например, можно использовать дешевый RC Oscillator (встроенный в микроконтроллер генератор, для которого не нужен кварц), или внешний кварцевый резонатор, позволяющий получать точную частоту тактирования и повышенную скорость работы. Теперь соответствующие опции можно выбирать из удобного выпадающего меню.

Читайте также:  Checking windows boot time

Не остались обиженными и пользователи операционной системы Linux, для них также доступна утилита eXtreme Burner.

[Указания по установке]

• Вам понадобится GUI Desktop Environment наподобие GNOME или KDE (все современные дистрибутивы Linux поставляются с поддержкой как минимум одного из них, так что по этому пункту беспокоиться особенно не о чем).

• Нужно установить библиотеку wxGTK (для этого используйте утилиту Package Manager).
• Нужно установить библиотеку libusb (для этого используйте утилиту Package Manager).
• Для получения доступа к порту USB будьте готовы к тому, что потребуется запустить программу с привилегиями root (хотя возможно, что к настоящему времени автор уже эту проблему исправил).
• Загрузите архив с программой [3, 4] и распакуйте его содержимое в какой-нибудь каталог.
• Запустите терминал, залогиньтесь как root (командой su root).
• Перейдите в каталог с распакованной программой eXtreme Burner.
• Введите команду ./avrprog для запуска eXtreme Burner — AVR.

Теперь Вы можете использовать графический интерфейс для работы с чипами AVR. Он точно такой же, как и у пользователей eXtreme Burner на операционной системе MS Windows.

[Khazama AVR Programmer]

Эта утилита тоже очень удобна для работы с программатором USBasp. Khazama 1.6.2 часто использую для работы с загрузчиком USBasp-loader для программирования плат AVR-USB-MEGA16 и metaboard.

USBASP: USB AVR программатор для микроконтроллеров ATmega, ATtiny

Программатор USBASP — устройство, распиновка, подключение, прошивка

Сегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.

Программатор USBASP

Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
— программатор
— соответствующее программное обеспечение для записи данных в МК
Одним из наиболее простых, популярных и миниатюрных программаторов для AVR является USBASP программатор, созданный немцем Томасом Фишлем.
Имеется много разных схемотехнических решений этого программатора, программатор можно собрать самому или купить (стоимость — 2-3 доллара). При самостоятельной сборке следует учитывать, что собранный программатор необходимо будет прошить сторонним программатором.

Мы рассмотрим наиболее «навороченную» версию программатора:


Характеристики программатора:
— работает с различными операционными системами — Linux, Mac OC, Windows (для операционной системы Windows, для работы программатора, необходимо установить драйвера — архив в конце статьи)
— скорость программирования до (скорость программирования можно устанавливать самому, к примеру в AVRDUDE_PROG) 375 (5) кб/сек
— имеет 10-контактный интерфейс ISP (соответствует стандарту ICSP с 10-контактной распиновкой)
— поддерживает два напряжения питания программатора — 5В и 3,3В (не все USB порты ПК работают при 5 Вольтах)
— питается от порта USB компьютера, имеет встроенную защиту по току (самовосстанавливающийся предохранитель на 500 мА)

Назначение джамперов:
разъем JP1 — предназначен для перепрошивки микроконтроллера программатора (для перепрошивки — необходимо замкнуть контакты)
разъем JP2 — напряжение питания программатора — 5 Вольт или 3,3 Вольта (по умолчанию — 5 Вольт, как на фотографии). Программируемый микроконтроллер, или конструкцию, в которой он установлен, при токе потребления 300-400 мА можно запитать с программатора, для этого на разъеме есть выход +5В (VCC).
разъем JP3 — определяет частоту тактирования данных SCK: разомкнутый — высокая частота (375 кГц), замкнутый — низкая частота (8 кГц)
Подробнее о разъеме JP3
Джампер JP3 предназначен для уменьшения скорости записи данных в микроконтроллер. Если у микроконтроллера установлена частота тактирования более 1,5 мГц — джампер может быть разомкнут, при этом скорость программирования высокая. Если тактовая частота менее 1,5 мГц — необходимо закоротить выводы джампера — снизить скорость программирования, иначе запрограммировать микроконтроллер не получится. К примеру, если мы будем программировать микроконтроллер ATmega8 (в принципе, практически все МК AVR настроены на тактовую частоту 1 мГц по умолчанию), у которого частота тактирования по умолчанию 1 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.

Читайте также:  Avast для windows x64

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

Программатор поддерживается следующим программным обеспечением:
— AVRdude
— AVRdude_Prog
— Bascom-AVR
— Khazama AVR Prog
— eXtreme Burner AVR

Работать с таким программатором очень просто — соединить соответствующие выводы программатора с микроконтроллером, подключить к USB-порту компьютера — программатор готов к работе.
Распиновка 10-контактного кабеля программатора USBASP :


1 — MOSI — выход данных для последовательного программирования
2 — VCC — выход +5 (+3,3) Вольт для питания программируемого микроконтроллера или программируемой платы от порта USB компьютера (максимальный ток 200 мА — чтобы не сжечь порт USB)
3 — NC — не используется
4 — GND — общий провод (минус питания)
5 — RST — подключается к выводу RESET микроконтроллера
6 — GND
7 — SCK — выход тактирования данных
8 — GND
9 — MISO — вход данных для последовательного программирования
10 — GND

Установка драйверов для программатора USBASP

Установка драйвера для программатора USBASB очень проста:
— подсоедините программатор к USB порту компьютера, при этом в диспетчере устройств появится новое устройство «USBasp» с желтым треугольником и восклицательным знаком внутри, что означает — не установлены драйвера
— скачайте и разархивируйте файл «USBasp-win-driver-x86-x64-ia64-v3.0.7»
— запустите файл «InstallDriver» — будут автоматически установлены драйвера для программатора
— проверьте диспетчер устройств — желтый треугольник должен исчезнуть (если нет, щелкните правой кнопкой по устройству «USBasp» и выберите пункт «Обновить»
— программатор готов к работе

FUSE-биты при программировании USBASP AVR:

Архив «usbasp.2011-05-28» содержит папки:
= BIN:
— win-driver — драйвера для программатора
— firmware — прошивка для микроконтроллеров Mega8, Mega88, Mega48
= circuit — схема простого программатора в PDF и Cadsoft Eagle

При перепрошивке китайского программатора рекомендую установить FUSE-бит CKOPT. CKOPT взаимосвязан с предельной тактовой частотой. По умолчанию CKOPT сброшен и стабильная работа микроконтроллера программатора при применение кварцевого резонатора возможна только до частоты 8 МГц ( а МК программатора работает на частоте 12 МГц). Установка FUSE-бита CKOPT увеличивает максимальную частоту до 16 МГц. Китайцы не трогают этот FUSE-бит, что довольно часто приводит к отказу программатора (обычно система не определяет программатор).

Архив «USBasp-win-driver-x86-x64-ia64-v3.0.7» предназначен для установки драйверов, как указано в статье

usbasp.2011-05-28 (518,9 KiB, 19 445 hits)

Скачать «USBasp-win-driver-x86-x64-ia64-v3.0.7» (10,9 MiB, 35 397 hits)

Описанный в статье USBASP программатор, прошитый последней версией программы, проверенный в работе, с установленными джамперами и перемычками, вы можете приобрести в интернет-магазине «МирМК-SHOP»
Перейти на страницу магазина

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

Программирование микроконтроллеров AVR фирмы Atmel

(32 голосов, оценка: 4,97 из 5)

Оцените статью