Прошивка hex-файлов в Arduino

Некоторые проекты для Arduino распространяются не в виде файлов скетчей (*.ino), а в виде hex-файлов (*.hex). Я расскажу, как прошить такой файл в Arduino.

Получение hex-файла

Как получить hex-файл для своего проекта или скачанного скетча? Для получения hex-файла, соответствующего требуемому скетчу, необходимо открыть этот скетч (например, bike.ino) в Arduino IDE (я использую версию 1.6.6) и выбрать в меню Скетч (Sketch) команду Экспорт бинарного файла (Export Compiled Binary):
Arduino Экспорт бинарного файла

После этого происходит компиляция и в папке скетча появляются два hex-файла (для скетча bike.ino - bike.ino.eightanaloginputs.hex и bike.ino.with_bootloader.eightanaloginputs.hex):
Arduino hex-файлы

Hex-файл имеет текстовый формат и состоит из строк вида
:100020000C94DF030C94DF030C94DF030C94DF03C8

Отличие этих двух файлов заключается в наличии в файле *.ino.with_bootloader.eightanaloginputs.hex загрузчика Arduino:
Arduino загрузчик

Прошивка hex-файла

Как же прошить имеющийся hex-файл? Сначала необходимо подключить прошиваемую плату (я использую Arduino Nano 3.0) к USB-порту компьютера и узнать COM-порт подключения. Номер порта можно посмотреть в Arduino IDE в меню Инструменты (Tools):
Arduino  номер порта

Для прошивки hex-файла *.ino.eightanaloginputs.hex (для рассматриваемого скетча - bike.ino.eightanaloginputs.hex) в микроконтроллер платы Arduino используется программа AVRDude AVR Downloader-Uploader, предназначенная для прошивки микроконтроллеров AVR.

Для упрощения процедуры прошивки можно создать папку avrdude. Затем в эту папку следует скопировать файлы avrdude из папок Arduino IDE:
avrdude.exe и libusb0.dll (библиотека из проекта libusb-win32 https://github.com/libusb/libusb) - из папки \Arduino\hardware\tools\avr\bin\
Arduino avrdude
avrdude.conf (конфигурационный файл) -  из папки \Arduino\hardware\tools\avr\etc\
Arduino avrdude

В результате в папке avrdude содержатся три файла:
Arduino прошивка avrdude

В эту же папку следует скопировать прошиваемый hex-файл (в рассматриваемом примере - файл bike.ino.eightanaloginputs.hex).

В Arduino IDE версии 1.6.6 представлена программа avrdude версии 6.0.1
avrdude версия

Затем в консоли требуется ввести команду:
avrdude команда

-v : вывод подробной информации
-patmega328p : указание типа микроконтроллера
-c  arduino : указание программатора - программатор, используемый Arduino IDE
-P com11 : указание номера COM-порта (COM11)
-b 57600 : указание скорости COM-порта (57600 бод)
-D :  не выполнять очистку FLASH-памяти микроконтроллера.
-U flash:w:"bike.ino.eightanaloginputs.hex":i : w - запись  flash -  во FLASH-память i - файла в формате Intel Hex

После ввода команды выполняется прошивка hex-файла в Arduino:
Arduino hex-файлы
Готово!

Яндекс.Метрика