Arduino ide не видит usbasp

Arduino ide не видит 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:

Читайте также:  Значение элемента справочника в запросе 1с

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

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.

четверг, 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В
Читайте также:  War thunder ошибка fatal error

Не забывайте о том, что некоторые платы требуют питания 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.

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

    Читайте также:  Error s timeout 1042

    Файл с содержимым 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 появится сообщение об успешной записи загрузчика:





    Вы скачали драйвер, установили, но ардуино все равно не шьется. Проблема может быть как и с завода, так и по вине пользователя, это не суть важно. Что делаем. Переходим ко второму способу.




    Но на всякий прикрепляю дрова для CP2102

    Программатор требует установки драйверов, проблем с этим не у меня, не у других замечено не было, просто ставьте драйвер на CP2102, либо тот, который предлагает производитель.

    Это обычный USBasp, самый распространённый программатор AVR микроконтроллеров. Стоит на али те же копейки.

    Программатор имеет стандартный 10-ти контактный разъем, однако в комплекте можно купить переходник на 6-ти контактный. Его конечно можно изготовить и самому или подключить просто проводами, однако так значительно проще и удобнее.

    Прошивка осуществляется не стандартным способом. Для начала идем в Инструменты>Программатор>USBasp

    Далее Скетч/Загрузить через программатор.

    Как и говорил, тут я описываю проблемы, с которыми столкнулся я. Этот программатор так же требует драйверов. Найти их не сложно. Однако связываясь с китайцами с целью экономии, нужно быть готовым к неожиданным поворотам. Лично я, при работе с этим программатором, столкнулся со следующей проблемой, которую когда-то описывал на радиокоте:

    Над решением беды бился долго, и нашел лишь на забугорных форумах. И так:

    1)По следующей ссылке скачиваем архив LibUSB-64bit.zip
    2)Подключаем программатор к USB порту.
    3)Распаковываем архив и переходим по пути куда распаковалиLibUSB-64bitlibusb-win32-bin-1.2.1.0inx86
    4) Запускаем inf-wizard.exe
    5)Жмем Next
    6)Выбираем USBasp и жмем Next
    7)Следующие поля заполняем таким образом:

    vendor ID (hex format) = 0x16C0
    product ID (hex format) = 0x05DC
    mi (hex format) = оставить пустым
    manufacturer name = VOTI
    device name = USBasp

    8 )Сохраняем сгенерированный файл по пути:
    LibUSB-64bitlibusb-win32-bin-1.2.1.0inamd64 — если у вас 64-х разрядная система или
    LibUSB-64bitlibusb-win32-bin-1.2.1.0inx86 — если 32-х разрядная

    9)Жмем install now
    10) Система уведомит, что драйвер не из проверенных источников. Жмем "Все равно установить"
    11)Начнется установка драйвера. В процессе установки услышим звук отключения и подключения USB устройства. По окончанию установки жмем ОК.

    Ещё несколько советов

    Если на выводах RX и TX висит какое-то исполняющее устройство — ардуинка не прошьется. Сначала прошивайте, потом подключайте на эти выводы необходимое устройство.

    На этом все, Надеюсь информация будет кому-то полезна.
    Всем удачи в творчестве!

    Ссылка на основную публикацию
    Adblock detector