8-900-374-94-44
[email protected]
Slide Image
Меню

Прошивка usbasp: Обновление прошивки USBASP USBISP AVR Programmer / Блог им. GhostPVV / Сообщество EasyElectronics.ru

Обновление прошивки USBASP USBISP AVR Programmer / Блог им. GhostPVV / Сообщество EasyElectronics.ru
Недавно для обучения работе с Atmel AVR микроконтроллерами был куплен один из самых простых и недорогих программаторов USBASP USBISP AVR Programmer вот такого типа:
USBASP USBISP AVR Programmer

Данный программатор является одним из вариантов схемы проекта USBasp, вот оригинальный сайт:
USBasp

К слову, мне достался вариант ATMega8L, работающий в режиме разгона, на частоте 12МГц. По документации, должно быть не более 8МГц.

Не вдаваясь в подробности, решил обновить прошивку:
— взял прошивку usbasp.2011-05-28 с вышеуказанного сайта;
— замкнул на плате контакты J2;
— подключил 10pin разъем к другому программатору;
— залил прошивку;
— выставил fuse для atmega8: HFUSE=0xc9 LFUSE=0xef
Программатор определился в системе, но перестал видеть подключенные к нему контроллеры.

Процесс поиска решения проблемы описан здесь:
Форум

В итоге решение проблемы следующее:
— на всякий случай удалил два резистора R9 (270 Ом) и R10 (100 Ом), так как не совсем понимаю для чего необходимо подтягивать RXD и TXD сигналы к GND, да ещё при помощи резисторов столь малых номиналов;

— необходимо припаять перемычку с PC2(ADC2) на GND.

После вышеуказанных манипуляций программатор снова в строю.

Для счастливых обладателей вышеуказанного программатора — желаю учиться на чужих ошибках, для остальных — позволю себе напомнить главное правило, которое может помочь во многих житейских ситуациях: «работает — не трожь!» 🙂

Надеюсь кому-нибудь данная информация поможет.

P.S. Номиналы в схеме вышеуказанного программатора наиболее близки к указанным в следующей схеме:
USB программатор AVR — USBAsp

Содержание

Как обновить прошивку USBAsp через Arduino Uno

Прошивка USBASP

Я купил программатор USBasp на Dx.com чтобы использовать с Arduino IDE для прошивки Arduino Pro mini.

Всё работало нормально, но выдавало вот такую ошибку:



〉 avrdude: warning: cannot set sck period. please check for usbasp firmware update

В-общем требовалось обновление прошивки программатора USBasp.

Гугление в Интернете выдало вот такое решение:

    1. Качаем обновление прошивки отсюда.
    2. Распаковываем, и лучше сразу положить новую прошивку в папку с avrdude (у меня это было здесь: C:\Program Files (x86)\Arduino\hardware\tools\avr\bin).
    3. Подключаем USBasp программатор к Arduino Uno по схеме:
      arduino-usbasp
    4. На программаторе ставим джампер в позицию J1 (для этого я воспользовался скрепкой). Стоит отметить, что программаторы бывают разные, а значит и джампер может отличаться:
      USBasp2
    5. Подключаем Arduino Uno, запускаем Arduino IDE, выбираем ArduinoISP и загружаем
      2016-01-26 23-35-49 Скриншот экрана
    6. И нужно запомнить com-порт, к которому подключена Arduino Uno (Инструменты ⇒ Порт).
  1. Запускаем командную строку. Переходим в папку C:\Program Files (x86)\Arduino\hardware\tools\avr\bin. Проверяем подключение к USBasp, для этого вводим следующую команду: avrdude -C ../etc/avrdude.conf -c avrisp -P COM2 -b 19200 -p m8 -v (замените com-порт на ваш). Если всё в порядке, Вы получите вот такой результат:
    Connect USBasp
  2. Теперь прошиваем наш программатор вот этой командой: avrdude –C ../etc/avrdude.conf –c avrisp –P COM2 –b 19200 –p m8 –U flash:w:usbasp.atmega8.2011-05-28.hex и должны получить вот такой результат:
    Flash
  3. Поздравляю! Теперь можно использовать программатор по назначению!

 

ПЕРЕПРОШИВКА USBISP В USBASP

Примерно года два назад я заинтересовался программированием микроконтроллеров AVR. Изучение шло не слишком быстро, так как тема достаточно сложная, но все-таки, мной были собраны и доведены до ума несколько устройств в корпусах, с применением микроконтроллеров семейства Tiny. За это время успел обзавестись двумя программаторами, один собрал сам, это простой и всем известный программатор Громова, второй заказал с Али экспресс, по цене 3 доллара это программатор USBISP. 

Программатор USBISP новая версия

Для того чтобы найти и заказать его на Али-экспресс, достаточно набрать в строчке поиска USBASP USBISP. Этот программатор шел сразу в алюминиевом корпусе, аналогичном корпусе флешки, в комплекте с ним был шлейф для программирования 10 Pin. Про перепрошивку его в полноценный USBASP мы и поговорим в этой статье. Для чего это делать и в чем отличия этих программаторов, USBASP и USBISP ? Дело в том, что Китайский программатор работает только со своей оболочкой, Prog ISP, и не поддерживается, в отличие от USBASP программой AVR Studio. Несмотря на то, что Prog ISP оболочка, идет на английском языке, пользоваться ей менее удобно, чем оболочкой для USBASP Khazama. 

Программатор без корпуса

Для USBASP существуют и другие графические оболочки, помимо Khazama работающие с консольным AVR DUDE. От себя скажу, что разница в удобстве пользования после перепрошивки сильно заметна. Например, в той же Prog ISP неудобное выставление фьюзов, с этим у Khazama полный порядок. Можно выбирать запись конфигурации фьюзов для МК по умолчанию одним кликом есть возможность выставления фьюзов, как галочками, так и из выпадающего списка. 

Внешний вид программатор юсб

Также присутствует функция Auto programm,  в которой можно установить порядок действий, запускаемых впоследствии в один клик. Например, стирание файла, последующая запись и верификация. Есть и другие функции на выбор. 

KHAZAMA рабочее окно

Перейдем к делу, что же нам требуется сделать для того, чтобы перепрошить программатор? Программаторы могут идти в двух вариантах, в алюминиевом корпусе, и без корпуса. Если со вторым вариантом все понятно, то с первым, если программатор в корпусе, нужно аккуратно стянуть его в сторону разъема USB на программаторе. Снимается он довольно легко, и с этим проблем быть не должно. На контакты разъема программирования с обратной стороны будет наклеена резиновая изоляционная прокладка, отклеиваем её, она нам будет мешать при пайке. При сборке в корпус не забываем приклеить её обратно, во избежание замыкания корпуса с разъемом для программирования. Далее переворачиваем и смотрим на программатор с обратной стороны. Вы должны увидеть в зависимости от разводки вашей платы следующее:

Места где нужно удалить припой

Но возможно существуют и другие варианты разводки программаторов у китайцев. Что нам требуется здесь сделать? Требуется удалить припой с двух или трех контактов на плате программатора, в зависимости от разводки вашей платы. По информации с того сайта по которой я перепрошивал свой программатор, была представлена следующая разводка:

Места где нужно удалить припой программатора

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

Перемычка на программаторе

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

Места где нужно удалить припой на моей версии

Как мы видим на фото выше, перемычка из вывода резистора уже запаяна мной к контактам самопрограммирования программатора UP. На фото ниже можно убедиться в этом. Заодно мы можем видеть, что на контактах А и В отсутствует припой.

Новая версия программатора фото

Припой удаляется с помощью демонтажной оплетки. Мы вытягиваем кусочек оплетки, обмакиваем его в спирто канифольный флюс, и, прогревая жалом паяльника, кладем на контакт, придавливая сверху паяльником. В результате припой с контактов должен полностью перейти на оплетку так, чтобы между ними не было замыкания. В чем и нужно убедиться, прозвонив мультиметром в режиме звуковой прозвонки. Для использования совместно с программаторами  USBISP и USBASP мной был сделан переходник, который оказался удобен для программирования микроконтроллеров при отлаживании на цанговых макетных платах, и который я использовал для программирования микроконтроллера этого программатора:

Переходник для макетной платы

К чему я писал в начале статьи о программаторе Громова? К тому, что для прошивки нам потребуется любой другой программатор. Можно точно такой же USBISP. То есть, если у вас нет второго программатора, о перепрошивке USBISP в USBASP можно забыть. А можно спаять по такому случаю программатор Громова, и прошить им микроконтроллер этого программатора. Схема программатора Громова простая, и детали необходимые для сборки, довольно дешевые. Допустим, у вас есть второй программатор. Тогда нам нужно подключить свой программатор к шлейфу программатора USBISP в соответствии с рапиновкой разъема. Её мы можем видеть на следующем рисунке:

Распиновка шлейфа программатора

Контакты в шлейфе идут одинаково с обоих концов. Нам потребуются соединить программаторы между собой, аналогично обычному прошиванию микроконтроллера. То есть выводы VCC, GND, MISO, MOSI, RESET и SCK обоих программаторов нужно соединить. Дополнительное питание, если прошиваем через USB программатор, USBISP, USBASP или другой с которого приходит питание с USB на прошиваемый микроконтроллер, можно не подавать. Если прошиваем через программатор Громова, то питание нужно подать. После прошивания выпаиваем перемычку, замыкаем те два или три контакта, с которых мы удаляли припой капелькой припоя, и, не собирая в корпус, подключаем наш новоиспеченный программатор USBASP к USB порту компьютера. Операционная система должна запросить драйвера. Появится следующее окно:

Определение USBASP в системе

Соглашаемся с установкой и указываем вручную путь к папке libusb_0.1.12.1, которую можно будет скачать в архиве в конце статьи. В ней находится драйвер для USBASP. После установки в системе появится устройство USBASP:

Диспетчер устройств установлены драйвера программатора

После того, как убедимся, что все заработало, программатор определился, приклеиваем изоляционную резинку назад на место, и собираем программатор. В одной из статей про оболочку Khazama, было написано, что иногда Khazama работает некорректно без установки дополнительной программы – фильтра libusb-win32-devel-filter-1.2.6.0. Так ли это или нет — не знаю, у меня эта программа была установлена. Скачать её также можно будет в архиве в конце статьи. Сначала Khazama действительно отказывалась работать с моим программатором. Погуглив по этому вопросу на различных форумах, нашел информацию, что нужно установить частоту в программе 187.5 килогерц, что и сделал. Проблема сразу пропала. Эта функция есть только в свежих версиях Khazama, в частности Khazama AVR Programmer 1.7. Скачать её также можно в архиве в конце статьи.

Khazama AVR Programmer

Как уже писал выше про установку фьюзов, здесь с этим все отлично, можно, как выбирать из ниспадающего списка, так и устанавливать вручную галочками. 

Выставление фьюзов в программе Khazama

Я прошивал Tiny-2313, но эта оболочка поддерживает, помимо этого микроконтроллера, еще множество других типов МК. После запуска программы нам нужно выбрать наш микроконтроллер из списка, у меня как мы видим на скрине, выбран Tiny2313. Также в ней есть функция размещать окно поверх остальных, это расположенная справа с краю пиктограмма канцелярской кнопки. Прошивка для микроконтроллера программатора MEGA-8, HEX файл, также прикреплена в общем архиве. Фьюзы при прошивке изменять не нужно. Желаю всем удачной прошивки! Автор AKV.

описание 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) Один программатор к тому же можно шить другим, переставив перемычку на ведомом устройстве.

Технические характеристики

Поддерживаемые ОС: Windows, MacOS, Linux
Процессор: Atmega8A
Интерфейс подключения к ПК: USB
Интерфейс программирования: ISP (внутрисхемное)
Напряжение программирования: 5В или 3.3В (в зависимости от положения перемычки JP2)
Частота программирования: 375кГц (по умолчанию) и 8кГц (при замкнутой перемычке JP3)
Поддерживаемые контроллеры: все AVR с интерфейсом SPI
Описание: ссылка

Список поддерживаемых микроконтроллеров

ATmega серия

ATmega8 ATmega48 ATmega88 ATmega168 ATmega328
ATmega103 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 — замыкается в случае обновления прошивки самого программатора
JP2 — тройная перемычка, здесь выбирается, какое напряжение будет подаваться на прошиваемый микроконтроллер, либо 5В (левое положение) и 3.3В (правое положение)
JP3 — если её замкнуть, то программирование контроллера будет происходить с пониженной частотой, однако китайцы не стали сюда впаивать гребёнку, т.к. на данной прошивке она не требуется
Программатор, как можно заметить, построен на базе Atmega8 с кварцем на 12МГц. Самый правый верхний элемент, подписанный F1, с перевёрнутой цифрой 4 — самовосстанавливающийся предохранитель, защищает USB-порт ПК/ноутбука, если на прошиваемой плате вдруг произошло короткое замыкание. Под перемычкой JP2 находится LDO-стабилизатор 662К, понижающий напряжение с 5В до 3.3В, если перемычка установлена в правое положение.

Установка драйверов

Чтобы начать пользоваться программатором, необходимо сперва поставить на него драйвера. Вставляю любой программатор в USB-порт ПК, звучит сигнал о новом оборудовании, на самом девайсе горит светодиод, но автоматического поиска драйверов не происходит.
примечание. перед установкой драйвера необходимо отключить проверку цифровой подписи в Windows
1) Скачать драйвера, распаковать в удобное место.
2) Зайти в «Диспетчер устройств», например навести курсор на главную кнопку (Win10), нажать ПКМ и выбрать пункт «Диспетчер устройств».

3) В ветке «Другие устройства» можно увидеть неопознанное устройство USBASP с оранжевым треугольничком — > навести на него курсор, нажать ПКМ -> «Обновить драйверы...»

4) Указать путь до раннее распакованной папки с драйверами — «libusb_1.2.4.0», нажать «ОК»

5) «Всё равно установить этот драйвер»

6) Готово, теперь оранжевый треугольничек пропал, драйвера поставлены

Прошивка собрата

Мне уже было известно до этого, что китайцы продают эти программаторы с не самой свежей прошивкой. Решил сперва обновить прошивку на одном из них, а затем ради интереса сравнить оба программатора в работе. Для этого соединяю шлейфом оба устройства, на ведущем (который вставляю в USB-порт) никакие перемычки не трогаются, а на ведомом программаторе (на котором будем обновлять прошивку) я переставил перемычку с JP2 на JP1:

Захожу в программу 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 (Atmega 168, 3.3V/8MHz)

В этом случае выводы программатора соединяются с выводами платы Pro Mini, как проиллюстрировано на схематичном рисунке ниже. Перемычки не переставляются, т.е. остаётся в положении 5В.
Несмотря на то, что плата Pro Mini подписана как 3.3В, на 168-ю Атмегу можно подавать и 5В. Стабилизатор AMS1117 на 3.3В кстати вообще выпаян из платы.

AVRDUDE PROG 3.3
Консольная программа для прошивки микросхем, своего графического интерфейса не имеет, в стоке работает из командной строки, но энтузиастами было написано немало оболочек на неё, для удобства работы с ней. Одна из таких оболочек называется AVRDUDE PROG, созданная русскоязычными разработчиками. Эта оболочка, на мой взгляд удобна как раз для Flash-перепрошивки МК. После её запуска выбирается контроллер, в данном случае Atmega168 и тип программатора — USBasp. После чего можно заниматься записью/считыванием памяти. Что на заводской прошивке, что на новой — в обоих случаях никаких проблем с общением с Atmega168 не возникло. Прошил ради интереса ардуиновский стандартный blink-скетч, экспортированный в бинарный HEX-файл. Всё гладко.



Khazama AVR Programmer
Здесь достаточно выбрать микроконтроллер из выпадающего списка и можно уже работать с памятью/битами.
Однако если на самом программаторе установлена заводская прошивка, периодически будут сыпаться ошибки, о чём выше уже было упомянуто, на новой прошивке — данных ошибок уже нет.

Связь с контроллером ATtiny13A в корпусе SOIC8

Соединение согласно схеме ниже. Но тут всё немного интереснее.

Поскольку голый чип в 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 написать например код мигания светодиода с частотой раз в секунду и в макросе прописать:
#define f_cpu 9600000
то загрузив код на Attiny13, светодиод будет мигать очень медленно?
— посмотрим на предпоследнюю строчку, где 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» контроллера.

Дополнение по фьюзам программатора

Из документа READMI, идущего в комплекте с драйверами и прошивкой для USBASP, позже выяснилось, что разработчик рекомендует выставить определённую конфигурацию фьюз-битов, определяющих работу внешнего резонатора.
Минусом 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

«Перепрошить» китайский программатор USBasp может даже новичок. Для этого достаточно:

1. Перевести USBasp в режим, разрешающий программирование встроенного микроконтроллера!  Обычно это делается установкой соответствующей перемычки или замыканием определенных контактов на плате!

Например, у программатора на фото - это контакты, отмеченные линией!

2. Подключить USBasp к любому программатору, который поддерживает программирование AVR контроллеров!
Выходы контактного разъема USBasp должны быть соединены в точности так же, как и при «прошивке» обычного микроконтроллера! То есть:

GROUND (GND) - общий провод    GND <-->GND

VCC (питание) должно быть не больше 5V!   VCC <---> VCC

SCK (serial clock)  - последовательная синхронизация! Импульсы генерирует MASTER (ведущее устройство)  SCK <---> SCK

MOSI (MASTER OUT SLAVE IN) – это выход сигнала с MASTER (ведущего) устройства на SLAVE (ведомое)

MISO (MASTER IN SLAVE OUT) – вход для ведущего устройства, на который сигнал приходит с выхода ведомого!

RESET (сброс) – обратите внимание именно на этот контакт поступает сигнал для начала программирования! По умолчанию вывод RESET встроенного в USBasp контроллера не подключен – подключается он замыканием соответствующих выводов (установкой перемычки) см. фото!

Внимание, если ваш  USBasp работает нормально, не спешите его сразу «перепрошивать» – сделайте вначале резервную копию «прошивки»!
Перед «прошивкой» желательно полностью стереть чип, не изменяя FUSE Bits!
Фьюз биты AVR микроконтроллера – это специальные ячейки памяти для конфигурации его работы. Помните, что неправильная установка даже одного фьюз бита, может привести к тому, что контроллер начнет работать совсем не так, как ожидалось, и возможно даже перестанет реагировать на команды с обычного ISP программатора!
Если «прошить» USBasp у вас не получается, скорее всего:
- неправильно подсоединены выводы – попробуйте поменять местами MOSI и MISO, предварительно убедившись, что всё соединения имеют надежный контакт!
- неправильно выбран тип микроконтроллера – выберите его вручную!

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

Стоит также заметить, что для «перепрошивки» USBasp не обязательно использовать программатор – его можно заменить даже дешевой платой Arduino, поддерживающей USB! Например, китайским аналогом Arduino Nano! Разумеется, предварительно в плату Arduino необходимо загрузить скетч (программу) «Arduino ISP».

Прошивка микроконтроллеров Atmega через USBasp

 Прошивка микроконтроллеров Atmega без arduino через USBasp:

Существуют простые и дешевые программаторы для прошивки м/к Atmega ,которые поддерживает среда Arduino IDE- необходимо просто выбрать соотвествующий программатор USBasp в настройках Arduino IDE.USBasp  необходим,если вы просто прошиваете микроконтроллеры Amtel.Программатор основан на м/к Atmega 8 и использует програмный USB.

Цена такого программатора на ebay.com около 3$.Он имеет выход питания 5v/3.3 v(переключается перемычкой JP1) ,а так же соотвествующие выводы SCK,MISO,MOSI,RESET для подключению напрямую к микроконтроллеру.На картинке показаны выводы на самом программаторе - на разъеме шлейфа соответственно будет зеркально относительно ключа (у 5 вывода),не забывайте об этом.

Для работы в операционной системе Windows необходимы  драйвера.Linux же не требует их.

Данный программатор легко превратить в друое устройство,например в I2C-USB переходник , USB контроллер с GIO или контроллер чтения термодатчиков DS18B20.

 Программирование через USBasp в Arduino IDE

Для программирования микроконтроллеров,подключенных через USBasp в Arduino IDE необходимо выбрать его в программе согласно скриншоту.

 

 

 

 

Программирование осуществляется через меню файл,выбрав пункт 

 "Загрузить с помощью программатора".Не забываем выбрать микроконтроллер в меню "сервис" ->"плата".

 

 

 

 

Программирование через USBasp утилитой avrdude

Утилиту avrdude можно найти в папке /hardware/tools/ в дистрибутиве Arduino IDE или скачать в интернете.

Для того,чтобы залить прошивку в микроконтроллер необходимо выполнить команду:

 avrdude -c usbasp -p m8 -U flash:w:имя_файла.hex . где -p m8 - это модель микроконтроллера.В данном случае atmega 8.

Дополнительно так же можно установить фьюзы дописав :-U hfuse:w:0xХХ:m -U lfuse:w:0xХХ:m .Где ХХ - соотвествующие фьюзы микроконтроллера ,необходимые для конкретной прошивки.

Обычно прошивку можно осуществить через команду make flash ,если Вы имеете исходный код прошивки и установленную WinAVR.

В других средах программирования выбор программатора осуществляется через соответсвующее меню программы.

 

Обратите внимание,

Что на некоторых микроконтроллерах с завода,например на серии Attiny включен по умолчанию фьюз CKDIV8 ,который устанавливает делитель на 8 и из-за этого USBasp не программирует такие микроконтроллеры пока не установить перемычку JP3 на USBasp.Для настройки фьюзов воспользуйтесь калькулятором фьюзов чтобы выставить нужные настройки , в том числе выключить данный делитель.Фьюзы прошиваются через avrdude командой  avrdude -c usbasp -p имя_м/к -U lfuse:w:0xХХ:m .

Пример для установки фьюзов attiny85 для внутреннего генератора 8мгц с выключенным делителем на 8 : 

avrdude -c attiny85 usbasp -p -U lfuse:w:0x62:m

При программировании через Arduino IDE можно установить нужные фьюзы выбрав в меню "записать загрузчик",выбрав перед этим необходимый микроконтроллер.

 

 

"Допиливание" программатора.

или исправляем ошибку: avrdude: warning: cannot set sck period. please check for usbasp firmware update

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

Что для этого нужно ? Вы можете использовать плату arduino как программатор или использовать другой USBasp программатор.Для программирования используются те же выводы SCK,MISO,MOSI,RESET.

Порядок действий для прошивки через arduino:

1. Подключаем выводы SCK,MISO,MOSI,RESET к Arduino согласно инструкции.

2. Установавливаем перемычку self programming (на фото обозначена как JP2),обычно место для перемычки не распаяно.

3. Качаем последнюю версию прошивки usbasp.2011-05-28 тут и кидаем в папку путь_к_папке_ардуины_/hardware/tools/.

4. Перейдем в консоль (cmd или bash) Вашей операционной системы в папку через команду cd путь_к_папке_ардуины_/hardware/tools/ и далее вводим команды для Windows,не забывем указать верный порт,на котором подключена Arduina:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -v  

Программа выдаст сообщение ,где покажет состояние фьюзов и другую информацию:

Если Вы видите такие же сообщения- значит подключено все правельно и можно прошивать командой:

avrdude -C avrdude.conf -c avrisp -P COM1 -b 19200 -p m8 -U flash:w:usbavr.hex -U lfuse:w:0xef:m -U hfuse:w:0xc9:m

Успешная прошивка:

 

 

Для прошивки из Linux все аналогично, заменяется часть строки:

 

./avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 ...

 

Порядок действий для прошивки через другую USBasp:

Прошивка аналогична прошивке обычного микроконтроллера: подключаем выводы SCK,MISO,MOSI,RESET один в один шлейфом идущим в комплекте с программатором.Не забываем про перемычку JP2.

Указываем опцию -c usbasp вместо -c avrisp

Смена прошивки в программаторе USBasp

Существуют простые и дешевые программаторы для прошивки м/к Atmega,например USBasp, цена такого программатора на ebay.com около 3$. 


Доработка программатора USBasp

для устранения ошибки: avrdude: warning: cannot set sck period. please check for usbasp firmware update


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

Что для этого нужно ? Вы можете использовать плату arduino как программатор или использовать другой USBasp программатор.Для программирования используются те же выводы SCK,MISO,MOSI,RESET.

А) Порядок действий для прошивки через arduino:

1. Подключаем выводы SCK,MISO,MOSI,RESET к Arduino согласно инструкции.

2. Установавливаем перемычку self programming (на фото обозначена как JP2),обычно место для перемычки не распаяно.

3. Качаем последнюю версию прошивки usbasp.2011-05-28 тут и кидаем в папку путь_к_папке_ардуины_/hardware/tools/.

4. Открываем консоль Linux, вводим проверочную команду (не забывем указать верный порт, на котором подключена Arduina !!!):

avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 -b 19200 -p m8 -v  

Программа выдаст сообщение, где покажет состояние фьюзов и другую информацию:

Если Вы видите такие же сообщения - значит подключено все правильно, можно прошивать командой:

avrdude -C avrdude.conf -c avrisp -P /dev/ttyUSB0 -b 19200 -p m8 -U flash:w:usbavr.hex -U lfuse:w:0xef:m -U hfuse:w:0xc9:m


Успешная прошивка:

  Б) Порядок действий для прошивки через другую USBasp:

Прошивка аналогична прошивке обычного микроконтроллера: подключаем выводы SCK,MISO,MOSI,RESET один в один шлейфом идущим в комплекте с программатором. Не забываем про перемычку JP2.

Указываем опцию

 -c usbasp вместо -c avrisp в командах приведенных выше.

___



http://homes-smart.ru/index.php/oborudovanie/arduino/proshivka-mikrokontrollerov-atmega-cherez-usbasp

USBasp - USB-программатор для контроллеров Atmel AVR

USBasp - это OpenSource, это бесплатно!
Нравится это? Вы можете поддержать через PayPal:

€ 5

€ 10

€ 15

USBasp - внутрисхемный программатор USB для контроллеров Atmel AVR.Это просто состоит из ATMega88 или ATMega8 и нескольких пассивных компонентов. Программист использует драйвер USB только для прошивки, специальный контроллер USB не требуется.

Особенности

  • Работает под несколькими платформами. Linux, Mac OS X и Windows тестируются.
  • Никаких специальных контроллеров или компонентов smd не требуется.
  • Скорость программирования до 5 Кбайт / с.
  • Опция
  • SCK для поддержки целей с низкой тактовой частотой (<1,5 МГц).
  • Запланировано: последовательный интерфейс к цели (например, для отладки).

Загрузить

Прошивка и схема

Следующие пакеты включают схему и прошивку.
usbasp.2011-05-28.tar.gz (519 кБ) Поддержка TPI (будет использоваться в следующей версии avrdude), поддержка программистов с ATMega88 и ATMega8.
usbasp.2009-02-28.tar.gz (260 кБ)
usbasp.2007-10-23.tar.gz (172 кБ)
usbasp.2007-07-23.tar.gz (176 кБ)
usbasp.2006-12-29.tar.gz (118 кБ) Поддерживает программистов с ATMega48 и ATMega8.
usbasp.2006-09-16.tar.gz (116 кБ) Новый VID / PID!
usbasp.2005-11-14.tar.gz (175 кБ)
usbasp.2005-07-03.tar.gz (166 кБ)
usbasp.2005-04-21.tar.gz (169 КБ)

Пожалуйста, обратитесь к Readme.txt для получения подробной информации о сборке, установке и использовании USBasp.

Драйверы

В Linux и MacOS X драйвер ядра не требуется. Для Windows требуется драйвер для USBasp. Пожалуйста, используйте этот инструмент установки драйвера для Windows (см. Также: en успешной установки в Windows 10):
en Zadig - установка драйвера USB стала проще

Программное обеспечение

Оборудование

электрическая схема


Partlist

Партнерский номер Стоимость Рейхельт №
C1 4,7u RAD 4,7 / 35
C2 100n X7R-5 100N
C3, C4 22p KERKO 22P
D1, D2 3V6 стабилитрон ZF 3,6
CON1 USB-B USB BW
CON2 10pol WSL 10 Вт
IC1 ATmega8-16 ATMEGA 8-16 (не запрограммировано!)
JP1, JP2 2pol 2,54 мм SL 1X36G 2,54
LED1 3 мм LED зеленый LED 3MM 2MA GN
LED2 3 мм LED красный LED 3MM 2MA RT
Q1 12 МГц 12,00-HC49U-S
R1, R2 68 1/4 Вт 68
R3 2,2к 1/4 Вт 2,2к
R4, R5, R6, R7 270 1 / 4W 270
R8 10k 1/4 Вт 10k
R9, R10 1k 1 / 4W 1k
M1, M2 Перемычка JUMPER 2,54GL SW
M3 Розетка 28S GS 28-S
M4 Кейс TEKO 10007
M5 PCB -

Макеты печатных плат пользователя

Вот список протестированных макетов печатных плат.Если вы разработали свою собственную печатную плату, пожалуйста, дайте мне знать.

usbasp_single_side.t3001.zip
Томас Фишл
Односторонняя печатная плата, TARGET 3001! файл макета
Размер: 90х40 мм (оптимизировано для случая Hammond 1591ATBU)

lv_usbasp.tar.gz
Павел Шрамовский (11/2007)
С Низковольтный интерфейс .
Односторонняя печатная плата, файлы макетов EAGLE, некоторые компоненты SMD

Бернхард Валле
Двухсторонняя печатная плата, файлы макетов EAGLE, список деталей с номерами заказов для Reichelt.де и Конрад.де
Размер: оптимизирован для случая Hammond 1591ATBU

http://thomaspfeifer.net/atmel_usb_programmer.htm
Томас Пфайфер
Односторонняя печатная плата, файлы макетов в формате PDF, компоненты SMD

Томаш Островский
Файлы макетов односторонней печатной платы, PDF и EPS, только четыре детали 0805 SMD, остальные дискретные компоненты

USBasp_CH.почтовый индекс
Кристиан Хейгемейр
Односторонняя печатная плата, с некоторыми компонентами SMD 0805, PDF-файлы
С дополнительными кнопками для сброса и отключения цели

USBasp.сЧ, USBasp.pcb
ComponentSide.pdf, TopSide.pdf, Schematics.pdf
Журов Павел
Односторонняя печатная плата, формат P-CAD 2002 и файлы PDF
Крестовина TXD и RXD добавлены для разъема ISP

usbasp_gr.RAR
Я.А. де Гроот
Доска односторонняя (формат EAGLE), размеры 3 на 8 см и использует только обычные компоненты.

usbasb_mg.zip
Матиас Гёрнер
Односторонняя печатная плата, Eagle-формат, с PS / PDF-файлами
встроенные розетки для целевых чипов ATmega8 и ATmega32

Тарбол с макетом
Ханнес Эстлунд
Двухсторонняя печатная плата, SMD компоненты, очень маленькая

Сергей Богданцев (01/2010)
3.Версия 3V, только ATMega48. Односторонняя печатная плата, формат компоновки ExpressPCB + гнездовая плата для различных AVR. Без будущего последовательного интерфейса чип изначально должен быть запрограммирован другим программистом.

Дизайн Eaglefiles (sch / brd) и CAD (dxf)
Hans Hafner, HTL Mössingerstrasse-Klagenfurt, Österreich, Hans.hafner (at) htl-klu (dot) at
(01/2010)
Фрезерный станок с ЧПУ (имеется файл DXF), компоновка Eagle, только несколько деталей SMD


Различные версии USBasp: Простая сборка версий не smd, smd и очень маленький USBasp
Свен Хедин (01/2011)
Орел файлы доступны.

USB-ключ AVR программатор
Фабио Балтьери (09/2011)
Очень маленький USB-ключ, как размеры. SMD запчасти.

AVR ISP Programmer
Ярослав Вадель (04/2012)
Маленький программистSMD запчасти.

Целевой проект и PDF-файлы (макет / схема)
Мариус Шефер (09/2013)

Миниатюрная плата USB с USB-совместимой прошивкой
Стефан Бервольф (04/2014)

USBasp на макетной плате с разъемом для дочерних плат контроллера.
Фабиан Хаммель (11/2018)

Тьяарт ван Асвеген разработал плату SMD: файлы DIP TRACE и GERBER.
Тьяарт ван Асвеген (09/2019)

Многофункциональный (например,грамм. различные уровни напряжения, встроенный преобразователь USB в последовательный порт, разъем USB-C) USBasp-совместимый дизайн. Программист AVR Github проекта.
Брайан Пепин (12/2019)

USBasp с разъемом ZIF и сквозными отверстиями.KiCad дизайн на Github
Бруно (04/2020)

Ссылки

en http://www.obdev.at/products/avrusb/ Только для прошивки AVR USB драйвер
en http://libusb.sourceforge.net/ libusb
en http: // libusb-win32.sourceforge.net/ LibUsb-Win32
en http://www.nongnu.org/avrdude/ AVRDUDE - Загрузчик AVR / UploaDEr
,
USBASP обновить прошивку - Arduino, Raspberry Pi и ESP8266 Маленькие компьютеры!

Я получил очень дешевый программатор USBASP для AVR от ebay. Длинный кабель с 10-контактными разъемами и переходником от 10 до 6-контактный.
Используется для программирования Arduino, когда загрузчик не нужен при запуске или когда он занимает слишком много места в оперативной памяти.

Вы можете запрограммировать схему в Arduino, когда USBASP подключен с помощью опции меню Sketch: Upload Using Programmer.Это также удаляет загрузчик, освобождая место.

Когда я подключил USBASP к Uno и попытался сделать это с эскизом, загрузка не удалась с ошибкой:

avrdude: предупреждение: не может установить период sck. пожалуйста, проверьте обновление прошивки usbasp

 

Известная проблема, прошивка. Вздох, еще одна работа. Это то, что я сделал, чтобы все заработало как хотелось.
Немного погуглил, а это мой рецепт. По сообщению Роджера Кларка, выполненного мной на Windows 7.

  1. Программировать Arduino UNO в качестве программиста.
    Подключите Arduino Uno. Обратите внимание на назначенный последовательный порт, COMXX (введите номер в следующей командной строке!).
    Запустите Arduino IDE (для меня 1.6.5, но это будет работать и с более старыми версиями).
    Из примеров (в меню Файл). Выберите «Arduino ISP».
    Выберите плату: Uno и последовательный порт к тому, что вы только что заметили.
    Выберите «Загрузить» и подтвердите, что новая прошивка была загружена.
  2. Загрузите последнюю версию прошивки USBASP с сайта Томаса Фишла, дизайнера USBASP.
    Самая последняя прошивка - usbasp.2011-05-28.tar.gz.
    Разархивируйте файл во временную директорию и скопируйте usbasp.atmega8.2011-05-28.hex в c: / программные файлы (X86) / arduino / аппаратные средства \ инструменты \ avr \ bin (требуются права администратора!)
  3. Откройте командную строку (Запуск от имени администратора) в каталоге c: \ program files (X86) \ arduino / hardware \ tools \ avr \ bin
    В этой папке содержится программа avrdude, которая будет использоваться для прошивки новой прошивки.
  4. Закройте перемычку автопрограммы на USBASP.
    На моей плате было два пустых отверстия, в которые я спаял перемычку.

    Подключите Arduino к контактам программирования USBASP
    Убедитесь, что USBASP отключен от компьютера USB!
  5. Сделать эти соединения
    Arduino 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 |
     -----------------
     

  6. Убедитесь, что avrdude может подключиться к USBASPВ командной строке Windows, введите
    avrdude -C../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -v
    
     

    Если все подключено правильно, вы должны увидеть информацию о плате USBASP, которую вы собираетесь запрограммировать, например

    ...
    AVR Part: ATMEGA8
    ...
    
    avrdude: устройство AVR инициализировано и готово принять инструкции
    
     

    Последнее сообщение - знак того, что все подключено, и у вас есть ATMEGA8, как у меня на USBASP.

    Если вы получили сообщение об ошибке о неверной подписи, у вас либо неисправен USBASP, либо вы допустили ошибку проводки.

  7. Предполагая, что 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)

  8. Теперь сожги новую прошивку с
    avrdude -C ../etc/avrdude.conf -c avrisp -P COMXX -b 19200 -p m8 -U вспышка: usbasp.atmega8.2011-05-28.hex
    
     
  9. Если процесс прошел нормально и AVDRUDE проверил новую прошивку, вы можете отключить USBASP от Arduino.
    Снимите самопрограммирующуюся перемычку и подключите ее через USB к ПК и попытайтесь запрограммировать целевое устройство (используя Arduino IDE). Обратите внимание, что вы теряете загрузчик при использовании USBASP, используйте программу загрузчика Ника Гаммона, чтобы восстановить это.

Эта запись была опубликована в Arduino. Добавьте в закладки постоянную ссылку.,

Как обновить прошивку 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: ошибка: программа включена: цель не отвечает. 1
avrdude: инициализация не удалась, rc = -1
avrdude: устройство AVR инициализировано и готово принять инструкции
avrdude: подпись устройства = 0x685ba2
avrdude: Ожидаемая подпись для ATtiny13 - 1E 90 07

Аврдуде сделано. Спасибо.

 

Что нужно

  • два программатора USBasp (первый требует обновления, а второй - чтобы записать чип первого)
  • одна перемычка, два 2 × 1-контактных разъема и паяльник (опционально, зависит от типа вашего программатора)

USBasp Programmer Подготовка

Нам нужно установить перемычку JP2 для USBasp-программатора, который мы хотим обновить.Эта перемычка активирует самопрограммирование провайдера. Может случиться так, что вам нужно будет добавить на печатную плату недостающий пин-заголовок для JP2. То же самое с pin-header для перемычки JP3, которая включит «Slow-SCK», когда у нас будет обновлено встроенное ПО. В конце концов, сделайте короткие соединения на печатной плате, если нет места для разъемов.

Figure-1 Плата программатора AVR USBasp (источник: tosiek.pl)

Рисунок-2 AVR USBasp программатор схема

Скачивание последней прошивки

Программное обеспечение поддерживается Томасом Фишлом, автором программатора 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.02s

avrdude: подпись устройства = 0x1e9007 (вероятно, t13)

avrdude: безопасный режим: предохранители в порядке (E: FF, H: FF, L: 7B)

Аврдуде сделано. Спасибо. 

Это было бы все! Теперь, если установлен JP3, вы можете программировать микросхемы AVR, работающие с очень низкими частотами.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *