Прошивка 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 не программирует такие микроконтроллеры пока не установить перемычку
Пример для установки фьюзов 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
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-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 будем при помощи уже знакомого нам avrdude, входящего в состав IDE Arduino. Файл прошивки нужно поместить в каталог avrdude, чтобы потом не пришлось указывать полный путь к нему. Для этого запускаем Проводник Windows и переходим в каталог Arduino_dirhardware oolsavrin
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 — устройство, распиновка, подключение, прошивка
Программатор USBASPСегодня мы рассмотрим как, без особых затрат и быстро, запрограммировать любой микроконтроллер AVR поддерживающий режим последовательного программирования (интерфейс ISP) через USB-порт компьютера. В качестве программатора мы будем использовать очень простой и популярный программатор USBASP, а в качестве программы — AVRdude_Prog V3.3, которая предназначена для программирования МК AVR.
Для того, чтобы запрограммировать микроконтроллер необходимо иметь две вещи:
— программатор
— соответствующее программное обеспечение для записи данных в МК
Одним из наиболее простых, популярных и миниатюрных программаторов для 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 :
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»
Перейти на страницу магазина
(31 голосов, оценка: 4,97 из 5)
Arduino — примеры, эксперименты: Как прошить Atmega328 и Atmega8
Ранее я писал, что большую и дорогую Arduino Uno можно заменить на малюсенький и дешёвый микрочип Atmega328 или даже Atmega8Я покажу как прямо из среды программирования Arduino прошить микроконтроллеры Atmega328 и Atmega8. Первый у меня имеется в DIP корпусе, а второй в TQFP.
Для программирования я использую программатор USBasp. Купил его на ebay.com, стоит он в пределах 150р.
Первая проблема с которой столкнутся пользователи Windows8 и Windows10 — установка драйвера для USBasp.
Проблема в том, что эти операционные системы просят, что бы у драйвера была какая-то цифровая подпись, а у драйверов для USBasp на сегодняшний день её нет. Проблема решается отключением проверки этих цифровых подписей. Для этого перезагружаем компьютер с нажатой клавишей Shift. Появляется экран, на котором выбираем «Диагностика»
Далее — «Дополнительные параметры»
Далее — «Параметры загрузки»
Далее — «Перезагрузить»
На следующем экране появляется список действий, которые мы можем сделать. Выбираем на нём «Не проверять цифровые подписи драйверов», жмём цифру 7
Подключим наш программатор к микрочипу. Для удобства я купил макетную плату и соединительные проводки. Соединяем микрочип с программатором согласно схемеУ Atmega8 в TQFP корпусе выводы располагаются следующим образом
К 9 и 10 выводу микроконтроллера присоединяем кварцевый резонатор.
Здесь стоит пояснить значение этого резонатора.Скорее всего в купленном вами микроконтроллере выставлены настройки (fuses) на работу от внешнего тактового генератора, т.е. от кварца. Поэтому, что бы его прошить, нужно что бы он был подключён к этому самому кварцу. Для перепрошивки кварц можно взять любой попавшийся вам под руку. Я когда впервые перепрошивал просто выпаял его из какого-то сломанного устройства, вот он маленький на фото.
Его хватило что бы микроконтроллер перепрошился. Если же ваш микроконтроллер изначально настроен на работу от внутреннего тактового генератора, то для прошивки кварц вам не нужен, можно обойтись и без него.
Для того, что бы можно было прошивать микрочип прямо из среды разработки Arduino, нужно залить на чип ардуиновский загрузчик. Для этого воспользуемся программой avrdude и онлайн конструктором загрузчиков для ардуино. На странице онлайн конструктора загрузчиков переходим в самый низ и видим конструктор1. Выбираем «Внутренний генератор» если не хотим использовать кварцевый резонатор, либо выбираем «Внешний генератор» если хотим увеличить скорость работы чипа.
2. Выбираем модель микроконтроллера (в нашем случаем Atmega328)
3. Нажимаем «Создать HEX»
Появляется такое окно:
Первое что мы делаем — скачиваем наш загрузчик в виде hex файла. Если конструктор по какой-то причине не работает, можно скачать загрузчик для atmega328 для внутреннего генератора здесь.Ниже мы видим блок файла boards.txt для Arduino IDE. Я долго пытался подключить этот блок, что бы в среде ардуино появился выбор платы, но мне это почему-то не удалось, в итоге обошёлся без этого.
Ещё ниже мы видим подсказку как залить загрузчик через программу avrdude и программатор USBasp. Я делаю следующим образом:
-Подключаю программатор к компьютеру через USB.
-Копирую HEX файл в папку avrdude
-Создаю bat файл в папке avrdude и копирую в bat эту строку
avrdude -c usbasp -p atmega328p -U flash:w:a328p_8MHz_e2_de_5.hex -U lfuse:w:0xe2:m -U hfuse:w:0xde:m -U efuse:w:0x5:m
@echo This batch file
@pause
-Запускаю bat файл. Если лень создавать bat файл, можете скачать его здесь.Если всё сделано правильно, вы увидите что-то подобное
Это значит, что всё прошло хорошо и на наш микроконтроллер залился загрузчик ардуино. Теперь мы сможем прошивать его прямо из среды программирования Arduino.
Если вы где-то накосячили и что-то сделали не правильно, можете увидеть такое сообщение:
Тут могут быть разные причины:
-Возможно вы не правильно соединили программатор с микрочипом. Проверьте соединения.
-Возможно вы не подключили кварцевый резонатор, а ваш микроконтроллер настроен на работу от него. Тогда подключите любой кварцевый резонатор, хоть из китайских наручных часов выпаяйте.
-И третий вариант о котором я не сказал, но с которым тоже столкнулся, когда прошивал Atmega8. На каком-то форуме мне подсказали, что микрочип работает на пониженной частоте и чтобы прошить его, нужно на программаторе замкнуть перемычку JP3. Что собственно мне и помогло.
Если проблем у вас не возникло и загрузчик Arduino успешно записался на чип, то переходим к прошивке чипа через среду программирования Arduino.
Во-первых, если вы в онлайн конструкторе загрузчика выбирали «Внутренний генератор», то кварцевый резонатор можно убрать из схемы.
Откроем среду разработки Arduino и запустим классический пример моргания светодиодом:
Видим, что в примере указан цифровой выход 13. На микрочипе он соответствует ножке 19
Т.к. этот вывод у нас сейчас подключен к программатору под вывод SCK, то изменим в программе 13 вывод на 5.
И подключим к нему светодиод.
Выбираем в Инструментах плату, чип и программатор
Нажимаем Скетч — загрузить через программатор.
Программа скомпилируется и загрузится на наш микроконтроллер. Светодиод замигает.
С какой задержкой будет мигать светодиод если в программе указано 1 секунда? Зависит от того использовали ли вы внутренний тактовый генератор или внешний. Если внутренний, а частота его 8MHz, то программа будет работать в 2 раза медленней, т.к. в Arduino UNO стоит кварц на 16MHz.
Если вы использовали внешний кварц, то задержка моргания светодиодом будет зависить от частоты вашего кварца. При частоте 16MHz светодиод будет моргать через 1 секунду как и полагается по программе.
Убедимся, что микроконтроллер прошит и работает самостоятельно. Отключим его от программатора и подключим к нему питание 5 вольт. Увидим, что светодиод моргает, программа, залитая в чип, работает!
MiGeRA’s Home Page | USBasp
А также до безобразия похожий «USB ISP» — совместимый с stk500v2.
Имея две Ардуины можно в одну из них залить скетч ISP и использовать ее в качестве программатора, например, для второй ардуины (о чем я уже писал) — зачем нужен какой-то программатор еще? С одной стороны это верно, но есть некоторые нюансы. Так из мало существенных можно привести, например, то что ардуина взаимодействует с компом через COM-порт — а он хоть и виртуальный, его скорость не выше 115200 бод. Вдобавок к этому скетч ISP вообще предусматривает работу лишь на скорости 19200 бод. Вобщем долго и уныло, но не смертельно, если пользоваться таким программатором разово, а не в процессе отладки. Но есть и другой момент — стабильность. Тут я в результате многих экспериментов так и не понял в чем причина: просто иногда то не детектится программатор, то контроллер подключенный к нему.
Каким альтернативным программатором обзавестись? Купить или собрать? Как вариант для сборки приглянулся AVR910 — свободный контроллер ATmega8 в наличии был, оставалось лишь собрать обвеску. Но так как кустарщины не хотелось, а примера трассировки платы под AVR910 на вышеуказанном сайте автора нет … стал искать дальше.
Как всегда заглянул на ебэй. И был приятно удивлен, что все труды по сборке программатора, включая детали оцениваются в 5 баксов! Грязно ругнувшись приятно удивившись, и не долго-думая заказал. И вот спустя разумное время программатор у меня 😉 На практике это клон (если так можно назвать вариацию опенсорсного проекта) программатора USBasp.
http://www.fischl.de/usbasp/ — USBasp — USB programmer for Atmel AVR controllers (Официальная страничка этого радиолюбительского программатора, от германских разработчиков). Там же выложены все материалы необходимые для самостоятельной сборки, приведены различные примеры готовых решений, а также предлагается купить комплект (корпус, плата, все радиодетальки) — по цене порядка 16 евро. Смущает не только цена за «полуфабрикат», но и размер получаемого в результате изделия — и в том числе из-за несуразно-большого корпуса. Вобщем в топку европейцев с их хапужничеством и стремлением гигантизму!
Вернемся к нашему донглу. Распайка коннектора чудная какая-то … В комплекте с китайским USBasp идет 10-ти контактный кабель-шлейф, который (мягко сказать) не годится для непосредственного применения его с ардуиной в качестве целевой платформы. Ввиду этого пришлось сделать свой шлейфик с использованием обжимных разъемов. Необходимую распиновку несложно прикинуть по схеме ниже:
Или использовать подготовленную мной табличку (номера по порядку проводников в шлейфе):
ISP-6pin | ISP-10pin |
1 | 9 |
2 | 2 |
3 | 7 |
4 | 1 |
5 | 5 |
6 | 8 |
Что получилось — на фотке ниже … С одного из концов проводники приходится собирать «вразброс» — я обжал 6-ти контактный классически (порядок проводов в шлейфе соответствует номерам контактов в разъеме), а в 10-ти контактом собрал их в соответствии с табличкой (выше).
Для работы с программатором USBasp можно использовать управляющую программу avrdude (имхо наиболее удобная и функциональная, а также гибко конфигурируемая) или Khazama AVR — единственным преимуществом которой можно отметить лишь визуализацию и расшифровку значений fuse-битов (битов конфигурации контроллеров — фьюзов) а также наглядное отображение hex-дампа, в остальном она менее универсальна и более глючна … Кстати, для удобства формирования fuse-битов (например, в случае использования avrdude) — можно воспользоваться следующим скриптом:
http://www.engbedded.com/fusecalc/ — Engbedded Atmel AVR® Fuse Calculator
Вот …
Кстати, информацию по самостоятельной сборке такого программатора можно найти здесь.
MiGeRA (март 2012)
Обновление прошивки в донгле USBasp (дополнение).
Несмотря на то что проект USBasp уже давно заброшен разработчиком (последнее обновление комплекта файлов проекта датируется 2011 годом) — имеет смысл обновить прошивку в сём (описываемом) донгле, в нем она еще старее … Забекапить что есть — не удавалось (читались симметричные паттерны, защита видать стоит — зачем? — для опенсорса то?). Но обновить прошивку можно. Посмотрев на схему оригинального проекта и поразглядывав сей черный донгл, потыкался, покликался … Короче делаем так:
1. Замыкаем отверстия под джампер J2 булавкой (предварительно согнув ее пассатижами до V-образной формы и откусив ушко) — можно конечно и джампер впаять :-))
2. Коннектим наш ISP-кабель (самоизготовленный, см. выше) к другому программатору (я использовал Little-Wire) — и данные теперь пойдут в обратную сторону 😉
3. Заливаем новую версию прошивки (в моем случае: usbasp.atmega8.2011-05-28.hex) в контроллер (ATmega8L) софтом, соответствующим программатору (в моем случае avrdude — при помощи команды: avrdude -v -pm8 -cusbtiny -Uflash:w:usbasp.atmega8.2011-05-28.hex). Также проверяем и при необходимости корректируем фьюзы (avrdude -v -pm8 -cusbtiny -Ulfuse:w:0xEF:m и avrdude -v -pm8 -cusbtiny -Uhfuse:w:0xC9:m)
4. Вот и все, кстати залитая прошивка успешно читается обратно 😉 И еще обратил внимание, что при работе теперь не только горит желтый диод D2 (при подключении к USB), но и мигает красный D3 при активности программатора (раньше вроде не мигал).
MiGeRA (июль 2014)
Еще один, «почти» USBasp — или … (дополнение).
Когда-то несколько лет назад (во времена создания выше изложенного материала) был куплен еще и такой вот маленький и изящный программатор:
Вобщем-то брал я его в расчете что это такой-же USBasp, только более компактный, да еще и в таком прикольном алюминиевом корпусе … Ан нет! Однако особой нужды в его работоспособности на фоне сонма других программаторов не было, а посему он был благополучно заброшен. Нашел его случайно и совсем недавно, стал вспоминать что это, почему, как … Вобщем не иначе как отличие в одной букве оказалось существенным :-O При подключении к компу он определяется как HID-устройство и чем работать с ним непонятно, дудка про такой не знает, а тем-более Студия :-/ На этот раз решил его раздербанить и посмотреть что внутри (сразу после приобретения было жалко) — но «дербанить» не пришлось, корпус легко открывается путем сдвига в сторону разъема USB. Внутри плата и конструкция очень похожая на USBasp (для сравнения см. фотку):
Кроме габаритов навскидку разница в контроллерах — в «новом» маленьком установлен mega88 (напомню, в первом — mega8L). Казалось бы все просто — берем из древнего архива материалов по USBasp прошивку на mega88 (она там есть), замыкаем «ресет» и шьем (аналогично описанному выше) … Все замечательно, но результат нулевой, девайсина после прошивки не заводится вообще! Хорошо, проверяем и корректируем фьюзы — загорается синий светодиод и не более. М-да … Китайскую прошивку не восстановить, она была также залочена, да и толку от нее? Вобщем думал опять прятать эту фиговину в долгий ящик, да решил погуглить.
По-хорошему на этом можно заканчивать повествование с благодарностью в адрес человечка написавшего этот замечательный материал и приложившего к нему все необходимое — лаконично и по-существу, пара кликов и все заработало …
ЗЫ. Все же несколько прокомментирую что и как получилось в моем видении :-))
1. А никто нам «USBasp в металлическом корпусе» и не обещал, да, схемотехника у них почти идентичная, почти …
2. Версия, платы в моем случае, 4.0 датирована октябрем 2014 года. Примененный контроллер mega88 (шьется на ура любым программатором после закорачивания проволочкой контактных площадок «-UP-» и питанием от программатора) не имеет прямой совместимости с mega8L, как по прошивке, так и по фьюзам.
3. Сей донгл есть возможность превратить как в USBasp (оптимально для работы с avrdude, ардуиной, ну и в случае если нет другого USBasp), так и в AVRDoper — клон stk500v2 (для роботы с Atmel Studio).
4. В режиме AVRDoper видится как COM-порт и требует установки (не подписанного) драйвера AVR-CDC (может не работать на портах USB 3.0). Скорость в Atmel Studio до 1.8MHz, т.е. вполне себе неплохо (режим только ISP-программатора, без отладки). Однако чтобы достигнуть подобной скорости в дудке — требуется патч, без него скорость черепашья. Между тем, удобно что не требуется менять драйвер при работе в Atmel Studio или с avrdude — обращение через номер COM-порта.
MiGeRA (март 2019)
Альтернативные прошивки для AVR910 by PROTTOSS, AVR-Doper, USBasp
1. AVR-Doper
Довольно известный и популярный программатор, попытки портирования на форуме уже были, но к большому сожалению они затерялись в той большой ветке (было дело, искал целенаправленно, но не мог найти!). Но главное, что в тех прошивках так и не был исправлен глюк с таймаутами в avrdude и «работой через раз» в CodeVisionAVR.
Мой порт AVR-Doper для AVR910 сделан аккуратно, он не нарушает целостности исходников (т.е. там аккуратно добавлен AVR910, ничего не попорчено). Веселый баг с потерей USB-пакета также исправлен.
В целом прошивка работает так же, как и оригинальная: при подключении программатора появляется COM-порт, перемычка ‘low sck’ работает для понижения частоты, красный светодиод мигает при записи/стирании чипа, зеленый горит при «подключении к девайсу» (когда пины настраиваются как выходы), на выходе «LED» генерируется 1 МГц.
Существует 4 модификации прошивки:
а) Стандартная CDC (эмуляция COM-порта), без отладочного интерфейса. Рекомендуется в большинстве случаев.
б) CDC с отладочным интерфейсом — дополнительно к COM-порту реализован «свой» протокол для передачи информации через UART программатора (подробнее см. ниже).
в) Бездрайверное HID-устройство, без отл. интерфейса. Т.к. CDC на V-USB нарушает стандарт USB, иногда бывают проблемы с работой программатора (хоть и решаемые). HID стандарт не нарушает и не требует драйверов вообще. К сожалению, поддержка есть пока только в avrdude.
г) Бездрайверное HID-устройство с отл. интерфейсом.
Отладочный интерфейс предназначен для обмена данными между программируемым устройством и ПК. Для его работы нужно подключить RxD и TxD программатора к TxD и RxD устройства. Настроить в устройстве UART на 19200, 8N1. На ПК необходимо установить библиотеку libusb (подробнее см. архив в прошивками) и запустить файл avrdebug.exe (идет в комплекте с прошивками). При этом все, что отправляет устройство в UART, будет приходить в терминал, а все что набрано в терминале будет уходить в устройство.
2. USBasp
Также довольно известный простой программатор, очень похож на AVR910.
Прошивка работает так же, как и оригинальная, за исключением того, что не появляется COM-порт (программатор требует libusb, он идет в комплекте). Странно, что схема USBasp содержит 2 светодиода, но в прошивке использовался только один. Теперь работают оба (так же, как в AVR-Doper), плюс добавлена генерация 1 МГц на выходе «LED».
Этот программатор самый скоростной, однако в avrdude я иногда славливал глюк с неправильно прочитанным ID чипа (вроде как не критично, но кто знает).
Сравнение скоростей программаторов
Тесты проводились с avrdude с помощью заливки в ATMega8 тестовой прошивки размером ~5кБ.
Програматор Чтение Запись
AVR910 2.5 кБ/с 0.5 кБ/с
Doper-CDC 0.47 кБ/с 0.44 кБ/с
Doper-HID 0.5 кБ/с 260 Б/с
USBasp 3 кБ/с 1.5 кБ/с
Источник: Альтернативные прошивки для AVR910 by PROTTOSS, AVR-Doper, USBasp
Архив для статьи «Альтернативные прошивки для AVR910 by PROTTOSS, AVR-Doper, USBasp» | |
Описание: AVR-Doper.2008-11-27.avr910+fix.zip — исходники прошивки AVR-Doper (готовые для употребления в WinAVR). usbasp.2009-02-28.avr910-only.zip — исходники USBasp (аналогично, готовые для… | |
Размер файла: 868.52 KB Количество загрузок: 3 038 | Скачать |
Загрузка бутлоадера Arduino в ATMega8 с помощью USBasp
Burning the Bootloader (using USBasp clone) to ATMega8
Кроме заливки бутлоадера с помощью платы-донора Ардуино возможен так же процесс прожига с помощью обычных программаторов типа USBasp (USB ISP — как пишут китайцы на корпусах этих программаторов).
Купить эти программаторы можно прямо на eBay за 1,14 доляра ( например — http://www.ebay.com/itm/Neu-USB-ISP-USBASP-Programmiergerat-Programmierer-fur-Atmel-AVR-ATMega-51-ATTiny-/271870278925?pt=LH_DefaultDomain_77&hash=item3f4cbb3d0d). В хозяйстве однозначно нужно иметь такой тру-программатор что бы в будущем научиться прошивать контроллеры без Ардуино, так как сама программа Ардуино занимает примерно половину памяти микроконтроллера ну и вносит задержки во всех процессах обработки сигналов (нажатия клавих, скорость работы АЦП), в некоторых случаях — в 10 раз (!).Существует неприятный момент — может понадобиться перепрошить сам программатор USBasp что бы он мог работать с Arduino IDE , в этом случае нужна будет платка фирменного Ардуино или ещё один программатор который будет программировать наш .
В разобранном виде наш подопытный USBasp (USB ISP) выглядит так :
В моем случае было вот что — USB ISP программатор не работал под Ардуино даже в старой версии 1.0.3 и пришлось обновить прошивку самого программатора.
Для этого, первым делом, вынул из USB порта компьютера этот брелок, разобрал корпус и замкнул 2 контрольные точки ( обозначенные красными кружками ) :
Предварительно подключив линии (сигнальные и линии питания) к Ардуино УНО, скачал прошивку для USBasp на родном сайте изобретателя — http://www.fischl.de/usbasp/ ( http://www.fischl.de/usbasp/usbasp.2011-05-28.tar.gz TPI support ). И прошиваем программатор с помощью программы, например, eXtreme Burner — AVR .
Если всё сделано правильно то теперь у вас есть программатор полностью совместимый с Ардуино IDE и протоколом AVRasp.
Теперь осталось соединить микроконтроллер, в который нужно залить бутлоадер Ардуино, и воспользоваться опять программой eXtreme Burner — AVR , открыв в ней файл бутлоадера. Сам файл бутлоадера есть в папке Arduino IDE и называется ATmegaBOOT-prod-firmware-2009-11-07.hex ( по умолчанию тут — C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega8 ).
Опятьт таки, если всё было сделано корректно то на этом процесс прожига бутлоадера Ардуино в ваш микроконтроллер закончен. теперь можно писать программы и паять железо! 🙂
Замена микроконтроллера ‘ATmega’ на примере ‘Anet A6’
Подробный инстракшн съедобный для абсолютных чайников во всех сферах затрагиваемых при перепайке и прошивке микросхем.Объект: типичный ‘Anet A6’ с выгоревшим разъёмом стола > КЗ выводов термистора > выбитый канал микроконтроллера > температура стола на дисплее перманентно 100-400C` и ошибка его нагрева > полный отказ в работе. Впрочем, вариантов инвалидизировать микроконтроллер кроме подобного — великое множество.
Варианты решения:
1) Замена управляющей платы (AliExpress ~2000₽). Обстоятельств может быть много, каждый решает сам.
2) Замена микроконтроллера (300-700₽). Собственно то, о чём статья. Вариант средний по времени и цене.
3) Перевод термистора стола на другой канал микроконтроллера (0₽). Самый быстрый вариант решения беды если вы это умеете (кроме перепайки вывода редактируется сама прошивка). К тому-же статья не конкретно о случае с КЗ термистора, если микроконтроллер лёг полностью — там и редактировать нечего.
Подготовка:
1) Пайка. Маломощный или регулируемый паяльник, жало с плоским наконечником D=2-4(мм). Идеально — паяльный фен. Неактивный флюс, например дешёвый и сердитый спирто-канифольный СКФ/ФКСп (~100₽). Твёрдая канифоль не канает т.к. засмердит посадочное место, активные аля паяльная кислота не канают вдвойне т.к. зачастую слабо выполняют функцию термопередачи необходимую для быстрой и успешной перепайки SMD микросхем, кроме прочего после них требуется промывка, вымыть флюс из под микросхемы врятли удастся, что приведёт к повторному ремонту вследствии окислительных процессов. Припоя зачастую достаточно того, что уже есть на плате. Облегчить демонтаж в случае орудования паялом помогут зубочистки, скальпели и прочие мелкие колюще-режущие предметы.
2) Работы с микроконтроллером. Микросхема ‘ATmega 1284P’, розничная стоимость в РФ 300-400₽ (AliExpress в разы дороже т.к. в основном партии по 5-10шт., половина из которых могут оказаться нерабочими). Прошивка при помощи компьютера через USB, ищем программатор ‘AVR USBASP’ (200-300₽ розница РФ, 70-100₽ AliExpress), переходник для указанного программатора ‘ISP10 > ISP6’ (50-100₽). Информация касательно софта непосредственно на описании этапа прошивки.
Товар лицом. Микроконтроллер ‘ATmega 1284P’, программатор ‘AVR USBASP’, переходник ‘ISP10 > ISP6’.Перепайка:
1) Выпаиваем. Обрабатываем микросхему по кругу флюсом для улучшения распределения температуры. Работа феном — вставляем с любого угла между микросхемой и платой тонкий острый предмет, греем, готово. Работа паяльником — вставляем острые предметы подобно клиньям под все углы микросхемы и водим паяльником по выводам микросхемы равномерно прогревая её по кругу, по мере увеличения зазора клинья продавливаем под микросхему, при правильности действий демонтаж займёт не более 5 минут.
2) Впаиваем. Очищаем посадочное место от лишнего мусора и флюса, проверяем кол-во припоя и его равномерное распределение на всех контактах платы, в данном случае лучше мало, чем много. Кидаем новый микроконтроллер, сверяем совпадение ключей (меток) на плате и микросхеме, центруем, наносим флюс, припаиваем. С феном никаких нюансов нет, всё очевидно, работая паяльником аккуратно пропаиваем каждый вывод, алгоритм выпаивания с круговыми движениями жалом по всем контактам неуместен т.к. будут спайки выводов устранение которых — лишняя морока, и припой распределится неравномерно.
3) Удаляем флюс и внимательно осматриваем все выводы на предмет качественной спайки.
[IMG ID=152023 WIDTH=558 HEIGHT=313]Результат работы паяльником 40Вт, жало D=3(мм), флюс спирто-канифольный.
Перепрошивка:
1) Подключаем программатор ‘AVR USBASP’ к ПК, проверяем наличие ‘USBasp’ в диспетчере устройств. Если всё ровно — загружаем и устанавливаем драйвера. Берём архив из статьи или вводим ‘AVR USBASP драйвера’ в любую поисковую систему и выбираем на вкус и цвет. Содержимое архива в отдельную папку, установка через InstallDriver.exe.
2) Подключаем программатор к свежепропаянной управляющей плате принтера через переходник ‘ISP10 > ISP6’ в разъём J3 (ближе к центру платы). Светодиод рядом с микроконтроллером будет светить постоянно либо издаст кратковременное свечение и погаснет, зависит от содержимого микроконтроллера и ни на что не влияет.
3) Софт. Его для работы с микроконтроллерами ATmega бесконечное множество, по моему опыту наиболее простой и адекватно работающей с программатором ‘AVR USBASP’ является программа ‘AVRDUDE_PROG’ от российского разработчика. Архив прикреплён к статье, извлекаем содержимое в удобное место, запускаем через AVRDUDEPROG.exe.
4) Достаём Flash и EEPROM для вашего оборудования. Файлы под ‘Anet A6’ прикреплены к статье в архиве A6_firmware.rar, скачиваем и распаковываем.
5) Переходим к AVRDUDE_PROG, вкладка Program. Указываем программатор ‘usbasp’ и прямые фьюзы (fuses).
6) Выбираем микроконтроллер ‘ATmega1284p’ и чистим его кнопкой ‘Стереть всё’.
7) Прошиваем. Указываем путь к Flash (файл A6.hex), указываем путь к EEPROM (файл A6.eep), соответственно нажимаем кнопку ‘Программирование’ на Flash и EEPROM. Светодиод рядом с микроконтроллером начнёт периодически помаргивать, плата может запуститься и вывести изображение на дисплей, но работа будет крайне нестабильной т.к. незапрограммированны фьюзы (базовые настройки микроконтроллера).
8] Переходим ко вкладке ‘Fuses’. Убеждаемся в том, что выбраны ПРЯМЫЕ фьюзы. Программирование инверсных фьюз приведёт к блокировке микроконтроллера. Выставляем галочки согласно скриншоту, 7 раз проверяем, после чего программируем.
9) Если всё сделано верно, светодиод рядом с микроконтроллером начнёт мерцание с периодичностью ~ 1 раз в 1 сек.Отключаем плату от программатора и подключаем к принтеру. PROFIT!
Принимаю в ремонт и апгрейд различное оборудование, обращаться в ЛС или на e-mail (см. профиль).Санкт-Петербург
9 — Gravador USBasp-PHD — Páginas Pessoais
Для проверки, проверки или получения информации, используйте функцию поиска страницы для локализации, чтобы узнать ее местонахождение.
Se Você está certo que o endereço informado está correto mas está encontrando um erro, por Favor contate o Administração do Site.
Обригадо.
Você poderia estar procurando por…
- 9 — Gravador USBasp-PHD
- Прочти меня.текст
- readme.txt
- Прочти меня
- Обсуждение требований к USBasp
- Прочти меня
- Обсуждение требований к USBasp
- CeMatlab_tutorial_huffman.pdf
- TEL45_Tutorial_huffman.pdf
- Учебник Qsys / NIOS / Sockets
- Учебник, разработанный всем для Джимми Юджи Танамати Соарес.Agradecimentos pelo belo trabalho. 21.11.19 — Correção feita pelo aluno Wagner Rodrigues.
Настройка Atmel Studio для программирования USBasp и AVR | Автор: Манаш Кумар Мандал
Это может сбить с толку тех, кто только начал программировать в среде AVR. Atmel studio — лучшая IDP [интегрированная платформа разработки] для программирования AVR и разработки встроенных систем.Просто установка занимает очень много времени. Но как только вы закончите настройку IDP для программирования AVR, вы уже не вернетесь назад!
Если вы не знаете, вы можете установить Atmel Studio только в Windows . Так что, если вы используете Linux, эта запись в блоге вам не поможет.
Прежде всего, давайте взглянем на мою текущую конфигурацию системы
- Windows 10
- Atmel Studio 7 (версия: 7.0.1188)
- WinAVR
Или
- Плата разработки AVR на основе USBasp
USBasp
Если вы не знаете, как выглядит USBasp, вот изображение для вас.
USBaspAVR Development Board
Я использую плату для разработки на основе USBasp. Он поддерживает драйвер USBasp, поэтому даже если я настраиваю свой IDP с помощью этой платы разработки. Он должен работать и на вашем USBasp.
Эта плата разработки имеет гнездо ZIF, куда вы можете установить микросхемы AVR и программировать с помощью платы. Никаких дополнительных подключений не требуется. Есть распиновка слотов для GPIO.
AVR Mini Development BoardУбедитесь, что у вас есть Atmel Studio, WinAVR и USBasp , чтобы следовать этому руководству.
Установите Atmel Studio и WinAVR. Вы можете следовать инструкциям, встроенным в мастер установки.
Так как я собираюсь загрузить свои коды в AVR с помощью avrdude. Сначала мне нужно скомпилировать коды, используя тот же набор инструментов.
Для этого мне нужно создать настраиваемую конфигурацию цепочки инструментов.
Шаг 1
Перейдите в Инструменты> Параметры> Цепочка инструментов
В раскрывающемся меню выберите Atmel AVR 8-бит (язык Cpp) .
Шаг 2
Щелкните «Добавить ароматизатор», затем установите имя пакета «WinAVRDev» или любое другое имя, которое вам нравится.
Чтобы указать базовый путь к пакету, перейдите в каталог установки WinAVR и найдите папку bin . Теперь скопируйте путь и вставьте его. [Для меня это было E: \ WinAVR-20100110 \ bin ]
Нажмите Добавить .
Вы можете сделать вновь созданный пакет инструментальной цепочки по умолчанию, нажав на кнопку Установить как по умолчанию.
Если вы закончили настройку пакета инструментальной цепочки, нажмите OK , чтобы закрыть диалоговое окно.
Для загрузки скомпилированных шестнадцатеричных файлов. Вам необходимо настроить внешний инструмент для USBasp. Если вы не создаете внешний инструмент для USBasp, который тоже подходит, вам нужно ввести команды avrdude для загрузки или использовать другое программное обеспечение для загрузки шестнадцатеричного файла за вас.
Зачем беспокоиться, когда Atmel Studio может помочь вам как в компиляции кода, так и в процессе загрузки шестнадцатеричных файлов?
Шаг 1
Перейдите в Инструменты> Внешние инструменты
Нажмите «Добавить» и заполните пустые поля следующими строками.
Проверка: использовать окно вывода
Снимите флажок: запрашивать аргументы , Обрабатывать вывод как Unicode
Название: Вы можете дать любой заголовок.
Команда: Это запустит программу avrdude, поэтому вам нужно указать путь к каталогу avrdude в это поле. Для меня это был E: \ WinAVR-20100110 \ bin \ avrdude.exe
Аргументы: Это самая сложная часть. Это раздел аргументов, в котором вам нужно передать определенные аргументы для выполнения определенных задач.Поскольку я использую внешний инструмент в качестве загрузчика программного кода. Мне нужно ввести команду, которую я буду использовать в avrdude для загрузки кодов.
Здесь вы можете много узнать о командах avrdude.
Вот аргумент, который я предоставил
avrdude -c usbasp -p atmega8 -U flash: w: $ (ProjectDir) Debug \ $ (TargetName) .hex: i
Вы можете видеть, что я поставил atmega8 здесь. Это потому, что я программирую свой чип ATmega8.
Если вам нужно запрограммировать другой микроконтроллер.Вы должны изменить название микросхемы .
Создание нового проекта и выбор устройств
Теперь нам нужно проверить, правильно ли работает моя конфигурация. Создайте новый проект [Исполняемый проект GCC C ++].
Выбор цепочки инструментов
Нам нужно проверить, правильно ли выбрана цепочка инструментов.
Вид> Обозреватель решений
Щелкните правой кнопкой мыши проект> щелкните Свойства> Дополнительно> Вкус цепочки инструментов> Выберите цепочку инструментов в раскрывающемся меню
Компиляция проекта
Сборка> Сборка решения
Если вы можете связать последнюю строку вашего вывода с моей, тогда вы успешно скомпилировали свою программу и можете сразу ее загрузить!
=== Сборка: 1 успешная или последняя версия, 0 неудачных, 0 пропущенных ==
Загрузка файла *.HEX File
Под загрузкой шестнадцатеричного файла я подразумеваю программирование микросхемы avr. Помните, что до сих пор вы только скомпилировали проект и еще не загрузили код в свой чип atmega.
Правильно подключите USBasp к микроконтроллеру AVR.
Использование внешних часов
Если вы используете внешний кристалл, вам также понадобятся два керамических конденсатора 22 пФ, подключите компоненты в соответствии со следующей схемой
Если вы используете внешние часыТеперь подключите микросхему ATmega к USBasp
USBasp с ATmega8 / 168/328Наконец, загрузка кода
Перед тем, как приступить к этому, не забудьте сначала подключить USBasp к вашему ПК!
Теперь я собираюсь использовать External Tool для загрузки шестнадцатеричного файла в микросхему avr.
Успешная загрузка выглядит следующим образом.
Успешная загрузкаУстранение неполадок
В случае возникновения какой-либо ошибки, прежде всего, проверьте каталог WinAVR.
Для следующей ошибки выполните указанные шаги.
avrdude.exe: ошибка: включение программы: цель не отвечает. 1avrdude.exe: ошибка инициализации, rc = -1 Дважды проверьте соединения и повторите попытку, или используйте -F для отмены этой проверки. Avrdude.exe выполнено. Спасибо.
Это означает, что ваш USBasp не может связаться с целевой микросхемой [микросхемой, которую вы собираетесь программировать].
Шаги:
Для решения проблемы вы можете предпринять следующие шаги.
- Дважды проверьте, правильно ли он запитан от + 5В постоянного тока.
- Короткие AVCC и VCC вместе и оба GND вместе.
- Проверьте соединение кристалла и керамических конденсаторов.
Если шаги не помогли, возможно, ваш чип залит кирпичом. Попробуйте весь процесс на новом рабочем чипе.
Поздравляем, если вы запрограммировали свой AVR без каких-либо проблем.Следите за сообщениями в блогах на основе AVR. Спасибо за прочтение!
USBASP — Решение для ОШИБКИ ВКЛЮЧЕНИЯ ЧИПОВ — Обновление прошивки
ПрограмматорUSBASP широко используется для загрузки файла .HEX на микросхемы AVR / 8051.
На ПК с Windows 10 могут возникнуть проблемы с установкой драйверов. Прочтите мой предыдущий блог о том, как устанавливать драйверы.
USBASP – How to install driver on Windows 8 /10
При подключении USBASP к плате разработки 8051 убедитесь, что контакт GND совпадает с GND обеих плат.
Для макетной платы отдельный источник питания не требуется. Он может работать от самого USB.
Подключите USBASP к ПК.
Установите драйвер по ссылке ниже:
Драйвер USBASP:
https://protostack.com.au/download/USBasp-win-driver-x86-x64-v3.0.7.zip
После установки драйвера в Диспетчере устройств появляется USBASP.
Программная среда IDEPROG ISP используется для загрузки файла HEX на IC 8051.
Ссылка для скачивания ниже
ПРОГ ISP:
http://exploreembedded.com/wiki/images/1/1a/Progisp1.72.rar
Установка не требуется. Разархивируйте загруженный файл и дважды щелкните приложение PROGISP.
Сверху вы можете увидеть два блока, PRG ISP и USBASP
PRG ISP будет недоступен, если программатор не будет обнаружен на неподключенном компьютере.
USB ASP будет недоступен, если драйвер не установлен.
Убедитесь, что эти два блока не окрашены в серый цвет.
Выберите свой IC из раскрывающегося меню. 89C52 или 89S52, выберите правильный номер детали.
Нажмите кнопку «Стереть».
Если устройство usbasp в порядке, стирание будет выполнено.
Здесь я получаю печально известную ошибку CHIP ENABLE.
Эта ошибка сохраняется даже после того, как мощность программирования отрегулирована с помощью ползунка и снята отметка «Проверить подпись».
ОшибкаCHIP ENABLE возникает, если IC неправильно вставлена в гнездо ZIF платы разработки или если выбран неправильный чип.
Если проблема не устранена, вам необходимо обновить ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ USBASP.
Для этого мы используем ARDUINO UNO в режиме ISP.
Подключите UNO к ПК и обратите внимание на назначенный COM-порт.
Откройте Arduino IDE.
Из инструментов выберите плату как Arduino UNO, порт как COM-порт назначен
Программиствыбран как ARDUINO AS ISP.
В разделе «Файл» -> «Примеры» -> выберите ARDUINOISP
.Загрузите эскиз.Теперь Arduino готов как ISP-программист.
Теперь загрузите прошивку USBASP с сайта разработчиков
usbasp Прошивка
https://www.fischl.de/usbasp/
Загрузите файл .tar.gz и дважды распакуйте его. В разделе bin -> firmare вы можете увидеть файл прошивки Atmega8 в формате .hex.
Запишите путь, по которому сохранен этот файл.
Для загрузки прошивки мы используем приложение AVRDUDES GUI
Загрузите его по ссылке ниже и установите.
AVR, ЧУЧИ:
http://blog.zakkemble.net/avrdudess-a-gui-for-avrdude/
Подключите Arduino к USBASP следующим образом:
ARDUINO USBASP
5 В -> Vcc
Земля -> Земля
10 -> RST
11 -> MOSI
12 -> MISO
13 -> SCK
Подключите USB ПК к ARDUINO (не к usbasp)
Arduino — главный, а USBASP — подчиненный
Открыть AVRDUDES
Выберите программиста как ARDUINO
COM-порт как порт, выделенный для Arduino
Скорость передачи 19200, если вы попробуете любую другую скорость, отобразится ошибка тайм-аута.
Битовые часы — оставьте поле пустым
Целевой MCU выберите как ATMEGA8
В разделе FLASH нажмите… и выберите файл прошивки, который мы скачали ранее.
Предохранители могут быть установлены как предохранители низкого уровня: 0xFF, предохранители высокого уровня: 0xE9, выберите отметку напротив SET FUSES.
Теперь нажмите DETECT
Я получаю сообщение об ошибке «подпись 00000», что означает, что цель не обнаружена.
Если вы проверите схему USBASP, перемычка JP2 должна быть включена, чтобы разрешить самопрограммирование.
Эта перемычка находится между контактами 1 и 16 (контакт выбора ведомого) USBASP IC.
Поскольку у моего USBASP нет этой перемычки, я припаял резистор 270E между контактами 1 и 16.
Сейчас попробовал DETECT на AVRDUDES.
Цель обнаружена, сигнатура ATMEGA8 — 1E9307.
Теперь при нажатии кнопки PROGRAM прошивка успешно прошивается.
Я просто удалил резистор и успешно попытался загрузить шестнадцатеричный код на 8051.
Давайте посмотрим на второй способ обновления прошивки.
Здесь мы используем другой работающий программатор USBASP вместо ARDUINO.
Подключение один к одному
Vcc в VCC, Gnd в Gnd, MOSI в MOSI, MISO в MISO, RST в RST
На целевой USBASP резистор 270 Е, припаянный между контактами 1 и 16.
ПК подключен к Master USBASP.
Откройте AVRDUDES.
Выберите программатор как USBASP, порт как USB, скорость как 19200
Битовая частота будет автоматически выбрана как 1,5 МГц
Щелкните Программа, чтобы увидеть, как прошивка успешно обновлена.
Этот метод медленнее, чем метод Arduino.
Игнорировать любые ошибки синхронизации SCK, возникающие из-за неудачной установки полных битовых часов.
ПОДДЕРЖКА ВИДЕО:
Нравится:
Нравится Загрузка …
Связанные Учебное пособиеUSBasp: загрузка программы в микроконтроллеры ATmega
Программатор USBasp был разработан Томасом Фишлем.Это проект с открытым исходным кодом, и все схемы и исходные коды доступны на его веб-сайте.
USBasp — это внутрисхемный программатор USB для контроллеров Atmel AVR. Он просто состоит из ATMega88 или ATMega8 и пары пассивных компонентов. Программатор использует USB-драйвер только для прошивки, специальный USB-контроллер не требуется.
Конечно, первое требование в этом посте — это USBasp. Если у вас его еще нет, вы можете получить его здесь.
Поддерживаемые микроконтроллеры:
USBasp поддерживает большое количество микроконтроллеров от ATMEL. Вот полный список.
Mega Series | ||||
ATmega8 | ATmega8A | ATmega48 | ATmega48A | ATmega48P |
ATmega48PA | ATmega88 | ATmega88A | ATmega88P | ATmega88PA |
ATmega168 | ATmega168A | ATmega168P | ATmega168PA | ATmega328 |
ATmega328P | ATmega103 | ATmega128 | ATmega128P | ATmega1280 |
ATmega1281 | ATMEGA16 | ATmega16A | ATmega161 | ATmega162 |
ATmega163 | ATmega164 | ATmega164A | ATmega164P | ATmega164PA |
ATmega169 | ATmega169A | ATmega4259 9059 ATmega4259 9059 ATmega16589 9059 95 | ||
ATmega2561 | ATMEGA32 | ATmega32A | ATmega324 | ATmega324A |
ATmega324P | ATmega324PA | ATmega329 | ATmega329A | ATmega329P |
ATmega329PA | ATmega3290 | ATmega3290A | ATmega3290P | ATmega64 |
ATmega64A | ATmega640 | ATmega644 | ATmega644A | ATmega644P |
ATmega644PA | ATmega649 | ATmega649A | ATmega649P | ATmega6490 |
ATmega6490A | ATmega6490P | ATmega8515 | ATmega8535 | |
Tiny Series | ||||
ATtiny12 | ATtiny13 | ATtiny13A | ATtiny15 | ATtiny25 |
ATtiny | Attiny45 | ATtiny85 | ATtiny2313 | ATtiny2313A |
серии Classic | ||||
AT90S1200 | AT90S2313 | AT90S2333 | AT90S2343 | AT90S4414 |
AT90S4433 | AT90S4434 | AT90S8515 | ||
AT90S8535 | ||||
CAN серии | ||||
AT90CAN128 | ||||
PWM серии | ||||
AT90PWM2 | AT90PWM3 |
Распиновка USBasp:
Наиболее распространенный USBasp имеет 10-контактный разъем, как показано на изображении выше.Распиновка такая, как показано ниже.
Соединения USBasp и MCU:
Если вы используете плату, на которой нет аналогичного порта разъема для программатора, или ваш MCU находится на макетной плате, вам необходимо соединить контакты по отдельности. В таблице ниже показаны контакты USBasp и MCU, которые должны быть соединены вместе.
Номер вывода USBasp | Вывод USBasp | Вывод микроконтроллера | |||||||||||||||||||||
1 | MOSI | MOSI | Сброс 7 | SCK | SCK | ||||||||||||||||||
9 | MISO | MISO | |||||||||||||||||||||
10 | Заземление | Заземление | |||||||||||||||||||||
2 | |||||||||||||||||||||||
2 | сделаны, мы готовы двигаться вперед.Обновление драйвера:USBasp требует обновления драйверов на платформе Windows. Драйверы доступны для загрузки здесь. Желательно скачать последнюю версию прошивки. После загрузки извлеките содержимое файла в папку. Теперь, когда вы подключаете программатор к USB-порту системы Windows, вам может потребоваться обновить драйверы. Это можно сделать в окне диспетчера устройств. Перейдите в Пуск> Диспетчер устройств Найдите новое добавленное устройство.Это будет на вкладке «Порты». Щелкните его правой кнопкой мыши, выберите «Обновить драйверы» и найдите папку, в которую вы только что извлекли драйверы. Загрузка кода в MCU:Теперь мы готовы загрузить код в MCU. Для этого нам понадобится шестнадцатеричный файл кода. Для этого нам также понадобится программное обеспечение. Существует множество действительно хороших программ, которые могут помочь вам с этой задачей:
Все, что вам нужно сделать, это загрузить шестнадцатеричный файл и записать. USBasp и Arduino:USBasp можно использовать для загрузки загрузчика Arduino в микроконтроллер. Для этого подключите программатор к MCU, как упоминалось ранее. В среде Arduino IDE выберите Tools — Burn Bootloader — w / USBasp. Вивек — старший инженер по встроенным системам в Robert Bosch. Он работает над встраиваемыми системами последние 10 лет. Он любит делиться своими знаниями и обучать тех, кому это интересно. Nerdyelectronics.com был начат из-за этого интереса. USBasp-накопитель — последняя версия документации PlatformIOПлатформаAtmel AVR: 8-битные микроконтроллеры Atmel AVR обеспечивают уникальное сочетание производительности, энергоэффективности и гибкости конструкции. Оптимизированные для ускорения вывода на рынок и легкой адаптации к новым, они основаны на самой эффективной в отрасли архитектуре программирования на C и ассемблере .
Используйте [env: usbasp] платформа = atmelavr доска = usbasp Вы можете переопределить настройки USBasp по умолчанию для каждой среды сборки, используя [env: usbasp] платформа = atmelavr доска = usbasp ; изменить микроконтроллер board_build.mcu = atmega8 ; изменить частоту MCU board_build.f_cpu = 12000000L Отладка — решение «в один клик» для отладки с нулевой конфигурацией. Предупреждение В зависимости от вашей системы вам потребуется установить драйверы средства отладки. Пожалуйста, нажмите на совместимый инструмент отладки ниже, чтобы продолжить инструкции и информация о конфигурации. Вы можете переключаться между инструментами отладки и зондами отладки, используя параметр debug_tool в «platformio.ini» (файл конфигурации проекта). Накопитель USBaspимеет встроенный датчик отладки, а ГОТОВ для отладки.Вам не нужно использовать / покупать внешний датчик отладки.
Описание процесса и программы записи флэш-памяти AVR Сегодня, после многих дней ожидания (спасибо за терпение), у вас появилась возможность запрограммировать микроконтроллер AVR atmega8.Как было сказано ранее, для этой задачи вам понадобится один программатор USBASP. Просто подключите выход программатора (6 линий VCC, GND, RESET, SCK, MOSI, MISO) к соответствующим контактам обесточенной цели atmega8 (которую вы поместили на макетную плату). И последнее, что нужно — это программа (программа записи) для записи флеш-памяти! Чтобы записать программу, вы можете использовать это простое и удобное программное обеспечение для записи, которое фактически является графическим интерфейсом для AVRDUDE (инструмент командной строки). Программу «AVRLoader» можно загрузить с моего Google Диска по этой ссылке http: // goo.gl / cfIcIV. (Вы также можете попробовать это: http://extremeelectronics.co.in/avr-tutorials/guisoftware-for-usbasp-based-usb-avr-programmers/) Процесс записи флеш-памяти
Когда закончите, удалите соединение программатора USBASP с макета.Теперь возьмите один светодиод и подключите анод светодиода к контакту 28 Atmega8 на макете и подключите катод светодиода к шине 0 В (GND) через резистор 1 кОм. Наконец, подключите источник питания 5 В на макетной плате и следите за своим первым проектом AVR. Записанная программа включает и выключает контакт 28 PORTC ATMega 8 или с заданной задержкой (светодиод должен мигать с частотой 1 секунду). Обратите внимание, что до тех пор, пока вы не напишете биты предохранителей для внешнего генератора (мы обсудим это позже), по умолчанию Atmega8 работает на внутреннем RC-генераторе с частотой 1 МГц.Вот почему в нашем первом проекте здесь не используется внешний Xstal. Описание программы #define F_CPU 1000000UL // определение тактовой частоты #include // включаем файл заголовка ввода / вывода #include // включает файл заголовка задержки int main (void) { // Устанавливаем регистр направления данных на вывод DDRC | = (1
Источник часов!
Как указывалось ранее, ATMega8 поставляется с источником тактовой частоты, настроенным по умолчанию на внутренний RC-генератор с частотой 1 МГц.Эта конфигурация подходит для многих простых проектов, где время не имеет решающего значения, а также удобна, поскольку уменьшает количество внешних компонентов. Однако вы можете столкнуться с ситуациями, когда вам нужен более точный источник синхронизации, и для этого необходимо добавить внешний кварцевый генератор. Кварцевый генератор подключен к микроконтроллеру, как показано ниже. Чтобы настроить микроконтроллер на использование внешнего кварцевого генератора, вам необходимо изменить «биты предохранителя». Для новичка предохранители AVR могут показаться очень неприятными, но это не так! → Часть 5: Источники синхронизации и биты предохранителей Arduino Nano в качестве программиста для обновления прошивки USBASP [решено]Этот пост предназначен только для самостоятельной работы.Яростно работал целый день за своим Mac с утра субботы примерно до 19:00 из-за единственной строчки с предупреждением. avrdude: предупреждение: невозможно установить период sck. пожалуйста, проверьте обновление прошивки usbasp. Да, может быть, это не стоит моего времени, но все же … В любом случае, я использую свой Arduino Nano в качестве программатора ISP, чтобы загрузить новую прошивку на USBASP. В среде Arduino IDE откройте файл, например, ArduinoISP. Загрузите скетч arduinoISP в Nano. Соедините контакты. Arduino Nano — USBASP 5V — 2 GND — 10 13-7 12-9 (MISO) 11-1 (MOSI) 10-5 (RESET) Не забудьте подключить перемычку J2 или JP2, чтобы включить самопрограммирование на USBASP. Не используйте версию прошивки 2011 года, используйте вместо нее версию 2009 года У меня есть два примера команды, для Windows avrdude -C ../etc/avrdude.conf -c avrisp -P COM3 -b 19200 -p m8 -vи avrdude -p m8 -b 19200 -c avrisp -P com2 -U flash: r: usbasp.atmega8.hobbyking.hexНеобходимо изменить это, чтобы удовлетворить мою среду Mac Я уверен, что у моего Mac нет COM-порта, и моя успешная команда avrdude выглядит так: avrdude -p attiny13A -P usb -c usbasp -n, так что, возможно, мне придется использовать -P usb avrdude -c avrisp -P usb -b 19200 -p m8 -vno OK снова Nugrohos-MacBook-Air: прошивка nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 - vНажмите reset на Arduino Nano перед вводом команды выше Nugrohos-MacBook-Air: прошивка nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -vИспользование опции -F Nugrohos-MacBook-Air: прошивка nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -v -FТеперь резервное копирование Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: r: original_firmware.hex: r -FИ загрузить новую прошивку Nugrohos-MacBook-Airugro: attiny -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -U flash: w: firmware.hex -Fпопробовать Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -vЭто многообещающе Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -n, а не перейти к исходной версии 2009 года Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: w: usbasp.atmega8.20 -Fвернуться к исправленной версии 2009 года Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P / dev / cu.wchusbserial1420 -U flash: w: firmware.hex -F. хм, может быть ATTiny сломан здесь -v -vv и -vvv Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -vПоищите на форумах, похоже, виновата автоматическая установка sck на новой фирме. (http://openrcforums.com/forum/viewtopic.php?f=10&t=1363#p29615) avrdude: auto set sck period (потому что заданный равен нулю)получил Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m8 -c avrisp -b 19200 -P /dev/cu.wchusbserial1420 -U flash: w: main.hex -Fнет ммм, я не хочу возвращаться к старой заблокированной прошивке.Форум предлагает мне перемыть четыре резистора любопытный подключить его к моему arduino pro mini и вуаля… Nugrohos-MacBook-Air: attiny13a nugroho $ avrdude -p m328 -c usbasp -P usb -nэто очень странно, а потом ugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -P usb -n - Fвздох, мой usbasp в порядке С другой стороны: исчезло предупреждение об обновлении прошивки при использовании main.hex, самокомпилированной прошивки 2009 года ###### ждать, …. нашел другое решение из http://forum.arduino.cc/index.php?topic=262150.0 и http://forum.arduino.cc/index.php?topic=282330.0 Nugrohos-MacBook-Air: coba3 nugroho $ avrdude -p t13 -c usbasp -B4 -n. coba.s — PB0, PB1, PB2 подключен к светодиоду каждый. PB0 и PB всегда включены, в то время как PB2 мигает каждые 1 с. .include «../tn13Adef.inc» .org 0 init: ldi r16,0b00000111 out DDRB, r16; PB2 в качестве выхода sbi PORTB, 1 sbi PORTB, 0 цикл: sbi PORTB, 2 таймер rcall cbi PORTB, 2 таймер rcall rjmp loop2: rjmp таймер 9000 r16,0; это счетчики таймеров ldi r17,0 ldi r18,5 timer2: inc r16; выполнить 256 итераций brne timer2 inc r17; сделать 256 раз brne timer2 dec r18 brne timer2; сделать 5 раз рет; return мне на этот день хватит, . |