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

Опубликовано 01.04.2013 20:20:00


В данной статье мы произведем заливку Arduino bootloader'а с помощью программатора USBasp

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

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

 

 

Часть 1

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

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

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

Схема 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. В данной статье я попытался собрать всю необходимую информацию по заливке бутлоадера, напомнить старое и добавить новое. Надеюсь данная статья поможет вам в ваших начинаниях. Удачи в ваших будущих творениях!


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