Оболочки для USBASP | Электроника для всех
Вот уже почти два года активно использую USBasp в качестве основного программатора. Все мне в нем нравится, кроме прошивающей программы — avrdude консольная, а мне под каждую прошивку писать свой батник лениво.
Да и начинающим порой разобраться в прорве его ключей бывает сложно. Так что будем натягивать на него ГУЙ ака Графически Удобный Йнтерфейс. Их существует с пол десятка я же отобрал наиболее удачные, на мой взгляд, оболочки.
Мной долгое вовсю юзался GUI от yourdevice.net.
Оболочка удобная. Люблю ее за то, что нельзя по невнимательности угробить фьюзами контроллер, т.к. оболочка сразу же загружает дефолтные значения битов. А потом их уже по мере необходимости заменяешь на те что надо. Все остальное же делается в два клика.
Также есть оболочка написанная на Java: Burn-o-Mat — красивая, удобная. Но жууутко тормозная.
У меня на компе (весьма древнем) она вообще еле шевелится. Зато кроссплатформенная.
Еще нашлась дивная программка Khazama AVR Programmer созданная неким арабом.
Вполне неплохо работает, выставление fuse битов похоже на AVRProg идущий в составе студии.
Но чего мне не хватало так это окна с кексами. Как в UniProf или в PonyProg. Люблю я пофтыкать в колонки хексов. Медитативное занятие. Сидишь и в уме дизассемблируешь потихоньку 🙂 По знакомым адресам узнаешь где у тебя что записано. Как память распределяется… В общем, это низкоуровневый Дзен. Да и просто полезно визуально поглядеть сколько у тебя осталось еще свободных ячеек. Или изменил одну команду, а перекомпилиовать лень — поправил прям в хексе. Ну, а глянуть в дамп епрома так это вообще святое — я обычно туда какие нибудь логи люблю выгружать, а потом программатором зырю. AVRDUDE выдает intel hex который не очень удобен для просмотра — мусор слева и справа от дампа отвлекает, а хекс редактор открывать лень… Короче, одним словом — хочу :))))
И вот недавно один индус отжег и родил мега прогу eXtreme Burner — AVR. Причем это не оболочка на AVRDUDE это полноценная программа, заточенная на работу с USBAsp.
Проект еще совсем нов, поддерживаются далеко не все контроллеры, FUSE биты задаются числами. Не очень удобно, зато точно не перепутаешь единцу с нулем. Мне нравится, буду юзать!
Обзор программатора USBAsp v.2.0 – RobotChip
Сегодня расскажу, о недорогим и очень простом программаторе USBAsp v.2.0 для микроконтроллеров AVR (основанный на дизайне Томаса Фишла), с его помощью можно прошивать контроллеры AVR по интерфейсу ISP (не выпаивая его с платы), а самое главное, можно прошить загрузочный сектор на контроллерах Arduino.
► Напряжение питания: 5 В, DC
► Интерфейс: USB 2.0
► Программирование/ чтение: Atmel (AVR)
► Габариты: 70 мм x 18 мм x 10 мм
► Поддержка операционных систем: Windows XP / 7 / 8 / 8.1 / 10.
Программатор USBAsp распространяется и открытым исходным кодом, так что при желании можно изготовить самому, скачав печатную плату и прошивку с сайта Thomas, из-за этого в различных интернет магазинах существует различные варианты программатора с одинаковым функционалом. В моем случае буду рассказывать о USBAsp V2.0 китайского производителя LC Technelogy.
Программатор собран на синий печатной плате, слева расположен USB-разъем необходимый для подключения к компьютеру. В центре располагается контроллер ATmega8A, рядом установлен кварцевый резонатор на 12 МГц и электрическая обвязка (резисторы, конденсаторы). Справа расположен 10-контактный разъем (два ряда, по пять выводов, шагом 2.54 мм), обеспечивающий обмен данными с прошиваемым микроконтроллером (интерфейс ISP). В комплекте поставляется кабель, с каждой стороны которого, установлен разъем IDC (10 выводов), для простоты прошивки некоторых плат (например Arduino), советую приобрести адаптер-переходник с 10-pin на 6-pin. Назначение выводов программатора USBAsp можно посмотреть на рисунке ниже, вид на стороне программатора.
Назначение выводов:
► 1 – MOSI
► 2 – VCC
► 3, 8, 10 – GND
► 4 – TXD
► 5 – RESET
► 6 – RXD
► 7 – SCK
► 9 – MISO
Световая индикация
► Красный светодиод G — Включен
► Красный светодиод R — Обмен данными
Перемычки
► JP1 — POWER, управляет напряжением на разъеме ISP VCC (вывод 2), можно установить на + 3.3В, + 5В или вовсе убрать перемычку, если программируемое устройство, имеет собственный источник питания.
► JP2 —
► JP3 — SLOW, программирования на низких скоростях, если программируемое устройство, работает на частоте ниже 1.5 МГц, SCK (вывод 7) уменьшит частоту с 375 кГц до 8 кГц.
Принципиальная схема программатора USBAsp V2.0 можно посмотреть на рисунке ниже.
Список поддерживаемых AVR микроконтроллеров:
► Mega Series: ATmega8, ATmega8A, ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega328, ATmega328P, ATmega103, ATmega128, ATmega128P, ATmega1280, ATmega1281, ATmega16, ATmega16A, ATmega161, ATmega162, ATmega163, ATmega164, ATmega164A, ATmega164P, ATmega164PA, ATmega169, ATmega169A, ATmega169P, ATmega169PA, ATmega2560, ATmega2561, ATmega32, ATmega32A, ATmega324, ATmega324A, ATmega324P, ATmega324PA, ATmega329, ATmega329A, ATmega329P, ATmega329PA, ATmega3290, ATmega3290A, ATmega3290P, ATmega64, ATmega64A, ATmega640, ATmega644, ATmega644A, ATmega644P, ATmega644PA, ATmega649, ATmega649A, ATmega649P, ATmega6490, ATmega6490A, ATmega6490P, ATmega8515, ATmega8535,
► Classic Series: AT90S1200, AT90S2313, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535
► Can Series: AT90CAN128
► PWN Series: AT90PWM2, AT90PWM3Установка драйвера USBAsp на Windows 8/10
Подключаем программатор к USB порту на компьютере, если все нормально, на плате загорится красный светодиод. Далее операционная система начнет поиск драйвера
Так как, в операционной системе нету необходимого драйвера, в «Диспетчере устройств» появится устройство «USBAsp» с восклицательным знаком.
Скачиваем архив с цифровой подписью, разархивируем и запускаем «
Драйвер установлен, в «Диспетчере устройств» пропадет восклицательный знак с «USBAsp».
Установка драйвера на Windows XP и Windows 7 аналогичная, программатор готов к работе.
Программа для USBAsp V2.0Программу разработал «Боднар Сергей», работает не только с китайским программатором USBAsp v.2.0, но и другими программаторами. Первым делом скачиваем программу, разархивируем и запускаем «AVRDUDEPROG.exe».
В качестве примера, прошью китайскую плату Arduino UNO R3 в которой установлен микросхема ATmega328P. В программе, жмем на вкладку «Микроконтроллеры» и выбираем ATmega328P.
Далее, необходимо выбрать прошивку, в строке «Flash» нажимаем «. . .», переходим в папку «C:\Program Files\Arduino\hardware\arduino\avr\bootloaders\atmega» и выбираем «ATmegaBOOT_168_atmega328.hex
», жмем «Открыть»Подключаем программатор к плате «Arduino UNO R3», и нажимаем кнопку «Программирование».
В конце, выйдет диалоговое окно, о удачном окончании программировании.
Ссылки
Скачать драйвер для программатора USBASP v2.0 (LC Technology, ATMEL)
Скачать программу AVRDUDE_PROG v.3.3
Купить на Aliexpress
Программатор USBASP v2.0 (LC Technology, ATMEL)
Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
Купить в Самаре и области
Программатор USBASP v2.0 (LC Technology, ATMEL)
Адаптер для ATMEL AVRISP, USBASP, STK500 (10 pin на 6 pin)
AVRDUDESHELL. Программа для прошивки микроконтроллеров Atmega
AVRDUDESHELL – программа для Windows и Linux (под wine, начиная с версии 01.09.2015) систем для программирования (прошивки) микроконтроллеров семейства AVR, таких как ATmega8, ATmega16, ATmega32, ATmega64 (полный список поддерживаемых микроконтроллеров см. в конце статьи). Программа поддерживает такие популярные программаторы как USBASP, AVR910, STK500 (полный список поддерживаемых программаторов см. в конце статьи). Фактически AVRDUDESHELL это графическая надстройка над консольной программой AVRDude, поэтому все те микроконтроллеры и программаторы, которые поддерживает AVRDude, поддерживает и AVRDUDESHELL.Главное достоинство программы — универсальность, простота и наглядность.
AVRDUDESHELL. Главное окно программы.
Множество настроек сгруппированы по категориям:
AVRDUDESHELL. Настройки программы.
В программу встроен механизм получения информации по установленным фьюзам, получающий информацию с http://www.engbedded.com/.
AVRDUDESHELL. Информация по установленным фьюзам.
Оповещение об опасных манипуляциях с фьюзами предупредит о блокировке SPI программирования
AVRDUDESHELL. Оповещение об опасных манипуляциях с фьюзами.
Перед чтением или записью микроконтроллера можно задать область памяти, с которой будет выполняться операция.
AVRDUDESHELL. Область памяти с которой будет выполняться работа.
Если необходимо — можно сохранить
AVRDUDESHELL. Сохранение фьюзов.
а потом восстановить настройки фьюзов
AVRDUDESHELL. Загрузка фьюзов.
Содержит встроенный дизассемблер
AVRDUDESHELL. Встроенный дизассемблер.
Список поддерживаемых микроконтроллеров:
ATMEGA
ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega1284P, ATmega128RFA1, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164P, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega324P, ATmega325, ATmega3250, ATmega328P, ATmega329, ATmega3290, ATmega3290P, ATmega329P, ATmega48, ATmega64, ATmega640, ATmega644, ATmega644P, ATmega645, ATmega6450, ATmega649, ATmega6490, ATmega8, ATmega8515, ATmega8535, ATmega88
ATTINY
ATtiny11, ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny24, ATtiny25, ATtiny26, ATtiny261, ATtiny44, ATtiny45, ATtiny461, ATtiny84, ATtiny85, ATtiny861, ATtiny88
ATXMEGA
ATxmega128A1, ATxmega128A3, ATxmega16A4, ATxmega192A3, ATxmega256A3, ATxmega256A3B, ATxmega32A4, ATxmega64A1, ATxmega64A3
AT
AT90CAN128, AT90CAN32, AT90CAN64, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90S1200, AT90S2313, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535, AT90USB1286, AT90USB1287, AT90USB162, AT90USB646, AT90USB647, AT90USB82
Список поддерживаемых программаторов:
89ISP, ABCMINI, ALF, ARDUINO, ATISP, AVR109, AVR910, AVR911, AVRISP, AVRISP2, AVRISPMKII, AVRISPV2, BASCOM, BLASTER, BSD, BUTTERFLY, C2N232I, DAPA, DASA, DASA3, DRAGON_DW, DRAGON_HVSP, DRAGON_ISP, DRAGON_JTAG, DRAGON_PP, DT006, ERE-ISP-AVR, FRANK-STK200, FUTURLEC, JTAG1, JTAG1SLOW, JTAG2, JTAG2DW, JTAG2FAST, JTAG2ISP, JTAG2SLOW, JTAGMKI, JTAGMKII, MIB510, PAVR, PICOWEB, PONYSER, PONY-STK200, SIPROG, SP12, STK200, STK500, STK500HVSP, STK500PP, STK500V1, STK500V2, STK600, STK600HVSP, STK600PP, USBASP, USBTINY, XIL
С историей обновлений можно ознакомиться тут.
Инструкция по настройке программы для работы в ОС Linux (wine) находится тут.
Скачать программу AVRDUDESHELL
описание USBASP драйвера, инструкция по настройке своими руками в AvrDude Prog, Atmel Studio и Khazama AVR Programmer, обновление проши
В моём случае это абсолютный рекордсмен по скорости доставки — около 5 месяцев беспечного блуждания непонятно где. Несмотря на чудовищную задержку по времени, пакет я всё-таки получил, чему несказанно рад, не взирая на недочёты, о коих поведаю ниже. Поскольку у меня весьма плохая память, то нужно было объединить найденную полезную информацию где-то в одном месте в виде памятки, собирать её по крупицам в разных закоулках сети оказалось делом нетривиальным, поэтому оформлю всё это отдельным постом.USB ISP — самый дешёвый программатор контроллеров AVR, что можно найти в продаже, брался для расширения кругозора и более углубленного изучения AVR.
Обзор в себя включает: описание программатора, как его подключить к чипу, настройку его работы в программах AvrDude Prog, Khazama, Atmel Studio 7, и не только это.
Конечно вместо него можно использовать Arduino UNO с прошитым в него скетчем ArduinoISP, но это не удобно, возня с проводами, особенно если UNO всего одна, отбивает энтузиазм. Проще было заиметь отдельно такой программатор, точнее два. По двум причинам:
1) Ещё перед покупкой уже из отзывов было понятно, что качество пайки этих устройств страдает, а некоторым ещё и с расколотыми стабилитронами они приходили. Решено было подстраховаться, заказав два.
2) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание: ссылка
Список поддерживаемых микроконтроллеров
ATmega серия ATmega8 ATmega48 ATmega88 ATmega168 ATmega328ATmega103 ATmega128 ATmega1280 ATmega1281 ATmega16
ATmega161 ATmega162 ATmega163 ATmega164 ATmega169
ATmega2560 ATmega2561 ATmega32 ATmega324 ATmega329
ATmega3290 ATmega640 ATmega644 ATMEGA64 ATmega649
ATmega6490 ATmega8515 ATmega8535
Tiny серия ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATTINY25
ATtiny45 Attiny85 ATtiny2313
Серия Classic AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535
CAN серияAT90CAN128
PWM серияAT90PWM2 AT90PWM3Внешний видКомплект поставки минимальный — программатор + шлейф без резинки. В моём случае в удвоенном количестве.
Культура исполнения и вправду хромает, мне в глаза сразу бросились криво припаянные гребёнки. Везде где только можно — имеются следы флюса, причём с окислами, по всей видимости, программаторы давно валялись на складе, а сборка их производилась с присущей китайцам быстротой.
Некоторые отверстия не целиком заполнены припоем
SMD-элементы тоже криво припаяны
Гребёнку чуть позже выровнял, уж больно неприятно на такую раскосую смотреть, элементы пропаял, а плату затем отмыл
Размеры платы несколько больше USB-TTL-конвертера на CP2102
Длина шлейфа около 30см, бытует мнение, что чем короче шлейф, тем лучше. Некоторые его специально укорачивают. Если заказать оригинальный USBASP — там комплектный шлейф уже 50см.
JP1 — замыкается в случае обновления прошивки самого программатораПрограмматор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Установка драйверовЧтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».
3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы…»
4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»
5) «Всё равно установить этот драйвер»
6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены
Захожу в программу Khazama AVR Programmer, выбираю из выпадающего списка ATmega8 и сперва считаю Flash-память через пункт меню «Command» -> «Read FLASH to Buffer», чтобы cохранить китайскую заводскую прошивку у себя. На всякий случай.
При этом периодически будет выпадать такая ошибка, закрыв окно, программа продолжит работу.
Идёт считывание, которое завершается всплывающим окном об успешном считывании FLASH-памяти в буфер
Теперь нужно сохранить содержимое буфера: «File» -> «Save FLASH Buffer As…». Выбрать удобное место, куда старая прошивка сохранится, дать имя (я например её назвал firmware_1) и дописать расширение *.hex — если его не писать, то она сохранится как просто файл без расширения.
Скачиваю прошивку для программатора с этой странички, архив usbasp.2011-05-28.tar.gz (в этом же архиве есть драйвера для Windows, распаковываю содержимое в удобное место.
Тем временем в Khazama загружу скачанную прошивку в буфер. «File» -> «Load FLASH File to Buffer». Выбираю прошивку, где в названии написано atmega8, поскольку прошиваемый программатор на этом чипе.
Как видно, здесь три прошивки — для Atmega8, 48 и 88. В нашем случае Atmega 8 — её и выбираю.
Прошиваю. «Command» -> «Write FLASH File to Buffer». Снова возникает ошибка, но после идёт процесс, завершающийся успехом.
Поскольку в обычном понимании «запрограммировать» означает выставить 1, то при работе со фьюзами всё ровно наоборот, от чего возникает путаница и в этом случае можно по неосторожности заблокировать контроллер и прошить потом его будет уже нельзя. Программа Khazama AVR Programmer удобна просмотром фьюз-битов — там наглядно видно и расписано, какие из них установлены, а какие нет.
Находятся они по пути «Command» -> «Fuses and Lock Bits…», откроется окно:
Где по нажатии кнопки «Read All» считаются фьюз- и лок-биты, а пресловутая ошибка успеет вылезти аж 5 раз подряд. Ошибки сыпятся именно на заводской китайской прошивке. Но если вставить в USB-порт недавно прошитый программатор, прошивкой скаченной по ссылке выше, то этих ошибок вылазить уже не будет, однако баги вылезут в другом месте, но о них позже.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.
AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.
Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.
Поскольку голый чип в SMD-корпусе SOIC8, в данном случае я поместил его в переходник SOIC8-DIP8 для удобства соединения с программатором в дальнейшем. Обзор на этот переходник можно почитать здесь.
AVRDUDE PROG 3.3
Тут выбирается из списка одноимённый контроллер, программатор USBasp и, если программатор прошит заводской китайской прошивкой, то все операции проходят ровно и гладко. Однако стоит заменить программатор на другой, с обновлённой прошивкой, то при любой операции возникает ошибка.
Появляется она из-за того, что ни программа, ни программатор не могут автоматически перейти в режим медленного программирования, необходимый для ATtiny13. Но есть как минимум два выхода:
1) Железный: замкнуть перемычку JP3
2) Программный: отредактировать файл «programm.ini» в папке с программой AVRDUDE PROG 3.3
Внести туда четыре строчки кода и сохранить. (взято отсюда)
progisp=jtag2pdiportprog=COM1portenabled=1[UsbaspSpeed]
progisp=Usbasp -B 3
portprog=usb
portenabled=0
Примечание. Здесь применён ключ «-B», который и занимается переводом программатора на пониженную частоту программирования. Значение «3» — время в микросекундах
После этого снова запустить AVRDUDE PROG 3.3 и в выпадающем списке программаторов выбрать UsbaspSpeed. Теперь работа с ATtiny13 на программаторе с новой прошивкой будет уже без ошибок, а перемычку JP3 замыкать больше не потребуется в этом случае.
Khazama AVR Programmer
Выбирается контроллер из списка и почти та же ситуация.
Программатор с заводской прошивкой нормально работает с ATtiny13, если не считать постоянно появляющихся окон с ошибкой, о чём раннее уже рассказывал.
Но с программатором на новой прошивке уже появляется иная ошибка с невозможностью прочесть сигнатуру (цифровую подпись) контроллера.
Но стоит замкнуть перемычку JP3, и можно спокойно работать
Или просто задать частоту работы из выпадающего списка по пути «Command» -> «Programm Options», я выставил частоту 187.5кГц.
Примечание. Частота программирования должна быть меньше тактовой частоты прошиваемой микросхемы не менее, чем в 4 раза. Но если посмотреть на считанные с ATtiny13 фьюзы, то на последней строчке Int.Rc.Osc. указано 9.6МГц.
Как минимум, у новичка возникнет вопрос — почему на выставленных в KHazame 1.5МГц — появляется та же ошибка? А также почему, если в AtmelStudio написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:то загрузив код на Attiny13, светодиод будет мигать очень медленно?#define f_cpu 9600000
— посмотрим на предпоследнюю строчку, где Divide Clock by 8 Internally [CKDIV8=0] — это включенный предделитель частоты, который делит эти 9.6МГц на 8, и поэтому реальная частота чипа здесь — 1.2МГц. Поэтому при выборе частоты 187.5кГц или меньше, ошибки исчезают и можно работать нормально с контроллером.
Примечание 2. Способ с выбором частоты в KHazame по скорости работы в несколько раз выигрывает у метода с физическим замыканием перемычки JP3, потому как в последнем случае частота понижается до 8кГц.
Интеграция программатора в Atmel Studio 7 Atmel Studio — среда разработки от фирмы Atmel, но напрямую работать с USBASP, тем более китайским, она не может. Однако благодаря той же программе AVRDUDE, входящий в состав пакета AVRDUDE PROG 3.3, которая будет играть здесь роль посредника, можно соорудить «костыль», а уже в самой среде затем добавить возможность прошивать МК, подключенный через USBASP.
Сперва нужно запустить среду, предполагается, что некий код у нас уже написан и собран. В моём примере это простая мигалка светодиодом — Blink.
На верхней панели инструментов выбрать «Tools» — «External Tools…»
Откроется небольшое окно, нажать «Add»
В самом верхнем поле «Title:» ввести любое удобное название, я написал «Atmega168», т.к. та конфигурация, что приведу чуть ниже относится конкретно к этому контроллеру, и для любого другого контроллера она настраивается индивидуально.
В большом поле наверху, название инструмента будет автоматически продублировано.
Вторая строка, поле «Command:» — здесь нужно указать путь до файла «avrdude.exe», который находится в папке с вышерассмотренной программой
Третья строка, поле «Arguments:» необходимо ввести собственно саму конфигурацию
Конфигурация для Atmega168
-p m168 -c usbasp -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
-p — наименование контроллера
-с — какой программатор
-P — порт, через который будет заливаться прошивка
-U — какая операция с какой памятью будет производится (в данном случае запись во Flash)
Если нужно настроить для другого МК, то параметр «m168» нужно изменить на соответствующий контроллер, который будет прошиваться. Например «m8» для Atmega8 или «m328p», если Atmega328p. Параметры для других МК смотрите здесь — также там найдёте описания ключей AVRDUDE.
Конфигурация для ATtiny13
-p t13 -c usbasp -B 3 -P usb -U flash:w:$(ProjectDir)Debug\$(TargetName).hex:a
Здесь можно заметить уже два изменения: помимо «t13», добавился уже знакомый ключ «-B» со значением «3» для снижения скорости программированияПосле заполнения полей нажать «Apply» и «ОК». Окно закроется
Теперь, если снова кликнуть по «Tools», там появится только что созданный инструмент. И по нажатии по нему откомпилированный код будет автоматически прошит в контроллер.
Но эта операция происходит в два клика, что не очень удобно. Надо вынести этот инструмент на главную панель инструментов, чтобы он был всегда на виду.
Для этого нужно снова зайти в «Tools», затем кликнуть по пункту «Customize…»
Откроется следующее окно:
Перейти во вкладку «Commands» — нажать кнопку «Add Command…»
Ещё одно окно появится. В нём — в левой колонке выбрать «Tools», а в правой колонке выделить «External Command 1». Нажать «OK»
«External Command 1» окажется наверху списка, и, обратите внимание на саму панель инструментов — в интерфейсе появился пункт «Atmega168».
Но как мне кажется, место ему отведено не совсем удачное, желательно его сдвинуть вправо, для этого нажимается кнопка «Move Down» (одно нажатие = сдвиг на одну позицию вправо). После этого можно закрывать окно по кнопке «Close» и шить чип прямо из студии в один клик через обозреваемый программатор.
При перепрошивке чипа таким методом, на секунду появляется консольное окно AVRDUDE. Но может возникнуть необходимость как-то сохранить этот лог для дальнейшего его просмотра — тогда в окне «External tools» нужно поставить галку на «Use Output window».
И теперь лог будет отображаться в окне вывода, что внизу программы ATmel Studio 7. Данная галка может задаваться отдельно для каждого добавленного в «External tools» контроллера.
Минусом khazam’ы является то, что в окне со фьюзами не отображаются HEX-значения выставленных битов. Это уже можно посмотреть в AVRDUDE PROG. Заводские фьюзы, выставленные китайцами, выглядят так (обязательно поставить точку «инверсные» — выделил синим прямоугольником):
Как рекомендует выставить разработчик:
HFUSE=0xc9
LFUSE=0xef
Это нужно снять две галки с «BODEN» и «SUT1» (выделено красным овалом),
поставить две галки на «CKOPT» и «SUT0» (выделено зелёным прямоугольником),
справа в колонке при этом будут отображаться HEX-значения изменённых битов (выделено жирным красным прямоугольником): Lock Byte: 3F, Fuse High Byte: C9, Fuse Low Byte: EF.
Если всё сходится, можно нажимать «программирование»
ВНИМАНИЕ. Злой фьюз-бит RSTDISBL — не трогать ни в коем случае, иначе его установка заблокирует контроллер и прошить потом через USBASP его уже будет нельзя._____________________________________Выводы Опробовано, работает. Если khazam не планируется использовать, то в обновлении прошивки для программатора — смысла нет, благо и так прекрасно работает, причём в случае с ATtiny13 никаких правок и перемычек вносить не требуется. Последняя прошивка — почему-то оказалась более капризна в этом плане. Единственное, после получения, плату надо пропаять и отмыть.
Список ссылок
1) Описание USBASP
2) AVRDUDE PROG 3.3 (форум)
3) Khazama AVR Programmer 1.7
4) Китайская стоковая прошивка (10кб)
5) Архив с прошивками для USBASP и драйверами для Windows — сайт создателя проекта
Использование программатора USBASP в Atmel Studio
Программатор USBASP является на сегодняшний день самым дешевым программатором микроконтроллеров AVR компании ATMEL и позволяет программировать большое множество микроконтроллеров серий AVR ATTiny, AVR ATMega и других. В данной статье я расскажу вам об основных особенностях использования этого программатора из под ОС Windows 7 и как настроить его работу совместно со средой разработки программ Atmel Studio на примере версии 6.1. К сожалению, по умолчанию, Atmel Studio не поддерживает этот программатор.
Установка драйвера программатора
В первую очередь необходимо установить драйвер для программатора. Мы не будем подробно описывать процедуру установки драйвера, так как тут не должно возникнуть каких либо трудностей. После установки драйвера подключенный программатор отображается в диспетчере устройств Windows как устройство USBasp.
Драйвер можно скачать по ссылке с нашего Google диска.
Установка Avrdude
Для программирования микроконтроллеров AVR будем использовать программу Avrdude. Эта программа поддерживает большое количество программаторов, в том числе и USBASP. Этой программе посвящена отдельная страница в википедии.
Скачать Avrdude по ссылке с нашего Google диска
Программа avrdude является консольной и запускается из командной строки. Для выполнения программирования ей передается набор параметров, определяющий настройки. Ниже приведен пример командной строки для программирования контроллера при помощи программатора USBASP:
avrdude -c usbasp -p atmega32 -U flash:w:myhexfile.hex -U lfuse:w:0x6a:m -U hfuse:w:0xff:m
Поясним основные параметры:
- -c usbasp параметр определяет тип программатора, в нашем случае это usbasp;
- -p atmega32 параметр определяет тип микроконтроллера, для примера использован ATmega32;
- -U flash:w:myhexfile.hex параметр определяет hex файл для записи в контроллер. Файл должен располагаться либо в каталоге программы, либо необходимо указать полный путь к файлу;
- -U lfuse:w:0x6a:m параметр определяет младший байт регистра Fuse;
- -U hfuse:w:0xff:m параметр определяет старший байт регистра Fuse;
Регистры Fuse используются для настройки режима работы микроконтроллера и для их определения обратитесь к документации соответствующего контроллера. Хочу предупредить, что некорректная установка режима контроллера через регистры Fuse может привести к невозможности дальнейшего программирования контроллера, по этому, внимательно изучите документацию. Если вы не хотите изменять регистр Fuse, вы можете не передавать эти параметры при программировании, в этом случае регистр Fuse останется в том же состоянии, что и до программирования.
Avrdude имеет много разных функций, но в рамках данной статьи нам важен один режим ее работы, а именно заливка программы в микроконтроллер. Остальные функции вы сможете изучить в документации.
Настройка программирования из Atmel Studio
Как уже было упомянуто, Atmel Studio не поддерживает программатор USBASP. Однако в нее встроен механизм для запуска внешних программ для выполнения различных действий. Используя данный механизм внешних инструментов, программирование контроллера будет осуществляться одной кнопкой прямо из меню Atmel Studio.
В Atmel Studio открываем пункт меню Tools и выбираем пункт External tools…
В открывшемся окне настройки инструментов нажимаем кнопку Add для добавления нового инструмента. Заполняем следующие поля:
- Title: произвольное имя инструмента, мы указали USBASP atmega32.
- Command: файл запуска программы avrdude. Мы указали C:AVRDUDEavrdude.exe, так как у нас она размещена в каталогеAVRDUDE на диске С.
- Arguments: параметры запуска для avrdude, которые мы рассмотрели выше. Мы задали строку -c usbasp -p atmega32 -U flash:w:$(TargetName).hex, в которой указали имя программатора, имя контроллера, и путь к файлу прошивки. Путь к файлу указан через специальные макросы и Atmel Studio подставит их сама. Мы не указали регистр Fuse в этом примере, но при необходимости вы можете добавить их самостоятельно.
- Initial directory: указан макрос для подстановки каталога, в котором находится файл прошивки.
- Use Output window: установите эту галочку для того, что бы результат работы программы показывался в окне Atmel Studio. Послу установки всех настроек нажмите кнопку OK для сохранения настроек и выхода.
Теперь, для программирования микроконтроллера достаточно зайти в меню Tools и нажать команду USBASP atmega32, которая там должна появиться после проделанных настроек. Программирование необходимо запускать после компиляции проекта, так как файл прошивки создается в процессе компиляции проекта.
Подключение программатора к микроконтроллеру
Программатор USBASP подключается к микроконтроллеру по стандартному интерфейсу ISP. Физически на программаторе интерфейс имеет 10 контактов. Большинство контактов объединены общим проводом. Назначение используемых контактов следующее:
- MISO, MOSI, SCK, RESET — подключается к соответствующему выводу микроконтроллера;
- GND – земля, подключается к мину или GND микроконтроллера;
- VCC – используется для подачи питания на микроконтроллер.
На печатных платах модулей, где используются контроллеры AVR, разработчики очень часто располагают интерфейс SPI 6 контактов, позволяющий произвести внутрисхемное программирование контроллера. Такой интерфейс можно видеть даже на платах Arduino. Для подключения программатора к такому 6-и контактному интерфейсу можно использовать соединительные провода мама-мама или специальный переходник ISP10 в ISP6 для программатора AVR USBASP.
Перепрошивка китайского USBAsp программатора — Lifeview… — LiveJournal
Для программирования AVR микроконтроллеров удобно использовать USBAsp программатор. Китайская версия стоит до 2$, но родная прошивка не USBAsp — её надо менять. Родная программа ProgISP1.72.После прошивки программатор будет определяться как usbasp и поддерживаться avrdude.
Проверено на MX-USBISP-V4.00 и MX-USBISP-V5.00.
Для прошивки требуется плата arduino (as isp программатор) или другой программатор.
Прошивка при помощи уже вылеченного китайского программатора:
1. Скачиваем НЕ оригинальную прошивку USBASP, т.к. китайцы поменяли пины в своих программаторах тут. Версия для atmega88v (/bin/firmware/usbasp.atmega88-modify.he
2. Устанавливаем драйвер для вылеченного USBAsp (libusbK)
3. Скачиваем avrdude утилиту
4. Разбираем оригинальный USBAsp, который хотим перепрошить. Замыкаем два контакта (проводом навесу или пайкой).
5. Соединяем родным шлейфом вылеченный и оригинальный USBAsp. Отличие вылеченного — у него горит синий светодиод. У оригинального — красный.
Подключаем вылеченный программатор к ПК и выполняем:
avrdude -c usbasp -P usb -p m88 -B 1 -U flash:w:usbasp.atmega88-modify.hex
Если фьюзы не HFUSE=0xdd LFUSE=0xff, то изменяем и их:
avrdude -c usbasp -P usb -p m88 -B 1 -U lfuse:w:0xff:m -U hfuse:w:0xdd:m
6. Отсоединяем перемычку оригинального USBAsp — светодиод должен загореться синим. Поздравляю!
7. Подключение в USB теперь покажет libusbK устройство.
Прошивка при помощи ардуино:
1. Прошиваем плату Ардуино как программатор ISP
2. Разбираем оригинальный USBAsp, который хотим перепрошить. Замыкаем два контакта (проводом навесу или пайкой).
3. Подключаем ардуино к оригинальному USBAsp по SPI + питание. Ардуино подключаем к ПК.
4. avrdude -p m88 -P COM1 -c avrisp -b 19200 -B 1 -U flash:w:usbasp.atmega88-modify.hex
COM1 — замените на свой порт
-B 1 возможно можно убрать.
Источник:
drive.ru
Фото: github @aleh
прошивки
Программа Uniprof для программатора Громова
Программа Uniprof нужна для того, чтобы мы могли воспользоваться программатором Громова.
В предыдущей статье мы с вами рассмотрели, что такое программатор и как собрать программатор Громова, подключаемый к СОМ порту, а также как подключить программатор к прошиваемому микроконтроллеру. Так как программатор подключается к компьютеру, то мы должны после подключения программатора к ПК запустить на компьютере специальный софт, называемый программой – оболочкой, для того чтобы мы могли прошить микроконтроллер. С программатором Громова работают две широко распространенные оболочки: Uniprof и Ponyprog, кто – то выбирает первую, кто-то вторую, я же предпочитаю работать с Uniprof. В этой статье мы как раз и рассмотрим, как работать в программе Uniprof. Оболочке Ponyprog, будет посвящен один из наших дальнейших обзоров.
Существуют несколько версий этой программы, но они мало чем отличаются. Некоторые чуть менее стабильны и имеют меньший список поддерживаемых типов микроконтроллеров.
После того, как мы распакуем архив с программой и откроем папку, мы увидим такой список файлов:
Рассмотрим, какие из них будут нам интересны. Это в первую очередь файл, в виде микросхемы с малиновой стрелкой. Именно он запускает программу оболочку.
Перед тем как начать разбирать интерфейс программы, хочу сказать, что создатели программы позаботились о том, чтобы облегчить нам работу с оболочкой настолько, насколько это вообще возможно. Они выпустили файл справки. Этот файл находится в общей папке и выглядит в виде страницы с желтым знаком вопроса. Те, кто много работают за компьютером, знают, что так выглядят Help файлы Windows. Что же мы увидим когда откроем его ? А увидим мы следующее:
Итак, перейдем к разбору интерфейса нашей оболочки. Такое окно мы видим после запуска программы:
На экране появилось сообщение: “МК не откликнулся. Проверьте порт и подключение.“ Так и должно быть. В данный момент программатор и МК у нас не подключены. Сразу хочу сказать, что программа работает не только с программаторами, работающими через СОМ порт, но и через LPT. Так вот, собирать программатор 6 проводков для прошивания через LPT порт я вам категорически не рекомендую. Если уж очень приспичит собрать программатор 6 проводков для разовой прошивки, используйте панельку под микросхему и подпаяйтесь непосредственно к её выводам. Дело в том, что СОМ порт намного более устойчив к замыканиям и перегрузкам, нежели LPT порт. С LPT-портом достаточно одного замыкания и вы можете безвозвратно его выжечь.
Вернемся к нашей оболочке, в правом нижнем углу мы видим, что программа работает аж с пятью СОМ портами и одним LPT портом. Путем выставления нужной галочки, мы должны выбрать наш СОМ порт
Что делать если вы не знаете к какому по счету СОМ порту у вас подключен программатор ? В таком случае открываете программу, изменяете СОМ порт на следующий по списку и выходите из нее. Обычно используются СОМ порты под номерами 1 и 2.
Разбираем дальше. В верхней части окна программы, мы видим надпись синим цветом “unknown”
После того как МК определится в программе, здесь будет показана модель нашего микроконтроллера и объем его памяти, например, Tiny 2313, 2k bytes.
Если нам помимо FLASH памяти требуется прошить еще и EEPROM, ставим на ней галочку так, как это сделано на рисунке ниже:
После нажатия на иконку READ, мы загрузим прошивку из памяти МК в буфер обмена программы. После этого у нас появятся какие – то значения в ячейках таблиц:
Это означает, что в буфер программы загружена прошивка. То же самое мы видим при записи прошивки в буфер обмена программы с жесткого диска. Другими словами буфер обмена – это то место, куда мы помещаем прошивку перед прошиванием или сохранением.
Бывают случаи, когда подключенный к программатору МК по каким-то причинам не определялся программой самостоятельно. В таком случае кликните в появившемся меню по нужной вам модели МК и проблема решена. Также в рабочем окне программы мы можем путем выставления галочки выбрать формат файла прошивки: привычный нам HEX, или двоичный BIN
Сразу скажу, если вы скачали прошивку в формате BIN, а вам требуется HEX (или наоборот), вы без труда сможете перегнать прошивку из одного формата в другой, с помощью специальных программ конвертеров, которые можно скачать на просторах интернета.
Остановлюсь на одном важном нюансе, без которого нормально работать с программой вообще невозможно. Частота процессоров современных ПК очень высока. Для работы программатора требуется значительно меньшая скорость. Что делать в таком случае, если у вас мощный современный компьютер, а работать с программатором как-то нужно? Все просто, создатели программы позаботились об этом и поставили в программе специальную опцию замедления для обеспечения стабильной работы, путем установки галочки “тОРОмоз”
Почему именно “тОРОмоз”, а не тормоз ?
А потому, что у создателей оболочки с чувством юмора все в порядке. В чем тут дело вы поймете, когда попробуете с помощью этого программатора, прошить например МК Mega 32. У этого МК очень большой объем памяти и прошивание занимает порядка двадцати минут и до получаса, тогда как USB программатор USBASP шьет такой же объем памяти за 30 – 60 секунд. Но тут есть один нюанс. Если вы что-то напутали с временем запуска тактового генератора МК или совершили подобную не критическую ошибку, то USB программатор может отказываться видеть МК. А программатор Громова после выставления типа МК вручную все сделает как надо. Он меня выручал в аналогичных ситуациях уже как минимум два раза. Не пытайтесь прошивать МК без использования галочки “торомоз”. Прошивка обязательно запишется с ошибками. Особенно это опасно при выставлении фьюзов.
И вот мы наконец добрались до главного пункта этой статьи. Что же нужно нажимать и в какой последовательности, для того, чтобы просто прошить МК?
Итак, сперва мы нажимаем иконку, с рисунком папки “HEX”, и загружаем прошивку в буфер программы. Затем мы нажимаем “PROG” для того, чтобы прошить наш микроконтроллер. После этого мы нажимаем иконку “TEST”, или верификация, сверяем прошивку в памяти микроконтроллера, с прошивкой в буфере обмена программы. Это необходимо сделать для того, чтобы убедиться, что программа у нас записалась без ошибок. Если нам требуется скачать прошивку, ранее записанную в МК, мы нажимаем иконку “READ”, и считываем прошивку в буфер обмена.
Если же нам требуется сохранить эту прошивку на компьютере, мы должны нажать иконку “HEX” с изображением дискеты. Если у нас в памяти МК была ранее записана прошивка, мы стираем старую прошивку перед записью новой, путем нажатия на иконку “ERASE”.
И наконец, последняя, самая сложная часть, иконка “FUSE”, или выставление фьюзов. После того как мы прошили МК, мы должны выставить фьюзы, фьюз – биты, биты конфигурации. Все эти названия синонимы и означают одно и тоже. Разберем, что же мы видим после нажатия на кнопку “FUSE”:
Мы видим четыре окна без выставленных галочек. Не спешите здесь ничего нажимать, или рискуете залочить (заблокировать) МК! Будьте предельно внимательны или вам придется идти в магазин за новым микроконтроллером. Если, конечно, у вас нет для лечения МК сложного в сборке параллельного программатора, ну или не менее сложного реаниматора МК. Для начала нам требуется нажать во всех четырех окнах на кнопки “READ”, то есть считать все четыре байта конфигурации. А их именно четыре, в каждом по восемь битов. Это слева направо LOCK (защитный байт), или байт с помощью выставления LOCK битов которого, мы защищаем прошивку от копирования. Дальше идут LOW (младший байт), HIGH (старший байт), EXT (дополнительный байт).
Еще один важный нюанс! Так уж повелось, что в МК AVR применяют и прямое, и инверсное выставление битов, в разных программах оболочках. Например, в Ponyprog мы должны при выставлении фьюзов выставить галочки там, где в Uniprof их нет, и наоборот. Как же не запутаться,? Ведь часто в статье, по которой мы собираем устройство, не указано, какое используется, прямое или инверсное представление битов. Ориентироваться нужно всегда по биту Spien. Он всегда запрограммирован, если мы имеем доступ к МК с помощью данных программаторов. Следовательно, если на нем стоит галочка, то и на других фьюзах, где должны стоять галочки, мы их ставим. Если же не стоит, то наоборот, убираем со всех фьюзов, где она не должна стоять. У нас будет посвящена разбору фьюз битов, отдельная подробная статья.
Приведу список фьюзов для программы Uniprof, которые нельзя изменять, иначе МК залочится и восстановить его будет проблематично
Никогда не изменяйте их, если вы прошиваете МК программатором Громова или программатором USBASP, или другим программатором, подключаемым по SPI интерфейсу.
Кто не понял, что да как, вот небольшой видос, поясняющий, как прошить МК:
USBASP Руководство по обновлению микропрограммы — Electronics-Lab.com
Программатор USBASP является важным инструментом / аксессуаром для инженеров встраиваемых систем / разработчиков микропрограмм. Это USB ICSP (внутрисхемный последовательный программатор), который позволяет разработчикам легко загружать прошивки / загрузчики на микроконтроллеры AVR. В отличие от того, что вы найдете для последовательных программистов, таких как преобразователи USB-TTL, он не использует выделенный чип, поскольку он работает на atmega88 (или atmega8), и использует драйвер USB только для прошивки без специального контроллера USB.
Программист USBASPХотя этот подход с драйвером USB только для микропрограмм увеличивает его совместимость, он также создает серьезную проблему для программиста, поскольку требует регулярных обновлений для совместимости с усовершенствованиями в программировании микроконтроллеров. Одним из таких достижений является Tiny Programming Interface (TPI) , который позволяет внешним программистам получать доступ к энергонезависимой памяти (NVM) некоторых микроконтроллеров Atmel начального уровня, таких как серия ATtiny.
Хотя такие функции, как TPI , существуют уже некоторое время, использование программатора USBASP все еще является проблемой, поскольку как старые, так и новые устройства USBASP требуют обновления прошивки, прежде чем их можно будет использовать.Чтобы помочь пользователям, которым нужна эта функция, в сегодняшнем руководстве будет освещен процесс обновления прошивки на вашем программаторе USBASP до последней версии.
Необходимые компоненты
Для обновления прошивки требуются следующие компоненты:
- Программист USBASP
- Arduino Uno (нано должно работать одинаково)
- Перемычки
- Макет
Программисты USBASP, независимо от марки, обычно имеют одинаковую конфигурацию, поэтому это руководство должно работать независимо от типа или марки, которые у вас есть.
Подготовьте Arduino Uno
Для загрузки прошивки в USBASP требуется программист. В сегодняшнем руководстве мы будем использовать Arduino Uno в качестве этого программатора. Чтобы сделать Arduino программистом, нам нужно загрузить скетч, доступный среди примеров в Arduino IDE, на плату Arduino. Для этого выполните следующие действия:
- Перейти к Файл > Примеры > ArduinoISP
- Подключите плату Arduino к вашему ПК
- Выберите порт и тип платы и Щелкните на Загрузить
После этого плата Arduino готова к работе в качестве программиста.
Схемы
Далее нам нужно подключить USBASP к плате Arduino. С помощью перемычек и макета (при необходимости) соедините плату Arduino и устройство USBASP, как показано на изображении ниже:
СхемаПоскольку модель фритзинга не является точной копией популярных типов USBASP, ниже представлена карта контактов, показывающая, как Arduino подключается к USBASP, чтобы упростить подключение:
Ардуино — USBASP
5 В - VCC GND - GND D13 - SCK D12 - MISO D11 - MOSI D10 - СБРОС
Еще раз проверьте соединения, чтобы убедиться, что все сделано правильно.Если у вас есть сомнения по поводу идентификации контактов на USBASP, вы можете запустить поиск в Google по контактам этой конкретной платы и использовать его в качестве руководства для подключения.
Когда платы подключены, нам нужно сделать еще одну вещь: замкнуть перемычку JP2 (выделено ниже) на плате USBASP. Без этого мы не сможем загрузить прошивку на устройство. Замкните перемычку, замкнув ее припаянными светодиодами или перемычками.
Теперь мы готовы загрузить прошивку.
Загрузка прошивки
Начнем со скачивания прошивки. Репозиторий с последней версией микропрограмм находится на веб-сайте Томаса Фишля. На момент написания этой статьи последняя версия, которая, к счастью, имеет поддержку TPI , была выпущена мая 2011 г. . Загрузите это.
Ключевым элементом процесса обновления прошивки является AVRDUDE. Если вы знакомы с Arduino IDE , вы наверняка видели ссылку на нее в подробном виде во время загрузки кода.AVRDUDE — это утилита для загрузки, выгрузки и управления содержимым ROM и EEPROM микроконтроллеров AVR с использованием техники внутрисистемного программирования (ISP). Самый простой способ получить AVRDUDE — загрузить его исполняемый файл, расположенный в папке Arduino -> « ARDUINO FOLDER» / Java / hardware / tools / avr / bin / , или вы можете загрузить его.
После того, как он у вас есть, следующим шагом будет поиск файла конфигурации; avrdude.conf файл, который (если следовать маршруту Arduino IDE) будет находиться в каталоге -> « ARDUINO FOLDER» / Java / hardware / tools / avr / etc /
Поместите эти два файла (исполняемый файл AVRdude и файл конфигурации ) в папку вместе с файлом .hex прошивки USBasp , которую мы только что загрузили. Это помогает сократить длину финальной команды. После этого подключите Arduino с подключенным к нему программатором USBasp к вашему компьютеру и запишите порт, который был назначен Arduino вашим компьютером.
Наконец, откройте окно терминала, перейдите в папку, которую мы создали ранее, и выполните команду ниже:
./avrdude -C ./avrdude.conf -p m8 -c avrisp -P /dev/cu.usbmodem14101 -b 19200 -U flash: w: usbasp.atmega8.2011-05-28.hex: я
Убедитесь, что вы ввели правильный порт после опции -P
. Если это будет успешным без каких-либо сообщений об ошибке, значит, теперь на USBASP установлена последняя версия микропрограммы, и он готов к некоторым действиям.
Вот и все для этого урока!
Не стесняйтесь обращаться ко мне через раздел комментариев, если у вас есть какие-либо проблемы с тем, чтобы заставить это работать.
Каталожные номера:
Обновление прошивкиUSBASP | Bitbanging
USBASP — популярный и недорогой программатор для контроллеров AVR.Они часто продаются с устаревшей прошивкой. Узнайте ниже, как легко обновить его для поддержки TPI и избавиться от предупреждающих сообщений.
Проблема
USBASP — это встроенный программатор с открытым исходным кодом для контроллеров Atmel AVR, разработанный Томасом Фишлем. На его веб-сайте вы можете загрузить самую последнюю версию прошивки и найти всю информацию для ее создания. Вы также можете купить его по очень низкой цене в нескольких местах в Интернете. Однако в дешевых версиях может быть устаревшая прошивка.Признаком устаревшей прошивки является следующее предупреждающее сообщение:
avrdude: предупреждение: не удается установить период sck. usbasp проверьте наличие обновлений прошивки.
Однако это всего лишь предупреждение, и программист, вероятно, все еще правильно загружает файлы. Одна функция, которой не хватает вашему USBASP, — это поддержка Tiny Programming Interface (TPI) , необходимая для программирования небольших микроконтроллеров AVR, таких как ATtiny10. Поэтому, если вы хотите запрограммировать ATtiny10, вам лучше обновить USBASP.Обновить прошивку относительно просто, и это можно сделать с помощью только Arduino и нескольких перемычек.
— обычный программатор USBASP —
Настройте Arduino как ISP
Нам нужно, чтобы Arduino действовал как программист. Для этого нам просто нужно загрузить эскиз, уже доступный в примерах Arduino. Поэтому из Arduino IDE:
- Перейдите в Файл> Примеры> ArduinoISP
- Подключите Arduino
- Нажмите Загрузить
Готово.Теперь Arduino готов загрузить прошивку на другое устройство, в нашем случае USBASP.
Электропроводка
На следующей схеме показаны соединения между выводами Arduino и USBASP. Дважды проверьте соединения, так как большинство проблем возникает из-за ослабленного провода или неправильно подключенных контактов.
Ардуино | USBASP |
---|---|
5 В | 2 |
ЗЕМЛЯ | 10 |
13 | 7 |
12 | 9 (MISO) |
11 | 1 (MOSI) |
10 | 5 (СБРОС) |
Закрытая перемычка 2
Убедитесь, что вы закрыли JP2 на плате USBASP .Без этого нельзя перепрограммировать плату. Чтобы замкнуть перемычку 2 на USBASP, вы можете припаять к ней что-нибудь или просто использовать провод и затянуть его в оба отверстия. Убедитесь, что он не двигается и не теряет соединение на полпути загрузки прошивки.
— замкните перемычку даже с помощью проволоки или скрепки. Паять не нужно. —
Прошивка
Прошивку можно загрузить с веб-сайта Thomas Fischl. После того, как вы скачали последнюю версию, вы должны найти .шестнадцатеричный файл внутри архива. Это файл, который мы загрузим на устройство. В случае прошивки 2011 года (самая последняя на момент написания) это:
usbasp.atmega8.2011-05-28.hex
avrdude
Последний шаг — загрузка прошивки с помощью avrdude . Я предполагаю, что у вас установлена IDE Arduino. Тогда самый простой способ получить Avrdude — это поискать его в файлах Arduino IDE (в качестве альтернативы вы можете получить его из Интернета).Исполняемый файл avrdude будет по следующему адресу:
ARDUINO FOLDER "/ Java / hardware / tools / avr / bin /
Нам также понадобится файл конфигурации avrdude.conf
, который можно найти здесь:
ПАПКА ARDUINO "/ Java / hardware / tools / avr / etc /
Скопируйте этих двух файлов и вставьте их в папку вместе с файлом прошивки (в данном случае usbasp.atmega8.2011-05-28.hex
).
Затем вам нужно определить порт, используемый Arduino.Чтобы найти это:
- Подключите Arduino к USB
- Откройте IDE Arduino
- Перейдите в Инструменты> Порт
Обратите внимание на используемый порт (/dev/cu.usbmodem14101 в моем случае)
В терминале перейдите в папку, в которую вы поместили avrdude, и введите следующую команду, используя правильный порт для параметра -P
./avrdude -C ./avrdude.conf -p m8 -c avrisp -P /dev/cu.usbmodem14101 -b 19200 -U flash: w: usbasp.atmega8.2011-05-28.шестнадцатеричный: я
Готово! Если вы не получаете сообщения об ошибке, ваш USBASP готов.
Список литературы
Как обновить прошивку AVR USBasp prog
Распространенная причина, по которой вы хотели бы обновить эту прошивку, — это функция медленной разблокировки для дешевых (e-bay или Aliexpress) программаторов USBasp, таких как этот на картинке. Функция slow-sck позволяет программировать микросхемы AVR, работающие с источником тактовой частоты очень низкой частоты (например, 128 кГц).
Когда ваш программатор USBasp печатает это предупреждение, это означает, что требуется обновление прошивки!
avrdude -p attiny13 -c usbasp -B 1024 -F -P USB avrdude: установите частоту SCK на 500 Гц avrdude: предупреждение: невозможно установить период sck.пожалуйста, проверьте обновление прошивки usbasp. avrdude: error: программа включена: цель не отвечает. 1 avrdude: инициализация не удалась, rc = -1 avrdude: устройство AVR инициализировано и готово принимать инструкции avrdude: подпись устройства = 0x685ba2 avrdude: Ожидаемая подпись для ATtiny13 - 1Э 90 07 avrdude сделано. Спасибо.
Что вам нужно
- два программатора USBasp (первый требует обновления, а второй записывает чип первого)
- одна перемычка, два разъема 2 × 1 и паяльник (опционально, зависит от типа программатора)
Подготовка программатора USBasp
Нам нужно установить перемычку JP2 для программатора USBasp, который мы хотим обновить.Эта перемычка включает «самопрограммирование ISP». Может случиться так, что вам нужно будет добавить на печатную плату недостающий контактный заголовок для JP2. То же самое с контактным разъемом для перемычки JP3, которая включит «Slow-SCK», когда мы будем обновлять прошивку. В конце концов, сделайте короткие соединения на печатной плате, если нет места для штыревых разъемов.
Плата программатора AVR USBasp Figure-1 (источник: tosiek.pl)
Рисунок 2 Схема программатора USBasp AVR
Скачивание последней прошивки
Программное обеспечение поддерживается Томасом Фишлем, автором программы USBasp, и его можно найти на его официальной странице загрузки — https: // www.fischl.de/usbasp/.
cd $ HOME wget https://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz tar -xvf usbasp.2011-05-28.tar.gz
Прошивка микросхемы программатора USBasp
На этом этапе мы уверены, что перемычка JP2 первого программатора, которую мы хотим обновить, находится на своем месте (пока JP3 не установлен). Теперь мы воспользуемся вторым программатором USPasp, чтобы записать новую прошивку в чип первого программатора. Итак, нам нужно подключить первый программатор USBasp и второй программатор с помощью разъемов IDC-10, а затем подключить второй программатор к компьютеру с помощью разъема USB.
cd $ HOME / usbasp.2011-05-28 avrdude -p atmega8 -c usbasp -U flash: w: bin / firmware / usbasp.atmega8.2011-05-28.hex: i -F -P usb
Проверка
После обновления прошивки нам нужно снять перемычку JP2 и установить JP3 (Slow-Clock).
avrdude -p attiny13 -c usbasp -B 1024 -F -P USB avrdude: установите частоту SCK на 500 Гц avrdude: устройство AVR инициализировано и готово принимать инструкции Чтение | ########################################################################## | 100% 0.02с avrdude: подпись устройства = 0x1e9007 (вероятно, t13) avrdude: safemode: Предохранители исправны (E: FF, H: FF, L: 7B) avrdude сделано. Спасибо.
Вот и все! Теперь, если установлен JP3, можно запрограммировать микросхемы AVR, работающие с очень низкими частотами.
| usbasp_single_side.t3001.zip Томас Фишль, Односторонняя печатная плата, TARGET 3001! файл макета Размер: 90×40 мм (оптимизирован для корпуса Hammond 1591ATBU) | |
| lv_usbasp.tar.gz Павел Шрамовский (11/2007) С Низковольтный интерфейс . Односторонняя печатная плата, файлы макета EAGLE, некоторые компоненты SMD | |
| Бернхард Валле Двусторонняя печатная плата, файлы компоновки EAGLE, список деталей с номерами для заказа для Reichelt.de и Conrad.de Размер: оптимизирован для корпуса Hammond 1591ATBU | |
| http: // thomaspfeifer.net / atmel_usb_programmer.htm Томас Пфайфер Односторонняя печатная плата, файлы макета PDF, компоненты SMD | |
| Томаш Островски Односторонняя печатная плата, файлы макета PDF и EPS, только четыре части 0805 SMD, остальные дискретные компоненты | |
| USBasp_CH.застежка-молния Автор: Christian Heigemeyr Односторонняя печатная плата, с некоторыми компонентами SMD 0805, PDF-файлы С дополнительными кнопками сброса и отключения мишени | |
| USBasp.sch,
USBasp.pcb ComponentSide.pdf, TopSide.pdf, Schematics.pdf по Журов Павел Односторонняя печатная плата, формат P-CAD 2002 и файлы PDF Крестовина TXD и RXD добавлены для разъема ISP | |
| usbasp_gr.rar автор: J.A. de Groot Плата односторонняя (формат EAGLE), имеет размеры 3 на 8 см и использует только обычные компоненты. | |
| usbasb_mg.zip Маттиас Гёрнер, Плата односторонняя, формат орла, с файлами PS / PDF интегрированные разъемы для целевых микросхем ATmega8 и ATmega32 | |
| Тарбол с макетом по Ханнес Остлунд Двусторонняя печатная плата, компоненты SMD, очень маленькие | |
| Сергей Богданцев (01/2010) 3.Версия 3V, только ATMega48. Односторонняя печатная плата, формат макета ExpressPCB + плата разъемов для различных AVR. Без будущего последовательного интерфейса чип изначально должен быть запрограммирован другим программатором. | |
| Eaglefiles (sch / brd) и дизайн корпуса САПР (dxf) Ганса Хафнера, HTL Mössingerstrasse-Klagenfurt, Österreich, hans.hafner (at) htl-klu (dot) at (01/2010) Корпус, фрезерованный на ЧПУ (доступен файл DXF), макет Eagle, всего несколько деталей для поверхностного монтажа | |
| Различные версии USBasp: простая в сборке версия без smd, smd и очень маленький USBasp Свен Хедин (01/2011) Доступны файлы Eagle. | |
| Программатор USB Key AVR Фабио Балтьери (09/2011) Очень маленький USB-ключ, как и габариты. Детали SMD. | |
| Программатор AVR ISP Ярослав Вадель (04/2012) Маленький программист.Детали SMD. | |
| Целевой проект и PDF-файлы (макет / схемы) Мариус Шефер (09/2013) | |
| tinyUSBboard с USBasp-совместимой прошивкой Стефан Барвольф (04/2014) | |
| USBasp на макетной плате с разъемом для дочерних плат контроллера. от Фабиана Хаммеля (11/2018) | |
| Тьяарт ван Асвеген разработал SMD-плату: файлы DIP TRACE и GERBER. Тьяарт ван Асвеген (09/2019) | |
| Многофункциональный (например,грамм. различные уровни напряжения, встроенный преобразователь USB в последовательный порт, разъем USB-C) Конструкция, совместимая с USBasp.
AVR Programmer Github project. Брайан Пепин (12/2019) | |
| USBasp с разъемом ZIF и компонентами со сквозным отверстием. Бруно (04/2020) | |
| Плата USBasp с дополнительным 6-контактным разъемом и выбираемым целевым источником питания (3.3 В / выкл. / 5,0 В). Марти Э. (10/2020) | |
| Джон включил в комплект универсальную розетку на 40 контактов, на которую можно установить устройства с 8, 14, 20 и 28 контактами.
Он также добавил универсальный кварцевый генератор с выходами 1, 2, 4, 8 и 16 МГц для синхронизации микросхем.
Также имеется стандартный 6-контактный разъем ICSP и пользовательский светодиод, подключенный к контакту MOSI. от Джона П. (11/2020) |
Обновление прошивки USBASP — маленькие компьютеры Arduino, Raspberry Pi и ESP8266!
Приобрел с ebay очень дешевый программатор USBASP для AVR. Длинный кабель с 10-контактными разъемами и переходником с 10 на 6 контактов.
Используется для программирования Arduino, когда загрузчик не нужен при запуске или когда он занимает слишком много места в ОЗУ.
Вы можете запрограммировать скект в Arduino, когда USBASP подключен с опцией меню Sketch: Upload Using Programmer.Это также удаляет загрузчик, освобождая место.
Когда я подключил USBASP к своему Uno и попробовал это с помощью скетча, загрузка завершилась ошибкой:
avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp
Известная проблема, старая прошивка. Вздох, еще одна работа. Это то, что я сделал, чтобы он работал так, как хотел.
Погуглил, и это мой ответ. На основании сообщения Роджера Кларка, выполненного мной в Windows 7.
- Запрограммируйте Arduino UNO как программист.
Подключите Arduino Uno. Обратите внимание на назначенный последовательный порт, COMXX (введите номер в следующих командных строках!).
Запустите Arduino IDE (1.6.5 для меня, но это будет работать и со старыми версиями).
Из примеров (в меню «Файл»). Выберите «Arduino ISP».
Выберите плату: Uno и последовательный порт к тому, что вы только что отметили.
Выберите «Загрузить» и подтвердите, что новая прошивка была загружена. - Загрузите последнюю версию прошивки USBASP с сайта Томаса Фишла, разработчика USBASP.
Самая последняя прошивка — usbasp.2011-05-28.tar.gz
Распакуйте файл во временный каталог и скопируйте usbasp.atmega8.2011-05-28.hex в c: / program files (X86) / arduino / hardware \ tools \ avr \ bin (требуются права администратора!) - Откройте командную строку (Запуск от имени администратора) в c: \ program files (X86) \ arduino / hardware \ tools \ avr \ bin
Эта папка содержит программу avrdude, которая будет использоваться для прошивки новой прошивки. - Замкните перемычку самопрограммирования на USBASP.
На моей плате было два пустых отверстия, в которые я впаял перемычку.
Подключите Arduino к выводам программирования USBASP
Убедитесь, что вы отключили USBASP от USB вашего компьютера! - Выполните эти соединения
Ардуино USBASP 5В ———— 2 GND ———— 10 13 ———— 7 12 ———— 9 (MISO) 11 ———— 1 (MOSI) 10 ———— 5 (СБРОС)
Обратите внимание, что выемка на разъеме находится над контактами 3-5-7. На картинке выше контакты показаны в обратном порядке. Вот так разъем в кабеле, вид спереди, где должны быть выполнены подключения:
XXX --------------- | 1 3 5 7 9 | | 2 4 6 8 10 | -----------------
-
Убедитесь, что avrdude может подключиться к USBASP В командном окне Windows введитеavrdude -C../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -v
Если все подключено правильно, вы должны увидеть массу информации о плате USBASP, которую вы собираетесь программировать, например, этот
... Часть АРН: ATMEGA8 ... avrdude: устройство AVR инициализировано и готово принимать инструкции
Последнее сообщение — это знак, что все подключено, и у вас есть ATMEGA8, как и у меня на моем USBASP.
Если вы получили сообщение об ошибке о недопустимой подписи, значит, у вас либо неисправен USBASP, либо вы допустили ошибку подключения.
- Предполагая, что AVRDUDE может подключаться к USBASP, вы можете сделать резервную копию исходной прошивки с помощью команды
avrdude -C ../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -U flash: r: original_firmware.bin: r
Это должно прочитать прошивку и сохранить ее в файл с именем original_firmware.bin (в той же папке, что и avrdude.exe)
- Теперь запишите новую прошивку с
avrdude -C ../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -U flash: usbasp.atmega8.2011-05-28.hex
- Если процесс прошел нормально и AVDRUDE проверил новую прошивку, вы можете отключить USBASP от Arduino.
Удалите перемычку самопрограммирования, подключите ее через USB к ПК и попытайтесь запрограммировать целевое устройство (используя Arduino IDE). Обратите внимание, что вы теряете загрузчик при использовании USBASP, используйте программу загрузчика Ника Гаммона, чтобы восстановить его.
Обновление прошивки USBasp с помощью Arduino — Shannon Strutz
Хорошо, у вас есть программатор USBasp AVR, но вы просто не можете программировать с его помощью, что ж, вам может потребоваться обновить прошивку. По какой-то причине большинство китайских поставщиков USBasp поставляют их со старой плохой прошивкой. Мы можем исправить это с помощью нескольких материалов.
Нам нужно:
- Ардуино
- Некоторые соединительные провода
Если они у вас есть, можете продолжать. Если вам интересно: «Зачем мне использовать USBasp, если я могу использовать Arduino для программирования AVR на USBasp?» Почему бы просто не использовать Arduino вместо USBasp? » Что ж, вы можете, но это действительно отстой, когда нужно переключаться между эскизами на Arduino только для программирования другого устройства.Очень приятно иметь преданного своему делу программиста.
Хорошо, приступим:
ШАГ 1:Возьмите свой программатор USBasp. Вы заметите пару дыр с рамкой вокруг них под названием «JP2», нам нужно соединить их, чтобы мы включили программистам «Режим самопрограммирования», как на картинках.
ШАГ 2:Когда ваш USBasp-программатор находится в режиме самопрограммирования, мы собираемся переключить внимание на Arduino.Идите и подключите свой любимый Arduino, я использовал для этого Uno. Как только он будет подключен, откройте IDE Arduino. Нужная нам программа поставляется с каждой версией IDE, перейдите в Файл-> Примеры-> ArduinoISP. Это откроет программу, которая эффективно превратит Arduino в программатор AVR. Выберите свой Arduino в списке плат и соответствующий COM-порт; затем запрограммируйте Arduino с помощью скетча ISP.
ШАГ 3:Теперь ваш Arduino является программатором AVR! Теперь вернемся к USBasp.Загрузите avrdude и разархивируйте содержимое в папку, в которую вы не будете перемещать его, я поместил его в свою папку «Документы» в моем пользовательском каталоге. Обратите внимание: если вы завершите настройку с помощью Atmel Studio, вы не сможете переместить avrdude, иначе настройка нарушится. Как только это будет распаковано, загрузите последнюю версию прошивки USBasp. Вам придется распаковать его дважды, так как то, что вы загружаете, представляет собой файл .tar.gz, который затем распаковывает файл .tar, а затем, как только вы его распаковываете, у вас будут настоящие файлы. Это показано ниже:
- usbasp.2011-05-28.tar.gz
- usbasp.2011-05-28.tar
- usbasp.2011-05-28
- бин
Прошивка
- (прошивка устройства USBasp здесь)
- usbasp.atmega8.2011-05.28.hex
- win-драйвер
Цепь - (прошивка устройства USBasp здесь)
- (электрическая схема / схема USBasp) Прошивка
- (исходный код прошивки здесь)
- Changelog.txt
- Readme.txt
- бин
Прошивка
- usbasp.2011-05-28
- usbasp.2011-05-28.tar
После того, как вы все разархивировали и получили файлы, мы хотим скопировать файл usbasp.atmega8.2011-05.28.hex в тот же каталог, где находится avrdude. Как только у вас это получится, переходите к следующему шагу.
ШАГ 4: Теперь, когда у нас есть все программное обеспечение и прошивка, нам нужно подключить USBasp к Arduino. Убедитесь, что перемычка JP2 на USBasp подключена. Как только это будет проверено, соедините две части, как показано на изображении ниже.
После того, как вы подключили две части, подключите Arduino к компьютеру, не подключайте USBasp.На самом деле ничего не произойдет, так как они оба подключаются к USB, который составляет 5 В, но просто не делайте этого, на случай, если один из ваших USB-портов выйдет из строя, подтолкнуть 5 В к линии VCC не будет хорошо, пока вы не узнаете, почему это пошло. вниз. Это случается не так часто, но просто охватывает все основы.
ШАГ 5:Теперь, когда все оборудование подключено, вся прошивка готова к работе, а программное обеспечение установлено, нам нужно запрограммировать USBasp. Вот где это может быть сложно.Откройте инструмент командной строки. Если вы работаете в Windows, нажмите Windows + R, чтобы открыть окно запуска. Введите «cmd», чтобы открыть командную строку. Каталог по умолчанию, в который вы попадаете, должен быть вашим каталогом пользователя. Нам нужно перейти в каталог, в который вы поместили исполняемый файл avrdude. Вы можете использовать три простые команды для перехода туда, куда вы положили avrdude.exe.
- Используйте «dir» для вывода списка файлов и папок в текущем каталоге.
- Используйте «cd», а затем имя папки, в которую вы хотите изменить текущий каталог.
- Используйте «cd ..» для перехода вверх по каталогу, как при возврате, как в браузере.
Как только вы окажетесь в каталоге, где находится ваш avrdude, мы воспользуемся командой для выполнения программирования USBasp. Шаблон:
avrdude -P comport -c avrisp -p m8 -v -U flash: w: usbasp.atmega8.2011-05-28.hex где comport — это какой COM-порт включен ваш Arduino, это, скорее всего, быть тем же самым, что написано в Arduino IDE, но вы также можете узнать об этом в диспетчере устройств.Как только вы наберете эту команду правильно, нажмите Enter и наблюдайте за магией. Если он возвращается с ошибкой, погуглите. Может произойти ряд ошибок, и я не могу объяснить их все.
ШАГ 6:
Теперь, когда на USBasp установлена последняя версия прошивки, сложная часть окончена! Однако вам еще предстоит установить драйвер устройства USBasp для Windows. Идите вперед и отключите Arduino, отделите его от USBasp, снимите перемычку, соединяющую два контакта JP2 на USBasp, и подключите USBasp к вашему ПК.Windows попытается установить устройство с найденными драйверами, но не сможет.
Зайдите в Диспетчер устройств и посмотрите в разделе «Другие устройства», вы должны увидеть USBasp с восклицательным знаком. Это означает, что Windows увидела его, но не может правильно установить. Дважды щелкните по нему и нажмите «Обновить драйвер». Появится окно с просьбой либо найти драйвер, либо найти его автоматически. Нажмите на нижний, чтобы мы могли найти драйвер для Windows, когда вы это сделаете, появится окно, в котором вам нужно будет сопоставить каталог «win-driver», указанный в каталоге прошивки usbasp выше. .После того, как вы согласитесь с этим, Windows попытается установить драйвер. Если вы получили сообщение об ошибке «Устройство не подписано» или что-то в этом роде, вам необходимо отключить функцию принудительного использования подписи устройства в вашей установке Windows. Как только все будет готово, все готово!
Теперь, когда вы закончили, вы можете запрограммировать любой AVR, какой захотите! Удачного программирования!
-Шеннон
Краткое руководство для программиста USBASP ICSP
USBasp — это адаптер ICSP (In Circuit Serial Programming), который позволяет устанавливать новые загрузчики и прошивки на распространенные микроконтроллеры AVR, например те, которые используются в Arduino-совместимых платах.
Плата, которую вы будете программировать, называется «целевой».
Характеристики платы
Для типичного использования вы можете оставить USBasp настроенным точно так, как он поставляется в пакете. Для определенных целей вам может потребоваться изменить некоторые из этих настроек.
Разъем Micro USB. Подключитесь к компьютеру с помощью прилагаемого кабеля.
Выбор целевого напряжения. USBasp поддерживает целевые платы, работающие от 5 В или 3.3В. Большинство плат, совместимых с Arduino, работают при 5 В. Установите переключатель в положение, соответствующее плате, которую вы будете программировать.
Перемычка «Программа». Если вы закоротите эту перемычку, USBasp перейдет в специальный режим, в котором он не программист, а цель. Это позволяет вам обновлять прошивку на самом USBasp с помощью другого программатора.
Перемычка целевой мощности. С этой перемычкой USBasp будет подавать питание на цель через заголовок ICSP.Обычно это желательно. Однако, если цель получает питание независимо (например, через разъем постоянного тока или USB-соединение), вам следует удалить эту перемычку.
Заголовок ICSP для цели. Программный выход USBasp, который вы подключаете к целевому заголовку ICSP с помощью прилагаемого кабеля.
Джемпер «Slow Clock». Если вы закоротите эту перемычку, USBasp будет работать на более низкой скорости для максимальной совместимости с некоторыми целями. Обычно не требуется, если вы не программируете новые AVR (см. Ниже.)
Светодиод состояния. Показывает состояние питания, записи и активного состояния.
Подключение оборудования
1. Отключите вашу целевую плату от других источников питания, если у вас нет особых требований к ее автономному питанию во время программирования.
2. Подключите USBasp к компьютеру с помощью прилагаемого USB-кабеля.
3. Подключите USBasp к целевой плате с помощью прилагаемого 6-жильного кабеля.
ПРЕДУПРЕЖДЕНИЕ: Обратите особое внимание на ориентацию кабеля.Вы увидите, что на одной стороне кабеля есть красная полоса, указывающая, какой конец является контактом 1. USBasp имеет точку рядом с заголовком ICSP на конце контакта 1, а на целевой плате также должна быть маркировка рядом с контактом 1. Подключите кабель так, чтобы сторона с красной полосой находилась ближе всего к контакту 1 на USBasp и мишени. Для большинства мишеней это станет естественным, если вы положите доски так, чтобы они смотрели на вас, как показано ниже.
Драйверы для Windows
ПользователиLinux и OS X могут пропустить этот раздел (хотя, если вы пользователь Linux, обязательно прочтите раздел «Разрешения в Linux» внизу этой страницы.)
Windows требует универсального драйвера USB для связи с USBAsp. Инструмент под названием Zadig упрощает установку этого драйвера.
- Отключите USBasp.
- Загрузите Zadig с http://zadig.akeo.ie/. Обратите внимание, что существуют отдельные версии для Windows XP или более новых версий Windows.
- Запустите Zadig, а затем подключите USBasp. Отмените все всплывающие диалоговые окна Windows.
- Настройте диалог Zadig следующим образом, проверьте выделенные поля:
- «Usbasp» выбран в главном раскрывающемся списке (это должно появиться автоматически, когда вы подключаете USBasp.Если вы не видите его в списке, выберите «Список всех устройств» в меню «Параметры» в Zadig.
- libusb-win32 в качестве типа драйвера (используйте маленькие стрелки вверх / вниз, чтобы выбрать эту запись.)
- Нажмите «Установить драйвер» и дождитесь завершения установки драйвера.
- Вы закончили с Zadig, пора использовать USBasp!
Использование из Arduino IDE
Важное примечание: В отличие от многих других плат и программаторов, USBasp не отображается как последовательный порт USB.Поэтому порт не указан в разделе «Инструменты> Последовательный порт» в Arduino IDE или в других местах. Это нормально.
Установка нового загрузчика
IDE Arduino включает загрузчики для различных поддерживаемых плат. Подключите компьютер, USBasp и цель, как показано выше, затем запустите IDE и используйте следующие пункты меню.
1. Выберите Инструменты > Доска и выберите тип платы, который соответствует вашей цели.
2. Выберите «Инструменты »> «Программатор » и выберите «USBasp» в качестве типа программатора.
3. Выберите Инструменты > Записать загрузчик . Затем IDE Arduino установит загрузчик на вашу целевую плату.
Установка эскиза
Обычно скетчи устанавливаются через порт USB на вашем Arduino, но вы также можете установить их напрямую, используя USBasp, который обходит загрузчик и USB-соединение. В открытом эскизе используйте следующие пункты меню.
1. Выберите Инструменты > Доска и выберите тип платы, который соответствует вашей цели.
2. Выберите «Инструменты »> «Программатор » и выберите « USBasp » в качестве типа программатора.
3. Выберите файл > Загрузить с помощью программатора . Затем IDE Arduino скомпилирует и загрузит ваш эскиз на целевую плату.
Использование из командной строки
Средство командной строки avrdude также можно использовать для программирования AVR. Это более сложный инструмент, чем программирование через IDE Arduino, но гораздо более гибкий.
Аргумент программиста для использования avrdude с USBasp — -c usbasp
.
Вы можете установить avrdude для Windows как часть пакета WinAVR или для OS X как часть AVR CrossPack. Пользователи Linux обычно могут установить его как часть системы управления пакетами своего дистрибутива.
Например, чтобы использовать avrdude для чтения статуса ATMega328P на плате Freetronics Eleven:
avrdude -p m328p -c usbasp -v
Инструменты графического программирования
Для автономных инструментов программирования на основе графического интерфейса пользователя в Windows, ознакомьтесь с Khazama AVR Programmer или eXtreme Burner — AVR.eXtreme Burner также работает в Linux.
Программирование новых AVR
По умолчанию USBasp программирует цель с «тактовой частотой программирования» 375 кГц. Это обеспечивает быстрое программирование, но работает только в том случае, если AVR chp настроен на тактовую частоту не менее 1,5 МГц.
Совершенно новые микросхемы AVR обычно поставляются с заводскими настройками с внутренней тактовой частотой 1 МГц. Это устанавливается как часть «предохранителей» внутри микроконтроллера. Если вы используете IDE Arduino, она будет перепрограммирована для использования внешнего кристалла 16 МГц при загрузке загрузчика Arduino.
Симптомы попытки запрограммировать AVR с чрезмерно быстрым программированием часов такие же, как если бы AVR вообще не был подключен:
avrdude: error: programm enable: target не отвечает. 1
avrdude: инициализация не удалась, rc = -1
Дважды проверьте соединения и попробуйте еще раз, или используйте -F для отмены
этот чек.
Эту проблему можно решить двумя способами.
Установить перемычку «Медленные часы»
Это лучший вариант, если вы используете Arduino IDE для программирования прошивки на новые AVR.
Перемычка через перемычку медленной тактовой частоты снижает тактовую частоту программирования до 8 кГц, что достаточно медленно для AVR, работающих на частоте всего 32 кГц.
Вы можете установить перемычку в два отверстия перемычки, или, если вы используете ее только изредка, вы можете обойтись, просто используя кусок проволоки или даже пару пинцетов!
Установить часы в программе
Это лучший вариант, если вы используете avrdude в командной строке. Опция Avrdude -B
позволяет вам установить тактовую частоту программирования из программного обеспечения, перемычка не требуется!
Опция -B 4
устанавливает скорость программирования 187.5 кГц, все еще быстро, но достаточно медленно для нового AVR с частотой 1 МГц.
Например, чтобы прочитать конфигурацию нового ATTiny85:
avrdude -p t85 -B 4 -c usbasp -v
Если вам нужны еще более медленные часы программирования, просто продолжайте увеличивать -B
. Максимальное значение -B 64
дает программируемую тактовую частоту 8 кГц, как если бы была установлена перемычка «медленной тактовой частоты».
Обратите внимание, что -B
полностью игнорируется, если установлена перемычка «медленных часов».
Разрешения в Linux
ПользователиLinux могут столкнуться с ошибкой типа «Ошибка отправки контрольного сообщения : операция не разрешена » при попытке использовать USBAsp. Это связано с тем, что по умолчанию обычные пользователи не имеют доступа к USB-устройствам.
Временный обходной путь — запустить операцию от имени пользователя root с помощью sudo или su. Гораздо лучшее решение — сообщить Linux, что вы хотите, чтобы всем пользователям был разрешен доступ к USBAsp.