Прошивка atmega8 через usbasp

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

Существуют простые и дешевые программаторы для прошивки м/к Atmega ,которые поддерживает среда Arduino >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

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

Читайте также:  Pimptheface com на русском

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

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. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.

среда, 10 октября 2018 г.

Прошивка USBasp

1. Подготовка Ардуино

В качестве программатора можно использовать любую имеющуюся плату Ардуино. Для этого подключаем ее к компьютеру и загружаем в нее скетч ArduinoISP из стандартных примеров:

2. Подключение USBasp к Ардуино

Микроконтроллеры семейства AVR, а значит и базирующиеся на них платы (как Ардуино, так и USBasp) поддерживают программирование по ISP-технологии с использованием линий связи SPI. Поэтому сейчас нам нужно:

  • соединить выводы Ардуино MOSI, MISO, SCK GND и VCC (5В или 3.3В) с одноименными выводами USBasp;
  • цифровой вывод 10 Ардуино подключить к выводу RESET USBasp;
  • установить электролитический конденсатор на 10мкФ между RESET и GND Ардуино, чтобы предотвратить автоматическую перезагрузку. Хотя возможно будет работать и без конденсатора, зависит от используемой платы Ардуино.

Для подключения можете использовать как ICSP разъем Ардуино, так и цифровые выводы — не принципиально. Я, например, взял MOSI, MISO, SCK, GND и VCC с 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
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
Zero ICSP-4 ICSP-1 ICSP-3
101 11 или ICSP-4 12 или ICSP-1 13 или ICSP-3

3. Установка джампера JP2 на USBasp

На плате USBasp присутствуют 3 джампера, хотя распаян у вас, скорее всего, будет только JP1 — выбор напряжения питания программируемого микроконтроллера. Для прошивки USBasp (и любых других манипуляций с ним при помощи программатора) необходимо установить джампер JP2. Советую не мучиться с замыканием контактов подручными средствами и впаять пару штырьков, так будет надежней:

4. Скачивание прошивки

Заходим на страничку автора USBasp https://www.fischl.de/usbasp/ и скачиваем последнюю версию прошивки в разделе Download — Firmware and circuit. На момент написания данной статьи актуальной является версия от 28.05.2011. Файлы прошивки находятся внутри архива по пути usbasp.2011-05-28infirmware, их там три штуки, для каждого типа микроконтроллера (программатор USBasp может быть построен на базе ATmega8, ATmega48 или ATmega88). У меня в USBasp установлен микроконтроллер ATmega8, поэтому я буду использовать файл usbasp.atmega8.2011-05-28.hex.

Прошивать USBasp будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino. Файл прошивки нужно поместить в каталог avrdude, чтобы потом не пришлось указывать полный путь к нему. Для этого запускаем Проводник Windows и переходим в каталог Arduino_dirhardware oolsavrin, где Arduino_dir — это путь к IDE Arduino. В моем случае он выглядит так: d:Arduinoarduino-1.6.12hardware oolsavrin, сюда я копирую файл usbasp.atmega8.2011-05-28.hex.

Читайте также:  Соединить сканы в один файл pdf

5. Прошивка USBasp

После копирования файла прошивки в каталог avrdude поместите курсор в адресную строку Проводника, удалите из нее путь, введите cmd и нажмите Enter.

Запустится интерпретатор командной строки. В нем нужно ввести команду:

avrdude -C ..etcavrdude.conf -p m8 -c arduino -P com18 -b 19200 -U flash:w:usbasp.atmega8.2011-05-28.hex

Не забудьте проверить и с корректировать ее параметры:

-C ..etcavrdude.conf — путь к конфигурационному файлу (без этого параметра avrdude иногда ругается: can’t open config file "": Invalid argument)

-p m8 — определяет тип микроконтроллера. Значение m8 сообщает avrdude о том, что мы собираемся работать с ATmega8. Если у вас в USBasp установлен ATmega48 или ATmega88, то замените это значение на m48 или m88 соответственно.

-P com18 — определяет COM порт, присвоенный плате Ардуино. У меня это com18, вам нужно подставить свое значение.

-U flash:w:usbasp.atmega8.2011-05-28.hex — определяет действие, которое мы хотим выполнить. В данном случае мы хотим записать в FLASH память данные из файла usbasp.atmega8.2011-05-28.hex. При необходимости скорректируйте имя файла прошивки в соответствии с типом микроконтроллера в USBasp.

Убедитесь, что команда набрана верно и программатор правильно соединен с Ардуино. После этого подключаем Ардуино к компьютеру и нажимаем Enter в интерпретаторе командной строки. Должен отобразиться прогресс перезаписи содержимого FLASH памяти, а затем сообщение об успешном выполнении команды — avrdude done. Thank you:

Популярное

  • Устройство и программирование микроконтроллеров 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 мГц, необходимо будет замкнуть выводы джампера (как на фотографии). Лучше, наверное, держать этот джампер постоянно замкнутым, чтобы, забыв о его существовании, не мучиться вопросом — почему микроконтроллер не прошивается.

Читайте также:  Принтер hp 4535 драйвера

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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