Заливка bootloader с помощью программатора USBasp

Содержание

Статья будет разбита на две части: 1) Прошивка контроллера напрямую через программку eXtreme Burner — AVR (разберем где лежат прошивки, а также где взять FUSE биты). 2) Прошивка через среду Arduino IDE (среда все сделает за вас)

Заливка bootloader для Arduino с помощью eXtreme burner avr

Часть 1

Заливка через программатор вручную

Для начала необходимо скачать и распаковать программку eXtreme Burner.

После успешной установки необходимо подключить программатор к Arduino. На выходе программатора Громова мы имеем 10 пиновый ISP разъем, а плате Arduino 6 пиновый ISCP разъем.

Для упрощения нашей работы подключим программатор к клону Arduino через очень удобный переходничок с 10 пинового разъема на 6 пиновый.

Не важно как и с помощью чего вы будете подключать, главное чтоб одноименные контакты совпали.

Заливка bootloader для Arduino с помощью программатора USBasp.

Итак, открываем eXtreme Burner — AVR. Первым делом необходимо выбрать контроллер. В данной статье мы будем прошивать 328 мегу. Данная программка чрезвычайно проста в обращении, из-за этого и выбрана для примера, однако 328ой меги нет в поддерживаемых контроллерах, выбираем из списка 32ю мегу. При загрузке выдаст ошибку, о том что выбран неправильный чип. Игнорируем ошибку и все зальется без проблем. Данный программатор поддерживает много контроллеров, а также 4 среды программирования, более подробно о его характеристиках можно прочитать здесь.

Extreme burner avr заливка

Далее нам необходимо открыть сам файл прошивки. Кликаем на иконку

Нужный нам файл находится в папке со скачанной средой Arduino.

Для ATmega328 arduino-1.0.3\hardware\arduino\bootloaders\atmega

В папке bootloaders также находятся прошивки для всех остальных контроллеров, поддерживаемых средой Arduino.

Заливка bootloader для Arduino с помощью программатора USBasp.

После загрузки прошивки в программку необходимо проставить фьюз биты. Переходим на вкладку Fuse Bits/Settings

Найти их значения можно также в скачанной папке Arduino IDE.

bootloader

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

Заливка bootloader для Arduino с помощью программатора USBasp.

Далее находим строчку, в которой написаны наши фьюз биты в шестнадцатеричной системе. Как видно Low fuse у нас имеет значение 0xFF, а High fuse 0xDA. В отличии от программы Uni prof, которая работает с десятеричной системой счисления (с помощью Uni prof мы заливали бутлоадер в предыдущей статье), eXtreme Burner — AVR работает как раз в шестнадцатеричной системе счисления, так что в данном случае переводить ничего не надо, а просто берем и записываем значения в окошки фьюз битов.

Заливка bootloader для Arduino с помощью программатора USBasp.

Основная работа выполнена, теперь нам остается только нажать кнопочку

Начинается заливка и, как я уже говорил, должна выпасть безобидная ошибка.

Заливка bootloader для Arduino с помощью программатора USBasp.

Игнорируем ошибку и загрузка продолжается дальше.

Заливка bootloader для Arduino с помощью программатора USBasp.

Ждем еще десяток секунд и все готово.

Заливка bootloader для Arduino с помощью программатора USBasp.

Если все прошло успешно, то ваш контроллер стал поддерживать среду Arduino IDE.

Часть 2

Заливка бутлоадера из среды Arduino

Теперь рассмотрим более простой способ заливки бутлоадера. Данный вариант заливки через USBasp прост, я бы даже сказал примитивен, т.к. для его осуществления не нужно иметь даже понятия о HEX файлах и FUSE битах. Однако зачем каждый раз лезть в boards.txt, вручную выбирать нужную прошивку, перепроверять, если все это безошибочно может сделать сама IDEшка?

Итак. заливка бутлоадера напрямую из среды производится всего в 3 этапа.

Этап 1. Выбираем плату, для которой нам нужно прошить бутлоадер

Прошивка бутлоадера из среды Ардуино. Выбираем плату

Этап 2. Выбираем программатор к которому подключен контроллер, в нашем случае USBasp.

Прошивка бутлоадера из среды Arduino. Выбираем программатор

Этап 3. Нажимаем на Записать загрузчик

Прошивка бутлоадера из среды Ардуино. Жмякаем Записать загрузчик

Запись загрузчика на плату ввода/вывода

Ждем секунд 10. Вот и все. Загрузка завершена.

Как мы видим данный способ нереально прост и требует минимальных усилий. Плюсом к заливке данным методом является также то, что среда автоматически выберет нужный HEX файл и 100% проставит правильные фьюз биты.

При заливке бутлоадера методом из части 1, столкнулся с интересной штукой, в версиях Arduino IDE до 1.0.3 в папке hardware\arduino\bootloaders\atmega8 лежал только один HEX файл ATmegaBOOT.hex. В версии 1.0.3 появилось 2 HEX файла ATmegaBOOT.hex и ATmegaBOOT-prod-firmware-2009-11-07.hex. При заливке первого, скетчи грузятся, однако не стартуют, при загрузке второго все работает правильно. Странно, думаю что это для совместимостей с более поздними версиями, однако это всего лишь догадка. В файле с указанием фьюзбитов и файлов прошивок указан как раз таки этот.

Правильный HEX файл

P.S. В данной статье я попытался собрать всю необходимую информацию по заливке бутлоадера, напомнить старое и добавить новое. Надеюсь данная статья поможет вам в ваших начинаниях. Удачи в ваших будущих творениях!

А как же комментарии?

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.


Источник: zelectro.cc