1. Главная страница » Компьютеры » Avrdude не видит программатор usbasp

Avrdude не видит программатор usbasp

Автор: | 16.12.2019

четверг, 13 сентября 2018 г.

Программатор USBasp

Сегодня речь пойдет о программаторе USBasp — популярном программаторе для микроконтроллеров фирмы Atmel серии AVR. Как заявляет его создатель на домашней странице проекта, USBasp работает на различных платформах (Windows, Linux, Mac OS X), не требует дополнительных компонентов и обеспечивает скорость программирования до 5 кбит/с. Кроме того его схема довольно проста и желающие могут собрать этот программатор самостоятельно. Либо можно заказать готовый на Aliexpress, как я и поступил. Обошелся он мне в $1.70 вместе с переходником на ICSP разъем.

Содержание

Подключение программатора USBasp к Ардуино

USBasp позволяет программировать AVR микроконтроллеры через последовательный интерфейс SPI. Для этого он имеет 10-пиновый разъем SPI. И подключение программатора к Ардуино или отдельному микроконтроллеру сводится к соединению их линий SPI и Reset.

В большинство плат Ардуино присутствует ICSP разъем, в котором сгруппированы выводы для внутрисхемного программирования: MOSI, MISO, SCK, RST, GND и VCC. Поэтому удобнее всего подключать программатор именно к ICSP. Здесь вам потребуется распиновка разъемов, она приведена ниже:

Соедините соответствующие выводы программатора и Ардуино, должно получиться примерно так:

Конечно, возиться каждый раз с проводами не очень удобно, поэтому советую приобрести переходник ISP 10 pin to 6 pin. С ним всё становится гораздо проще.

Если же на плате Ардуино нет ICSP разъема, то остается подключать программатор к цифровым выводам в соответствии со следующей таблицей. В ней приведено расположение выводов MOSI, MISO и SCK для различных плат Ардуино.

Плата Ардуино MOSI MISO SCK Уровень
Uno, Duemilanove 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Nano 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3
Pro Mini 11 12 13 3.3В или 5В
Mega1280, Mega2560 51 или ICSP-4 50 или ICSP-1 52 или ICSP-3
Leonardo ICSP-4 ICSP-1 ICSP-3
Due ICSP-4 ICSP-1 ICSP-3 3.3В
Zero ICSP-4 ICSP-1 ICSP-3 3.3В
101 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3 3.3В

Не забывайте о том, что некоторые платы требуют питания 3.3В и для них нужно менять положение джампера JP1 на программаторе.

Драйвера для USBasp

Для работы с USBasp в Windows следует установить драйвера. Разработчик данного программатора рекомендует использовать драйвера Zadig, скачать их можно на странице http://zadig.akeo.ie/. Обратите внимание, начиная с версии драйвера 2.3 прекращена поддержка Windows XP и Vista. Для указанных систем используйте предыдущую версию драйвера: zadig_xp_2.2.exe для XP и zadig_2.2.exe для Vista.

У меня в системе установлены драйвера из этого набора, они подходят как для XP, так и для свежих версий Windows. Скачайте архив, распакуйте его и запустите InstallDriver.exe для установки драйверов.

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

При работе в Linux или MacOS X установка дополнительного ПО для USBasp не требуется.

Итак, проверим программатор USBasp в действии. В предыдущих публикациях я описывал процедуру записи загрузчика в Ардуино и работу с фьюзами с использованием Ардуино в качестве программатора. Эти же действия можно выполнить, используя USBasp.

Чтение и запись фьюзов Ардуино

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

avrdude -C ../etc/avrdude.conf -c usbasp -p m328p -U lfuse:r:-:h

В этой команде использованы следующие параметры:

    -c

— псевдоним используемого программатора, в данном случае usbasp.
-p

— тип микроконтроллера. Я считываю фьюзы из Ардуино Уно, в которой установлен микроконтроллер ATmega328p, поэтому в качестве

указано значение m328p.

  • -U :r|w|v: [:format] — комплексная опция для указания производимой с памятью операции (чтение. запись, проверка). -U lfuse:r:-:h означает, что требуется прочитать содержимое младшего байта конфигурации и вывести считанное значение на экран в щестнадцатеричном виде.
  • Чтение и запись FLASH и EEPROM памяти Ардуино

    В приведенных выше примерах команд для Avrdude в качестве параметра использовались значения lfuse и efuse для доступа к конфигурационным байтам микроконтроллера. Данный параметр может принимать и другие значения, они приведены ниже:

    • calibration — байты калибровки RC-генератора;
    • eeprom — энергонезависимая память микроконтроллера;
    • efuse — дополнительный конфигурационный бит;
    • flash — FLASH память микроконтроллера;
    • fuse — фьюз-байт для микроконтроллеров с одним fuse-байтом;
    • hfuse — старший fuse-байт;
    • lfuse — младший fuse-байт;
    • lock — байт блокировки (ячейка защиты);
    • signature — три байта что обозначают сигнатуру чипа (device ID);
    • fuseN — байт с фьюзами для ATxmega чипов, N — целое число для каждого фьюза что поддерживается устройством;
    • application — область приложений во Flash памяти для МК ATxmega;
    • apptable — таблица приложений в области Flash памяти для устройств ATxmega;
    • boot — загрузочная область Flash памяти для устройств ATxmega;
    • prodsig — область с производственной сигнатурой (calibration) для устройств ATxmega;
    • usersig — область с пользовательской сигнатурой для устройств ATxmega.
    Читайте также:  Canon powershot sx 740 hs отзывы пользователей

    Таким образом, для чтения FLASH Ардуино Уно (микроконтроллера ATmega328p) может быть использована следующая команда:
    avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U flash:r:flash_dump.hex:i

    Файл с содержимым FLASH памяти микроконтроллера будет создан в каталоге Avrdude. Либо можно прописать в команде полный путь к файлу.

    Для записи в FLASH память содержимого файла flash_dump.hex можно использовать команду:
    avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U flash:w:flash_dump.hex:i

    Чтение EEPROM:
    avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U eeprom:r:eeprom_dump.hex:i

    Запись EEPROM:
    avrdude -C ../etc/avrdude.conf -p m328p -c usbasp -U eeprom:w:eeprom_dump.hex:i

    Запись загрузчика в Ардуино

    1. Соединяем USBasp с платой, в которую будем записывать загрузчик и подключаем программатор к компьютеру.
    2. Запускаем IDE Arduino.
    3. В меню Инструменты > Программатор выбираем USBasp.
    4. В меню Инструменты > Плата выбираем значение, соответствующее нашей плате.
    5. В меню Инструменты выбираем команду Записать загрузчик.

    Если все сделано правильно, то в нижней части IDE появится сообщение об успешной записи загрузчика:

    Популярное

    • Устройство и программирование микроконтроллеров AVR для начинающих — 143
    • Трехканальный термостат, терморегулятор, таймер на ATmega8 — 70
    • Двухканальный термостат, терморегулятор на ATmega8 — 67

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

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

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

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

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


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

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

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

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

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

    Читайте также:  Led daytime running light инструкция схема подключения


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

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

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

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

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

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

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

    usbasp.2011-05-28 (518,9 KiB, 14 005 hits)

    Скачать "USBasp-win-driver-x86-x64-ia64-v3.0.7" (10,9 MiB, 26 436 hits)

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

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

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

    В инете сказано, что USBasp — один из наиболее простых для повторения AVR USB программаторов.
    Требует минимум внешних компонентов, имеет несколько много готовых вариантов разводки печатной платы и оболочек для программирования, а также может работать под Linux и MacOS.

    Оригинальная статья по программатору: www.fischl.de/usbasp/
    Статья, по которой собирал: easyelectronics.ru/usb-pr…grammator-avr-usbasp.html
    Автором печатной платы является DiHalt.

    Сборка устройства USBasp

    1. Сборка производилась по следующей схеме. Это самая распространенная схема. Требуется минимум навесных элементов. Не смог достать емкости для кварца на 18пФ, заменил их на 22пФ. Светодиоды можно использовать любого цвета (от того, что красный с зеленым местами поменяются, принцип работы не изменится)

    2. Модифицировал печатную плату под свой корпус. Пришлось немного попотеть при переделке, чтоб впихнуть в корпус от сплиттера в одну линейку и МК, и USB-разъем и IDC-10. Результат превзошел мои ожидания )
    Доработанная печатная плата USBasp программатора: Скачать в формате Lay

    3. Припаиваем все элементы согласно схеме. Элементов мало, вероятность ошибиться низка, но есть. Поэтому все делаем внимательно )

    4. А теперь сравним оба устройства: авторское и получившееся. Чего хотел — добился. Устройство помещается в корпусе от плиттера. Найдите 10-ть отличий…

    Программирование микроконтроллера Mega8

    1. Прошиваем микроконтроллер с помощью этого программатора:
    Простой LPT программатор AVR микроконтроллеров (5-ть проводков)
    Заливаем файл прошивки под названием "usbasp.atmega8.2007-10-23.hex" из этого архива:
    Прошивка, программа, печатка. Установка фьюзов тоже в архиве.

    Если же фьюзы установлены были неверно, и теперь микроконтроллер не определяется (т.е. был затронут одby из критичных фьюзов), а вам хотелось заново прошить МК, то исправить их можно с помощью такого устройства:
    Фьюзбит Доктор. Исправляем AVR при неправильно прошитых фьюзах

    2. Подключаем к программатору адаптер для программирования микроконтроллеров.
    Сам адаптер был собран ранее в этой теме:
    Адаптер для прошивки AVR микроконтроллеров (8pin-20pin-28pin)

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

    1. Можно было запрограммировать и в самом USBasp программаторе, подключив к нему простой программатор согласно распиновке. Если все собрано и запрограммировано верно, то устройство при подключении к ПК определится и "попросит" установить двайвер.

    2. На что ему вежливо ответим выбрав папку со скаченными и разархивированными двайверами.

    3. Драйвера успешно установятся, если схема собранна верно и МК тоже прошит верно.

    4. В диспетчере устройств определится программатор как: LibUSB-Win32 Device.
    Радуемся, и тестируем )

    Проверка работоспособности программатора

    1. В качестве програмки использовал avrdude в оболочке Sinaprog1.5.5.10.
    Можно использовать и приложенное к архиву оболочку USBASP_AVRDUDE_PROG
    Для проверки доступа к Attiny13A привожу пошагово такую инструкцию. Контроллер опознан, можно заливать прошивку в Attiny13A .

    Читайте также:  Core 2 duo сокет 775

    Необходимые данные для повторения устройства находятся в этом архиве:
    Прошивка, программа, печатка, драйвер

    Смотрите также

    Метки: usbasp

    Комментарии 266

    Очень полезная статья!
    Автору жму руку!

    Возникала проблема: есть программатор USBaps, драйвер установил, в устройствах компьютера определяется.
    Установил SinaProg, программатор подключаю — загорается светодиод, пытаюсь прошить Тиньку13 и выскакивает сообщение "programmer faild" над строчкой Flash. Второй светодиод откликается во время прошивки — начинает мигать, понятно, что программатор работает.
    Причем сообщение "programmer faild" выскакивает даже если пустой программатор подключен без Тиньки и попробовать ее определить.
    В какую сторону копать?

    Ребята, подскажите, кто сталкивался или знает. Ситуация такая-собрал программатор, запрограммировал контроллер с помощью Pickit2 и AvrDude, поставил его в плату собранного USBasp программатора, включаю его, а компьютер видит его, как неопознанное устройство. Резистор, рекомендованный к уменьшению до 1 ком пробовал уменьшить. Результата ни какого. Прошил без ошибок, фьюзы проверены то раз.Как сделать, чтоб комп увидел его, как USBasp?

    Весь atmel можно шить usbasp-шкой или допустим мои завалявшиеся at89c2051 и at89c51ed2 не пройдут? (под них даже софта найти не могу, в базе популярных прошивальщиков этой серии-AT89 просто нет )

    ps где список возможностей usbasp взять

    ставим синапрог, смотрим список доступных мк:
    — там список начинается с AT90xx

    Весь atmel можно шить usbasp-шкой или допустим мои завалявшиеся at89c2051 и at89c51ed2 не пройдут? (под них даже софта найти не могу, в базе популярных прошивальщиков этой серии-AT89 просто нет )

    ps где список возможностей usbasp взять

    блин ну обьясните мне, такому недалёкому в таких вопросов-ЧТО МОЖНО ДЕЛАТЬ СТ ТАКИМИ ПРОГРАМАТОРАМИ?тОЛЬКО БЕЗ УМНЫХ МСЛЕЙ КОТОРЫЕ ПОТОМ НУЖНО БУДЕТ РАСШИФРОВЫВАТЬ А ТАК, ПОПОНЯТНЕЕ НА ПАЛЬЦАХ

    если коротко, то этот программатор используется для заливки прошивки в микроконтроллеры фирмы Atmel.

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

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

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

    если коротко, то этот программатор используется для заливки прошивки в микроконтроллеры фирмы Atmel.

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

    Atmega 328P можно им программить? а то, думаю взять для этого дела вот такой: ru.aliexpress.com/item/1p…a3-4b41-a57e-64ecf3522145

    ну это usbasp, можно им программировать

    спасиб, значит, то, что мне и нужно

    Сначала хочю сказать огромное СПАСИБО человеку под ником c10wn за неоценимый вклад в просвещение таких как я.

    Теперь к делу
    c10wn посоветовал альтернативу прошывке программатора от AVR910. Вчера я ее залил. Но не смог протестить, так как с прошыватором завис. Сегодня узнал от c10wn что AVR studio должна поддержывать етот программатор.
    Как ето сделать:
    Tools/Add target… (Вибираем STK500 и прот на котором висит программатор)
    После етого в меню Toolsdevice programming можна шыить с помощю STK500!
    Даже както удивился как все просто оказалось…

    П.С.
    Я чесно говоря аж прозрел. Запустил прошыватор, нажал кнопку "Program"… Смотрю на лампочки зеленая пустила одну моргулину, потом красная, потом снова зеленая… ну думаю облом… не работает (потому что АВР910 моргал светодиодами по 10минут на етой прошивке… процес был похож на форматирование запоротой дискеты)))) а тут бац и все.

    Ладно вставил проц со старой прошивкой. Открыл АВР ОСП2. нажал верифи, и пошел пить кофе. Допил, прихожу… о Класно! 80%, щас реклама закончится и узнаю. спустя пару минут — пишет EQUEL! Офигеть… да не может быть… Протестировал еще на парочке прошывок. Работает на. Если бы не час ночи то наверника заорал бы от радости!

    c10wn ты не реально крутой человек)))! Ты мне столько времени секономил. Я жил себе не подозревая даже что процес прошывки может протекать так быстро!
    Спасибо тебе БОЛЬШОЕ!

    П.П.С
    Хотел в приват отправить, но смотрю что ты на мобильном приложении. Решыл не нервировать в такое время ))) (звук сообщения мобильного приложения конечно нечто… жаль нельзя отключить)

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

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