Site Loader

Содержание

Как загрузить HEX прошивку Ардуино

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

Здесь описана процедура загрузки прошивки микроконтроллера платы Arduino.

Данная инструкция позволит вам установить прошивку на наиболее популярные платы такие как Nano, UNO, Leonardo, Mini, Pro Micro и другие, собранные на микроконтроллере atmega328p, atmega168, atmega32u4 и других.

Для прошивки других типов плат обратитесь за помощью (http://jarduino.ru/support).

О прошивках Arduino

Не стоит путать прошивку со скетчем!

Скетч – это исходный код прошивки.

Прошивка ардуино – это скомпилированный (бинарный) файл, загружаемый в плату Arduino (в микроконтроллер).  Прошивка не является исходным кодом программы (скетча). Файл прошивки обычно имеет расширение

HEX.

Преимущество прошивки – это простота ее использования:

  • Не нужны никакие библиотеки,
  • Легко загрузить и выгрузить,
  • Можно перенести с одного устройства на другое.

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

Вместе с прошивкой часто может поставляться и копия памяти ПЗУ (EEPROM), в которой хранятся данные, необходимые для работы устройства.

Способы прошивки Arduino

Существует несколько популярных программ загрузки прошивки на Arduino. Подавляющее большинство из них сделаны частными программистами, а многие из них давно уже заброшены и не поддерживаются, но по-прежнему существуют в сети и прекрасно работают.

Рассмотрим пару наиболее популярных программ прошивки.

XLoader

Самая простая и лаконичная программа, которая подойдет любому, кому просто надо загрузить hex на популярную Arduino.

Xloader

Загрузка прошивки интуитивно понятна:

  • Выбираем…
    • файл прошивки
    • плату ардуино
    • Скорость передачи данных
  • Нажимаем кнопку Upload (Загрузить).

Последняя версия – 1.0.

Скачать.

Не может загружать EEPROM.

SinaProg

SinaProg – это уже более профессиональная и универсальная программа, разработанная неизвестными иранскими программистами. Однако сразу надо сказать, что данная программа – не более чем графическая оболочка для утилиты AVRDude, о которой пойдет речь дальше.

Универсальная оболочка для AVRDude
  1. Выбираем файл прошивки
  2. Настраиваем программатор: выбираем…
  3. Arduino,
  4. Порт
  5. Скорость передачи

Последняя версия — 2.1.1

Avrdude

Большинство всех загрузчиков используют одну и ту же утилиту – AVRDude (AVR Downloader-Uploader), которая давно вошла во многие среды разработки для ардуино, в т.м. числе и в

Arduino IDE.

Это мощнейшая утилита для работы с чипами AVR, но все-таки это утилита командной строки, что многим неудобно.

Загрузка HEX прошивки в Arduino

Читайте в следующем параграфе как прошить ардуино и с его помощью.

Последняя версия – 6.3.

Arduino IDE, AVRDude

Рассмотрим как загрузить прошивку, имея только Arduino IDE на компьютере с Windows.

Напомню, что вместе с Arduino IDE ставится и AVRDude, с помощью которого мы и загрузим прошивку.

Установка программного обеспечения

  • Установить программу Arduino IDE, если она не установлена
    • В ряде случаев потребуется установить дополнительный драйвер вашей платы (если плата – китайский клон). Драйвер нужен только в случае если вы не видите вашу плату в Arduino IDE.

Подготовка

  • Подключить плату к компьютеру
  • Запустить Arduino IDE
  • Определить к какому порту подключена Arduino, через меню, как показано ниже:
Выбор COM-порта ардуино
  • Определите в какой папке установлена Arduino IDE

Обычно – «C:Program Files (x86)Arduino»

Загрузка прошивки ардуино

  • Открываете командную строку и вводите следующую команду, предварительно скорректировав ее под свои условия:

«C:Program Files (x86)Arduinohardwaretoolsavr/bin/avrdude» -«C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf» -v -patmega328p -carduino -PCOM3 -b115200 -D -Uflash:w:Firware.hex:i

Обратите внимание на:

  • Путь к Arduino IDE (желтым),
  • Номер порта (голубым),
  • Скорость передачи данных (зеленым)
  • Название (путь) файла прошивки (фиолетовым)

Если при выполнении команды вы увидите ошибку как ниже

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2
Ошибка avrdude, avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xd2

, значит ваша плата не может работать со скоростью 115200, и необходимо установить скорость 57600.

Нажмите CTRL+C, чтобы прервать процесс.

Получение помощи

Если у вас что-то не получилось, и вы являетесь нашим клиентом, обратитесь на страницу поддержки.

Часто задаваемые вопросы о прошивке

Какой COM-порт выбирать?

Такой вопрос возникает обычно, когда программа не может автоматически выбрать COM-порт, к которому подключена Arduino.

Прежде всего, чтобы ардуино определялась, необходимо, чтобы на компьютере были установлены ее драйвера. Они ставятся вместе с Arduino IDE. Для китайских удешевлённых колонов может понадобится поставить драйвер Ch440.

Итак, драйвера установлены, теперь выберем правильный порт.

Порт можно посмотреть в Arduino IDE…

Выбор COM-порта в Arduino IDE

… или, если вы на Windows, в диспетчере устройств:

Определение COM-порта, к которому подключена Arduino через диспетчер устройств Windows.

Однозначно, это не COM1. Поэтому, в моем случае это будет COM3.

Какую скорость выбрать?

Скорость передачи зависит от версии платы. Если мы говорим о популярных Nano или UNO, то скорость будет 115200. Однако, если вы имеете дело с китайский клоном, то, возможно, придется выбрать 57600.

В общем, рецепт прост: если не получается с одной скоростью, тут же пробуете другую.

104-Прошивка любого Hex-файла в Arduino при помощи штатного загрузчика (Bootloader). — GetChip.net

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

Нас, прежде всего, интересуют три платы Arduino:

Arduino Uno – как самый распространенный вариант
Arduino Nano – компактный вариант, удобный для применения в небольших конструкциях
Arduino Pro Mini – дешевый компактный вариант без встроенного USB-UART преобразователя (для работы с ним понадобится внешний USB-UART преобразователь), но удобный в случае применения сети устройств.

Во всех вышеописанных платах используется микроконтроллер ATmega328 (в более старых версиях ATmega168).

Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf (9503 Загрузки)

Одной из главных причин выбора платы Arduino для проекта робота была возможность записывать прошивку устройства в МК не применяя программатора и каких либо дополнительных устройств. Все что нужно для прошивки микроконтроллера Arduino – это стандартный USB шнур (который входит в комплект Arduino).

Это значит, если Вы имеете Ардуину – Вы имеете любое устройство ZiChip!

Запись программы в МК через USB происходит через специальный загрузчик (Bootloader), который записан в МК при изготовлении платы. Вообще, загрузчик предназначен для работы со своим специальным программным обеспечением Arduino IDE, но в случае, когда необходимо прошить в Ардуину что-то постороннее (свой Hex-файл), есть программки позволяющее это реализовать.

Начнем, конечно, с моей программы загрузчика

GC-Uploader

gcUploader.zip (16477 Загрузок)

Программа интересна тем, что выбранный HEX-файл будет заливаться в Ардуину автоматически после каждого его изменения. Это удобно, так как при разработке проекта каждая компиляция (обновление хекса) будет инициировать прошивку Ардуины — Вам ничего не придется делать самому! Кроме того в программе есть и ручной режим прошивки.

 

Следующая — маленькая и удобная
XLoader (Arduino HEX uploader)

XLoader.zip (24329 Загрузок)

Программка имеет аскетичный интерфейс и работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл

— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload

Это все! Ничего сложного. Прошивка через несколько секунд будет записана в МК и автоматически запустится. Один минус – программа никак не сообщает о том, что прошивка уже записана, но это можно увидеть по прекращению мерцания светодиодов RXD и TXD на Ардуине.

XLoader использует для записи прошивки AVR Dude и в качестве протокола программирования используется STK500. Но, похоже, в настройках AVR Dude, произведена коррекция, так как использование стандартного AVR Dude с такими же настройками не дает результатов.

Автоматизация XLoader.

При разработке ПО для микроконтроллера производится очень много прошивок и всегда нужно стремиться автоматизировать этот процесс после сборки проекта — это экономит время и нервы. В данном случае автоматизация усложнена, так как программа не показывает командную строку для AVR Dude (разве что подбирать опытным путем), но некоторое упрощение процесса возможно. Делается это следующим способом – после первой прошивки не закрываем окно программы (COM порт после прошивки программа отпускает) и после следующей сборки проекта просто жмем кнопку «Upload». Конечно, сборка должна осуществляться в один и тот же Hex-файл.

 

Еще одна программка
ARP Uploader (Arduino Hex Uploader and Programmer)

ArduinoUploader.zip (20917 Загрузок)

Как и предыдущая, программка имеет простой интерфейс.
Процесс прошивки тот же:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт
— жмем Upload

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

При попытке прошить Arduino Nano программа отказывалась видеть МК. Причиной стала неправильная установка скорости COM порта. По умолчанию скорость стоит 19200, а нужно 57600. Скорость порта в программе не задается явно, она прописывается в строчке «AVR Dude Params» — поменяйте в ней значение 19200 на 57600.

Автоматизация ARP Uploader.
ARP Uploader как и XLoader работает через AVR Dude, но, в отличие от XLoader, показывает командную строку. Это дает возможность использовать AVR Dude напрямую в Make или Bat файле.

 

Дополнительные материалы.
Драйвера Arduino.

Считаю не лишним напомнить, что для связи Arduino с компьютером в последнем должны присутствовать драйвера. Оставляю здесь архив с драйверами для Arduino (включая и старые драйвера в Old_Arduino_Drivers.zip и драйвера для FTDI-чипа в папке «FTDI USB Drivers»

Arduino_drivers.zip (11589 Загрузок)

Стали появляться недорогие китайские Ардуины с драйвером Ch440G
Driver-Ch440G.zip (9682 Загрузки)

 

Загрузчики Arduino

Если Вы решите собрать свою плату Arduino (а сложного там ничего нет, фактически, это голый ATmega328 или ATmega168), Вам понадобится загрузчик Bootloader который должен содержать МК для работы со средой (или программками для заливки Hex-файлов). Конечно, Вам для записи Hex-файлов в чистый МК понадобится программатор и придется выставить фьюзы.

ATmegaBOOT_168_atmega328.zip (Одна Загрузка)
Для правильной работы нужно установить фьюзы следующим образом Low: FF   High: DA   Ext: 05

ATmegaBOOT_168_diecimila.zip (6313 Загрузок)
Фьюзы Low: FF   High: DD   Ext: 00

 

Схемы Arduino

Cхемы вышеописанных Ардуин.
Arduino_Uno_Rev3-schematic.pdf (10549 Загрузок)
ArduinoNano30Schematic.pdf (9606 Загрузок)
Arduino-Pro-Mini-schematic.pdf (Одна Загрузка)

 

Фьюзы установленные по умолчанию в Arduino (только с ATmega328)
Arduino Uno
Low Fuse 0xFF
High Fuse 0xDE
Extended Fuse 0x05

Arduino Duemilanove or Nano w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

Arduino BT w/ ATmega328
Low Fuse 0xFF
High Fuse 0xD8
Extended Fuse 0x05

LilyPad Arduino w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328
Low Fuse 0xFF
High Fuse 0xDA
Extended Fuse 0x05

(Visited 170 148 times, 1 visits today)

Прошивка hex-файлов в Arduino | Мои увлекательные и опасные эксперименты

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

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

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

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

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

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

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

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

Для прошивки 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\

avrdude.conf (конфигурационный файл) —  из папки \Arduino\hardware\tools\avr\etc\

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

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

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

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

-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:

Готово!

Как прошить HEX-файлы в Arduino IDE?

Как загрузить Hex-файл в Arduino IDE, что это такое и как с ним работать — говорим сегодня в новой информационной статье. Тема выбрана не случайно, многие пользователи интересуются программным обеспечением на более «продвинутом2 уровне. При этом конечно же не всем хочется бегать за помощью к специалистам, листать многочисленные форумы и т.д. но выход есть – наша инструкция.

Прежде чем начать обсуждение по сути, небольшое отступление с пояснениями, что такое Hex-прошивка. Рассказываем: речь идет о скомпилированном файле, который загружается в плату Ардуино, но не является исходным кодом, как скетч. Иными словами, это простой способ распространения программ для изучаемой нами среды. Такие файлы часто имеют расширение *.hex – отсюда и название. Они просты в использовании, не требуют скачивания дополнительных библиотек, легко переносятся на другие девайсы.

Важный момент! В этой прошивке отсутствует возможность получения читаемого исходного кода для внесения пользователями коррекций.

Как же получить hex-файл для создания собственного проекта либо скетча? 

  • Для начала откройте нужный вам скетч в среде разработки IDE. 
  • Выберите в меню «Скетч» команду «Экспорт бинарного файла».

  • Дождитесь окончания компиляции — в папке со скетчами появятся 2 или больше hex-файла:
Поговорим о том, как прошить Hex-файлы в Arduino IDE. Процедура не сложная — подключаем плату (Uno, Nano, Pro Mini) к USB-порту ПК. Нам необходимо узнать номер порта. Запускаем IDE, открываем меню Инструменты – узнаем COM. В дальнейшем мы его применим.

Для прошивки используются специализированные утилиты-загрузчики – в нашем случае — AVR Downloader-Uploader. Выполняем поэтапно шаги:

  1. Создаем папку под названием avrdude. 
  2. Копируем в нее следующие файлы: avrdude.exe и libusb0.dll из C:\Program Files (x86)\Arduino\hardware\tools\avr\bin и avrdude.conf из C:\Program Files (x86)\Arduino\hardware\tools\avr\etc 
  3. Запускаем консоль cmd, переходим в папку с файлами, вводим: 
avrdude -v -patmega328p -c arduino -P com10 -b 57600 -D -U flash:w:"girlanda.hex":i
Готово!

Скорость выбираете согласно типу плат (Уно, Нано – можно 115200, для других, особенно китайских моделей – 57600, тут нужно экспериментировать). 

Среди других приложений, которые советуют использовать, можем назвать: GC-Uploader (автоматическая заливка ПО), SinaProg (более профессиональный софт) и XLoader. Выбирайте оптимальный для себя вариант!

Прошивка любого Hex-файла в Arduino. Прошивка ардуино для станка с чпу

Например если ардуина далеко, а прошивать неудобно ходить, можно прицепить Ethernet модуль на чипе WIZnet W5100

1. Берем какую нибудь простую ардуино и прошиваем ее скитчем arduino isp из примеров

2. подключаем так

Плата, которая прошивает

Плата, которую прошивают

SS ->
mosi ->
miso ->
sck ->

reset
51
50
52

Например у меня NanoПрошиваем Mega 2560

3. в arduino ide жмем файл – настройки, указываем там в дополнительных ссылках для менеджера плат это: https://per1234.github.io/Ariadne-Bootloader/package_codebendercc_ariadne-bootloader_index.json

4. в arduino ide жмем инструменты – платы – менеджер плат – жмем внизу Ariadne Bootloader — Установка

5. жмем инструменты – плата – и в разделе Ariadne Bootloader выбираем нужную плату (которую собираемся прошивать. У меня это mega 2560)

6. выбираем инструменты – программатор – arduino as isp

7. проверям все еще раз – должно быть так:

8. инструменты – записать загрузчик (пару раз если ошибки появляются)

9. отключаем программатор, втыкаем сетевую плату. по умолчанию ip 192.168.1.128. чтобы сменить надо прошить один раз скетч neteeprom – writeNetworkSettings, предварительно прописав там нужные IP

10. после этого надо попробовать прошить через сеть – для этого тоже надо сделать несколько странных действий. включаем в Arduino IDE через файл – настройки подробный вывод:

11. открываем нужный скетч например Blink из примеров:

12. жмем компилировать – и ищем куда ардуино сваливает временные файлы при компиляции. у меня это тут

13. открываем командную строку в этой папке и выполняем:

«C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-objcopy.exe» -I ihex Blink.ino.hex -O binary Blink.ino.bin

14. затем жмем ресет и через пару секунд выполняем там же tftp -i 192.168.1.128 PUT Blink.ino.bin

15. жать ресет каждый раз неудобно и для этого нам понадобиться скетч файл – примеры – ethernetreset – resetserver. это специальный маленький вебсервера на порту 8080, который при получении запроса перезагрузит ардуино http://192.168.1.128:8080/password/reset :

Для автоматизации я накатал батник – просто закинь его в папку своего скетча и перетаскивай на него файл.ino – он загрузит его к тебе. сначала только подредактируй – укажи свой сервер и пароль:

@echo off set ip=192.168.1.128 set passwd=parol mkdir «%~dp0build» del build /F /S /Q set home=%HOMEDRIVE%%HOMEPATH% set targetfn=%~n1%~x1 «C:\Program Files (x86)\Arduino\arduino-builder.exe» -compile -logger=machine -hardware «C:\Program Files (x86)\Arduino\hardware» -hardware «%home%\AppData\Local\Arduino15\packages» -tools «C:\Program Files (x86)\Arduino\tools-builder» -tools «C:\Program Files (x86)\Arduino\hardware\tools\avr» -tools «%home%\AppData\Local\Arduino15\packages» -built-in-libraries «C:\Program Files (x86)\Arduino\libraries» -libraries «%home%\Documents\Arduino\libraries» -fqbn=Ariadne-Bootloader:avr:ariadne2560:configuration=blink_shield -ide-version=10610 -build-path «%~dp0build» -warnings=none -prefs=build.warn_data_percentage=75 -verbose «%targetfn%» «C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-objcopy.exe» -I ihex build/%targetfn%.hex -O binary build/%targetfn%.bin powershell -Command «Invoke-WebRequest http://%ip%:8080/%passwd%/reset rem 6 sec delay PING 127.0.0.1 -n 6 >NUL 2>&1 || PING::1 -n 6 >NUL 2>&1 tftp -i %ip% PUT build/%targetfn%.bin pause

@ echo off

set ip = 192.168.1.128

set passwd = parol

mkdir «%~dp0build»

del build / F / S / Q

set home = % HOMEDRIVE % % HOMEPATH %

set targetfn = % ~ n1 % ~ x1

«C:\Program Files (x86)\Arduino\arduino-builder.exe» — compile — logger = machine — hardware «C:\Program Files (x86)\Arduino\hardware» — hardware — tools «C:\Program Files (x86)\Arduino\tools-builder» — tools «C:\Program Files (x86)\Arduino\hardware\tools\avr» — tools «%home%\AppData\Local\Arduino15\packages» — built — in — libraries «C:\Program Files (x86)\Arduino\libraries» — libraries «%home%\Documents\Arduino\libraries» — fqbn = Ariadne — Bootloader : avr : ariadne2560 : configuration = blink_shield — ide — version = 10610 — build — path «%~dp0build» — warnings = none — prefs = build . warn_data_percentage = 75 — verbose «%targetfn%»

Здесь можно скачать прошивку для ЧПУ на Ардуино. Все прошивки написаны в IDE Arduino.

Скачать прошивку

Прошивка контроллера MKS DLC, CNC Shield для станка с ЧПУ

Здесь можно скачать прошивку для ЧПУ на MKS DLC , CNC Shield . CNC Shield — платы расширения для Ардуино UNO, Nano. Прошивка загружается через Arduino IDE, аналогично прошивке Ардуино.

Скачать прошивку

Описание и установка прошивки Ардуино для ЧПУ

Прошивка для платы Arduino написана на языке Processing в среде разработки Arduino 1.0.2 в операционной системе Windows.

Исходный код прошивки Arduino для управления 3 шаговыми двигателями через COM-порт

Для начала работы с Arduino требуется установить необходимое программное обеспечение. Для этого заходим на официальный сайт Ардуино и скачиваем дистрибутив с этой страницы . На официальном сайте Arduino можно найти множество примеров прошивок для платы, а также освоить основные принципы работы с платой. Теперь запускаем файл установщика, выбираем папку, соглашаемся с лицензионным соглашением и прочее. После установки на рабочем столе появится иконка Arduino. Теперь можно подключить нашу плату Ардуино к компьютеру, для этого используется кабель USB 2.0 соединительный USB A — USB B . Дожидаемся, когда Windows найдёт и установит новое оборудование. Далее, запускаем программу Arduino и выбираем нужный COM-порт, выбрав в главном меню Сервис->Последовательный порт.

Выбор скетча для Ардуино

В зависимости от комплектации станка с ЧПУ и задач, которые он должен выполнять выбираем скетч из списка выше. Заходим на соответвующую страницу. В кратком описании к каждому скетчу указано, для каких драйверов ШД и прочих комплектующих (шпиндель, Лазер, TTL, схема включения и т.д.) эта прошивка предназначена. Кроме того, указано для каких целей она может использоваться. Например, для лазерной резки орнаментов и лазерной художественной гравировки используются разные скетчи, хотя оппаратная часть может использоваться одна и та же.

Сборка и загрузка прошивки для Ардуино

Копируем исходный код прошивки для управления станком с ЧПУ в окно редактирования IDE Arduino. Теперь нажимаем кнопку Загрузить . Дожидаемся, пока программа Ардуино проверит, откомпилирует и установит прошивку на плату Ардуино. Попробуем проверить, работает ли прошивка. Для этого необходимо подключить двигатели и запустить Монитор порта в программе Ардуино. Монитор порта находится в пункте Сервис основного меню. На форме Монитора порта вводим команду:
1000,2000,3000;
И нажимаем кнопку Послать . Смотрим, как двигатели вращаются с разной скоростью. Когда двигатели перестанут вращаться, прошивка Ардуино передаст T по USB компьютеру, это отобразится в Мониторе порта. Раньше приходило сообщение OK .

Представьте такую ситуацию. «У вас есть плата от принтера (допустим китайского), которая содержит какую-то свою прошивку. И вот настал тот день и тот час, когда вы решили, что вам нужно эту прошивку поменять, по тем или иным причинам. Но вас всё ещё держит одно «но». Вы боитесь всё испортить и хотите иметь возможность откатиться обратно. Но как назло — нормальной информации в интернете по вопросу, как забэкапить прошивку особо не нагуглишь. Примерно с такой проблемой ко мне, намедни, обратился один из участников нашего сообщества. И я решил, что раз уж так, то почему бы не поведать всем о том, как же это можно сделать.

Но прежде чем писать умные мысли — всё надо проверять, чем я и занялся. Эксперименты я проводил с Arduino Mega 2560. О ней дальше я и буду писать.
Поначалу я попытался пойти привычным способом «влоб», достал программатор китайский (на заглавной фотке), подключился по ISP, и скачал прошивку. Попытался её залить назад… Льётся, но верификацию не проходит. Битых несколько часов рыл интернет, чтобы понять, как же можно нормально скачать прошивку с Меги по ISP. Толком ничего вразумительного не нашёл, но зато понял, что прошивку можно скачать и залить обратно и без программатора. Об этом опыте я и напишу ниже. А вот о том, как скачивать прошивку не с Arduino платы, да так чтобы она потом назад заливалась я напишу как-нибудь в следующий раз, когда у меня появится плата, которую можно безбоязненно пускать и в огонь и в воду.
Ладно, к делу. Для начала нам нужна утилита Avrdude, она входит в поставку Arduino IDE и в моей версии лежала в папке «%appdata%\Arduino15\packages\arduino\tools\avrdude\6.0.1-arduino2\bin». Открываем папку, жмём на пустом месте SHIFT + правая кнопка мыши, а в меню выбираем «Открыть окно команд». Теперь приведу простую команду, которая проверяет, что контроллер читается.

avrdude.exe -p atmega2560 -c wiring -P COM5

Если всё в порядке, то вы должны увидеть примерно такой текст (см. скриншот).

Атрибуты команды:
-p atmega2560 — установка типа контроллера.
-c wiring — установка программатора. Это внутренний программатор в плате Arduino Mega 2560. Может я и не правильно выразился, но тот же атрибут использует IDE, когда заливает скомпилированный скетч.
-P COM5 — настройка порта, в который воткнут USB шнурок от Arduin»ы. Подглядеть можно из IDE.

avrdude.exe -p atmega2560 -c wiring -PCOM5 -b115200 -Uflash:r:»printer_firmware».hex:i

Если всё хорошо, ориентируемся на скриншот, прошивка сохраниться в файле «printer_firmware.hex» рядом с avrdude.exe.

Новые атрибуты команды:
-b115200 — скорость порта для программатора.

Uflash:r:»printer_firmware».hex:i — указание считать прошивку в файл «printer_firmware.hex».

И поговорим о том, как мы будем записывать прошивку в Arduino.

Нас, прежде всего, интересуют три платы Arduino:
Arduino Uno – как самый распространенный вариант
Arduino Nano – компактный вариант, удобный для применения в небольших конструкциях
Arduino Pro Mini – дешевый компактный вариант без встроенного USB-UART преобразователя (для работы с ним понадобится внешний USB-UART преобразователь), но удобный в случае применения сети устройств.

Во всех вышеописанных платах используется микроконтроллер ATmega328 (в более старых версиях ATmega168).

ArduinoUploader.zip — Программа для записи Hex-файла в Arduino

Как и предыдущая, программка имеет простой интерфейс.
Процесс прошивки тот же:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт
— жмем Upload

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

При попытке прошить Arduino Nano программа отказывалась видеть МК. Причиной стала неправильная установка скорости COM порта. По умолчанию скорость стоит 19200, а нужно 57600. Скорость порта в программе не задается явно, она прописывается в строчке «AVR Dude Params» — поменяйте в ней значение 19200 на 57600.

Автоматизация ARP Uploader.
ARP Uploader как и XLoader работает через AVR Dude, но, в отличие от XLoader, показывает командную строку. Это дает возможность использовать AVR Dude напрямую в Make или Bat файле.

Дополнительные материалы.
Драйвера Arduino.

Считаю не лишним напомнить, что для связи Arduino с компьютером в последнем должны присутствовать драйвера. Оставляю здесь архив с драйверами для Arduino (включая и старые драйвера в Old_Arduino_Drivers.zip и драйвера для FTDI-чипа в папке «FTDI USB Drivers»

Arduino_drivers.zip — Драйвера для Arduino

Стали появляться недорогие китайские Ардуины с драйвером Ch440G
Driver Ch440G.zip — Драйвер для преобразователя USB-UART

Загрузчики Arduino

Если Вы решите собрать свою плату Arduino (а сложного там ничего нет, фактически, это голый ATmega328 или ATmega168), Вам понадобится загрузчик Bootloader который должен содержать МК для работы со средой (или программками для заливки Hex-файлов). Конечно, Вам для записи Hex-файлов в чистый МК понадобится программатор и придется выставить фьюзы.

ATmegaBOOT_168_atmega328.hex — Bootloader для ATmega328
Для правильной работы нужно установить фьюзы следующим образом Low: FF High: DA Ext: 05

Загрузить прошивку на этот микроконтроллер можно несколькими способами:

  • Через другую плату ардуино, у которой есть встроенный USB-UART
  • С помощью специального программатора
  • Используя USBasp-программатор

Последние два способа очень похожи. Они отличаются лишь типом программатора. Поэтому в этой статье мы рассмотрим только прошивку с помощью другой Arduino и с помощью специального программатора.

Прошивка ардуино про мини с помощью Arduino Uno или Nano

Для того что бы прошить одну ардуинку через другую, нам понадобятся 2 платы Arduino, соединительные провода, USB кабель и компьютер. Я покажу как прошить Arduino Pro Mini с помощью Arduino Nano, но по этой же инструкции можно использовать и другие платы Arduino, такие как Uno, Mega и тд.

Для начала надо настроить нашу плату, которая будет выступать в роли программатора. Для этого подключим ее к USB компьютера и перейдем в Arduino IDE. В примерах уже есть готовый скетч, написанный специально для этой цели.

Выбираем этот скетч и прошиваем. Теперь мы готовы подключать Arduino Pro Mini. Подключаем следующим образом:

Arduino Nano -> Arduino Pro Mini

  • +5v -> Vcc
  • GND -> GND
  • D10 -> RST
  • D11 -> D11
  • D12 -> D12
  • D13 -> D13

У меня это выглядит так:

Теперь мы можем прошить нашу Arduino Pro Mini. Откройте или напишите нужную вам прошивку. Будьте внимательны! Стандартная кнопка загрузки скетча нам не подходит. По умолчанию она заливает прошивку без использования программатора. Таким образом мы прошьем микроконтроллер, который должен выступать в качестве программатора. Чтобы этого не произошло нужно перейти в меню Скетч >> .

Прошивка Arduino Pro Mini с помощью специального программатора

Купить специальный программатор можно . Стоит он меньше одного доллара. Если вы часто используете ардуино про мини, то этот программатор сильно упростит и ускорит прошивку.

Для преобразования USB-to-Serial используется микросхема Ch440. Что бы она определялась компьютером правильно необходимо установить специальный драйвер.

Прошить ардуино с помощью программатора очень просто. Нужно подключить программатор к Arduino Pro Mini следующим образом:

Arduino Программатор

  • Vcc Vcc
  • GND GND
  • RX1 TXD
  • TX0 RXD

Подключаем программатор к компьютеру и проверяем, что он не требует драйверов. Если же он определяется как «неопознанное устройство» скачайте и установите драйвер. Его легко найти, набрав в поисковике «*модель вашего программатора* драйвер». Например «CP2102 драйвер». Далее запускаем Arduino IDE. Выбираете модель вашей платы. Потом переходим в меню Инструменты -> Программатор и выбираете ваш программатор. Далее открываете нужный вам скетч и загружаете его с помощью пункта в меню Скетч -> Загрузить через программатор .

Если ваш программатор не поддерживает программный сброс, то вам придется вручную нажать кнопку перезагрузки на вашей Arduino Pro Mini в момент компиляции скетча. Это нужно сделать сразу как только в Arduino IDE появится строка, что скетч скомпилирован.

Вот и все. Мы успешно прошили Arduino Pro Mini с помощью программатора.

Загрузка HEX в AVR Ардуино

Вторая часть про загрузку HEX файлов в микроконтроллер AVR установленный в плату Ардуино. В первой части я показал как сделать HEX файл и в куда его сохраняет программа arduino ide на компьютере. Во второй части будем использовать avrdude и программу gcUploader. Загрузим скомпилированный HEX файл.

Сегодня продолжим изучение HEX файлов. Это буде небольшое видео. Так как особо показывать нечего.
В первой части я показал как можно сделать HEX файл и в куда его сохраняет программа arduino ide на компьютере.  Поэтому мы быстренько пройдём этот этап почти без объяснений. Кому, что будет не понятно смотрите предыдущее видео. 
Сначала проверяем что бы к нас была подключена Ардуина и запоминаем в какой порт она вставлена. Это нам пригодиться чуть дальше.
Прошивать будем как всегда Blink. Я его часто использую потому что для его работы ничего не надо, так как мигать будет светодиод установленный на плату.
Заходим в настройки и проверяем чтобы был установлен флажок Компиляция. 
Нажимаем кнопку Проверить. Этим мы скомпилируем код и сохраним его в папку на компьютере даже если у вас не подключена плата Ардуино.
Находим адрес папки где находится скомпилированный HEX файл. Я сохраню его в отдельную папку, но это делать не обязательно для работы нам хватило бы и просто этого адреса. А ещё я переименую его, так как у вас может быть несколько разных файлов.
Для того чтобы прошить HEX в плату нам нужна программа AVRDUDE. Эта программа принимает на вход скомпилированный код из ARDUINO IDE, и отправляет его в микроконтроллер AVR на котором создана Ардуино.
AVRDUDE входит в комплект программы ARDUINO IDE. Неудобство использования этой программы в том, что использовать её можно только из командной строки. После вызова этой программы надо прописать довольно много параметров. 
Вот пример 

«C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe» -C «C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf» -v -p atmega328p -c arduino -P COM3 -b 57600 -D -U flash:w:D:\Documents\Arduino\my_hex.hex:i

Согласитесь это не совсем удобно. Есть более лёгкий способ. Было разработано много программ-оболочек для облегчения способа прошивки. Рассмотрим одну из оболочек. Это программа «gcUploader».
Она также использует AVRDUDE который находится в папке программы, но теперь не надо вводить команды достаточно просто выбрать всё из выпадающего списка, а в поле HEX перенести файл.
Для начала выбираем Свою Ардуину и COM порт к которому она подключена.
Перетаскиваем HEX файл. И нажимаем на картинку похожую на микросхему. Если у вас установлено выводить лог, то вы увидите информацию о прошивке. Вот и всё. Микроконтроллер прошит. 
Конечно вы сейчас не видите большой разницы между обычной прошивкой через ARDUINO IDE и прошивкой с помощью сторонней программы. А вот когда вы сделаете большой проект, где будут несколько библиотек которые не идут в комплекте с ARDUINO IDE и их придётся искать и устанавливать. И вам надо будет передать кому-нибудь этот проект, то вам уже не нужно будет объяснять, где взять и как установить библиотеки. Или вы не хотите чтобы кто-то мог самостоятельно изменять параметры тогда вы увидите всю прелесть этого способа.

Это вторая часть про HEX файл, но будет ещё третья. В ней я расскажу как можно использовать HEX файл в программе PROTEUS. 
И если вам интересна эта тема, то ставьте лайк, пишите комментарии, и новое видео очень скоро появится на моём канале.
А пока, до встречи. И с наступающим Новым 2021 годом.

Создание своего скомпилированного образа прошивки (hex файла) для 3Д принтера | Общая информация

Всем привет! На этот раз представляю Вам последнюю статью из трилогии посвященной прошивке 3Д принтеров. Как вы помните, в предыдущих статьях мы рассматривали варианты прошивки принтера с помощью Arduino IDE и исходного кода прошивки, а так же с помощью слайсера Cura и скомпилированного образа прошивки. Вполне логичным продолжением этой истории будет рассказ о том, как создать этот самый файл с образом прошивки (hex файл). Об этом и поговорим.

Прежде чем мы продолжим, предлагаю Вашему вниманию ссылки на предыдущие статьи:

Зачем же нужен скомпилированный вариант прошивки? На самом деле, в таком варианте ее удобнее хранить, передавать и прошивать. Вам не нужно ставить и настраивать не всегда стабильно работающую Arduino IDE, искать необходимые библиотеки. кроме того, в таком выде вы точно не отредактируете файл и точно будете знать что в нем содержится. Хранить такие файлы тоже удобно. Обозвал понятно и готово. С исходниками все сложнее. Да и в конце концов, прошивать из файла образа бастрее и ничего лишнего не требуется.

Кстати, данная статья будет полезна не только владельцам 3Д принтеров, но и разработчикам различных программ для различных микроконтроллеров. Это же очень удобно. Разработал схему, разработал прошивку. Все отладил и проверил. Платы заказал, прошивку собрал и ты уже уверен, что не ошибешься при изготовлении устройства. Да и при желании таким образом можно защитить код от кривых ручек чайника 🙂

Но что-то мы удалились от темы. Давайте разберемся, как же создать этот самый hex файл.

Для этого нам понадобится любой скетч (хоть простенький Blynk, хоть сам Marlin) и среда Arduino IDE со всеми необходимыми библиотеками.

Если в общих чартах рассмотреть процесс прошивки с помощью Arduino IDE, то можно выделить следующие этапы:

  1. Мы нажимаем кнопку Загрузка
  2. Arduino IDE проверяет скетч
  3. Arduino IDE Компилирует скетч в соответствии с заданными параметрами (с использованием указанных библиотек и с учетом конфигурации платы, которую вы выбрали)
  4. Arduino IDE Указанным способом загружает скомпилированный скетч в микроконтроллер
  5. Arduino IDE при наличии возможности перезагружает микроконтроллер

Укрупненно процесс работает именно так. Как видно, на одном из этапов Arduino IDE осуществляет компиляцию скетча. При этом среда размещает файл во временном каталоге, а потом записывает в микроконтроллер.

При желании, можно отловит этот файлик и забрать себе, однако это не наш метод, т.к. есть пункт по проще.

Рассмотрим это на примере прошивки для 3Д принтера Anycubic 4max.

Для этого нам понадобятся готовые и сконфигурированные исходники прошивки. Предполагается, что исходники уже готовы для прошивки в принтер.

Среда Arduino IDE с необходимыми библиотеками (подробнее об этом можно прочесть в статье “Устанавливаем прошивку Marlin на 3D принтер с помощью Arduino IDE”

Пускай, корневая папка с исходниками прошивки marlin расположена по пути C:\TEMP\TEST\MARLIN_1.1.9_4MAX_RU\anycubic-4max

Заходим в указанный каталог и двойным кликом открываем файл anycubic-4max.ino

В процессе открытия файла автоматически запустится среда и отобразится содержимое файла anycubic-4max.ino

Теперь необходимо выбрать плату, для которой будет компилироваться прошивка, в моем случае это “Arduino / Genuino Mega or Mega 2560

Необходимо выбрать микроконтроллер (процессор) нашей платы, в моем случае это “ATmega 2560 (Mega 2560)

Все готово. Теперь начнется магия компиляции. Для получения hex файла необходимо выбрать пункт меню “Скетч” -> “Экспорт бинарного файла Ctrl + Alt + S

После этого начнется магия компиляции. Среда осуществит проверку и сборку прошивки в бинарный (hex) файл.

Ждем окончания компиляции.

После завершения процесса, в каталоге со скетчем (в нашем случае это C:\TEMP\TEST\MARLIN_1.1.9_4MAX_RU\anycubic-4max ) появится 2 файла:

  1. anycubic-4max.ino.mega.hex
  2. anycubic-4max.ino.with_bootloader.mega.hex

anycubic-4max.ino.mega.hex – содержит непосредственно саму скомпилированную прошивку

anycubic-4max.ino.with_bootloader.mega.hex – содержит прошивку + загрузчик

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

Ну вот и все. Как видите, ничего сложного.

А что дальше? Ну а дальше действовать по инструкции, описанной в статье “Устанавливаем прошивку Marlin на 3D принтер с помощью слайсера Cura или что делать с hex файлом?”

Надеюсь, что материал оказался для Вас полезен.

Если вы еще не обзавелись 3Д принтером и думаете какую модель выбрать, могу порекомендовать следующие модели:

3д принтер Anycubic i3 Mega

3д принтер Anycubic Mega-S (Anycubic S)

3Д принтер Anycubic 4MAX Pro

Если вам понравилась статья и вы хотите поддержать сайт, получать уведомления о новых материалах, вступите в нашу группу Вконтакте: https://vk.com/ionline_by

Если вы хотите оперативно получать уведомления о выходе новых статей, подключите себе PUSH уведомления по ссылке: https://ionlineby.pushassist.com/

Программирование

— как я могу загрузить шестнадцатеричный файл в Arduino Uno?

Я рекомендую посмотреть файлы IDE arduino, расположенные по адресу «(путь установки) / hardware / arduino / avr /» (в любом случае в Windows, я должен предположить то же самое в Linux).

Я не уверен, имеют ли следующие файлы расширение .txt, но если нет, используйте только имя файла.


Откройте и посмотрите в «boards.txt »и найдите связанные записи, начинающиеся с« uno. », оставив этот файл открытым.

Затем откройте «platform.txt» в поисках записей « tools.avrdude » (часть avrdude берется из записи «uno.upload.tool» наboards.txt) и скопируйте в новый текстовый редактор значение « tools». .avrdude.upload.pattern «вы можете заполнить параметры позже.

С помощью скопированной команды замените следующее:

из platform.txt

  • « {cmd.path} » = « tools.avrdude.cmd.path »
  • « {config.path} «=» tools.avrdude.config.path «
  • « {upload.verbose} » = « tools.avrdude.upload.params.verbose »
  • « {upload.verify} tools.avrdude.upload.verify «

теперь изboards.txt

  • « {build.mcu} » = « uno.build.mcu »
  • « {upload.protocol} uno.upload.protocol
  • « {{serial.port} » = Ваш последовательный порт (согласно исследованиям что-то вроде / dev / ttyS0 )
  • « {upload.speed} «=» uno.upload.speed «
  • « {build.path} » и « {build.project_name} = путь к файлу, который вы пытаетесь загрузить.

Итак, с изложенным выше для меня, чтобы загрузить программу в Arduino uno, я бы использовал что-то вроде следующего в windows:

при условии, что путь установки был «C: \ Arduino \»

«C: \ Arduino \ hardware \ tools \ avr \ bin \ avrdude.exe» «-CC: \ Arduino \ hardware \ tools \ avr \ etc \ avrdude.conf» -v -patmega328p -carduino «-PCOM1» -b115200 -D «-Uflash: w: C: \ MyArduinoProject \ build.шестнадцатеричный: i «

для Linux это могло быть (я действительно не уверен):

при условии, что путь установки был «/ opt / Arduino /»

«/ opt / Arduino / hardware / tools / avr / bin / avrdude» «-C / opt / Arduino / hardware / tools / avr / etc / avrdude.conf» -v -patmega328p -carduino «-P / dev / ttyS0 «-b115200 -D» -Uflash: w: /usr/MyArduinoProject/build.hex: i «


Вышеупомянутое должно сработать для вас, я ранее написал свою собственную программу для загрузки шестнадцатеричного файла в Arduino, используя указанные выше команды и avrdude.

Загрузить шестнадцатеричный файл на Arduino с помощью AVRDUDE (Программирование плат AVR)

Из этого туториала Вы узнаете, что именно такое AVR DUDE? Как его установить? и как загрузить файл HEX на любую плату Arduino или микроконтроллер AVR с помощью AVRDUDE.

Сначала давайте подробно рассмотрим AVRDUDE!

AVRDUDE:

AVRDUDE — это аббревиатура от AVR downloader uploader. Это программное обеспечение с открытым исходным кодом, используемое для программирования микроконтроллеров AVR.Вы также можете использовать его для программирования EEPROM, флэш-памяти и даже битов предохранителей и блокировок.

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

AVRDUDE также имеет интерактивный режим, называемый режимом терминала. Этот режим позволяет вводить интерактивные команды для отображения и изменения различных запоминающих устройств устройства, выполнять стирание микросхемы и многое другое. Мы обсудим это с примерами позже в этом руководстве.

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

AVRDUDE можно эффективно использовать через командную строку для чтения или записи памяти на кристалле, включая EEPROM, флэш-память, биты предохранителей, биты блокировки и байты подписи.

Если вы хотите загрузить шестнадцатеричный файл во флэш-память вашего микроконтроллера, вы можете легко сделать это с помощью командной строки. С другой стороны, режим интерактивного терминала облегчает изучение содержимого памяти, изменение отдельных байтов EEPROM или программирование битов предохранителей / блокировок.

AVRDUDE Опции:

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

-C (Config-файл)

— (заглавная) C используется для указания файла конфигурации для данных конфигурации. Файл содержит все определения программатора и микроконтроллера, поддерживаемые AVRDUDE.Если у вас есть программист или микроконтроллер, о которых Avrdude не знает, вы можете добавить детали его конфигурации в этот файл.

В Windows он ищет файл конфигурации в папке, где установлен AVRDUDE. Мы также увидим, как установить AVRDUDE позже в этом руководстве.

-c (идентификатор программиста)

— (маленький) c сообщает AVRDUDE о типе программатора, который используется для программирования микроконтроллера. AVRDUDE знает о нескольких распространенных программистах, поэтому используйте эту опцию, чтобы указать, какой из них вы используете.Для каждого поддерживаемого программатора параметр id программиста указан в файле конфигурации.

Чтобы получить полный список программистов, введите в командной строке « avrdude -c help». Вы увидите — полный список программаторов, поддерживаемых AVRDUDE. Здесь help — это просто какой-то бессмысленный параметр, чтобы заставить его выплюнуть список программистов.

-p (Идентификатор детали)

— (маленький) p сообщает AVRDUDE о типе микроконтроллера, подключенного к программатору.Его параметром должен быть идентификатор детали, указанный в файле конфигурации. Вот идентификаторы компонентов микроконтроллеров, поддерживаемых AVRDUDE.

9015 9015 AT904 9015 9015 0
Идентификатор PRT НАЗВАНИЕ UC Идентификатор PRT Имя UC
c128
c128 m324 ATmega324
PWM3 AT90PWM3 m328 ATmega328
1200 AT90S1200 m3290 ATmega3290
2313 AT90S2313 M48 ATmega48
2333 AT90S2333 M64 ATmega64
2343 AT90S2343 (*) M640 ATmega640
4414 AT90S4414 m644 ATmega644
4433 AT90S4433 m649 ATmega649
4434 AT90S4434 m6490 ATmega6490
8515 AT90S8515 m8 ATmega8
8535 AT90S8535 m8515 ATmega8515
M103 ATmega103 m8535 ATmega8535
m128 ATmega128 M88 ATmega88
m1280 ATmega1280 t12 ATtiny12
m1281 ATmega1281 t13 ATtiny13
m16 ATmega16 9015 9015 9015 9015 9015 9015 9015 Ttiny2313
M162 ATmega162 t25 ATtiny25
m163 ATmega163 T26 ATtiny26
m164 ATmega164 t45 Attiny45
m169 ATmega169 t85 ATtiny85

Для получения полного списка поддерживаемых устройств введите « avrdude -c arduino -p help » в командной строке.Здесь help — это просто какой-то бессмысленный параметр, чтобы заставить его выплюнуть список поддерживаемых микроконтроллеров.

-b (скорость передачи)

— опция (small) b отменяет скорость передачи последовательной связи, указанную для этого программатора в файле конфигурации.

-P (порт)

— (заглавная) P используется для обозначения порта, к которому подключен программатор. Я расскажу вам, как идентифицировать этот порт позже в этом руководстве.

-v (подробный вывод)

— опция (small) v включает подробный вывод.Когда вы включите эту команду, вы увидите дополнительную информацию о команде, которую вы выполнили.

-U тип памяти: OP: имя файла: формат

— (заглавная) U указывает операцию памяти, которая должна быть выполнена. Давайте обсудим различные параметры, которые принимает этот вариант.

Эта опция принимает различные параметры, «memtype» указывает тип памяти для программирования, «op» определяет операцию, которую нужно выполнить, «filename» — исходный или целевой файл для чтения или записи, а параметр «format» указывает формат файла.

тип памяти:

AVRDUDE поддерживает различные типы памяти микроконтроллера. Параметр memtype используется для указания типа программируемой памяти на кристалле. Это типы памяти, к которым может получить доступ AVRDUDE.

  • eeprom: EEPROM устройства.
  • efuse: Расширенный байт предохранителя.
  • flash: Flash ROM устройства.
  • предохранитель: Байт предохранителя в устройствах, которые имеют только один байт предохранителя.
  • hfuse : старший байт предохранителя.
  • lfuse: Младший байт предохранителя.
  • блокировка : Байт блокировки.
OP:

Параметр OP определяет тип выполняемой операции. Это поле принимает один символ, который может быть «r» , « или «v» для операций чтения, записи или проверки.

  • r: читать указанную память устройства и записывать в указанный файл
  • w: читать указанный файл и записывать его в указанную память устройства
  • v: читать указанную память устройства и указанный файл и выполните операцию проверки.
имя файла:

Параметр filename указывает имя файла для чтения или записи. Вы также должны указать расширение файла вместе с именем файла.

формат:

Параметр формата является необязательным и содержит формат файла для чтения или записи. Возможные значения этого параметра: «i, s, r и a». Подробная информация о каждом из этих форматов представлена ​​на этом слайде. Формат Intel HEX является самым популярным и широко используется среди них.

  • i: Intel Hex
  • s: Motorola S-record
  • r: raw binam
  • m: немедленный режим
  • a: автоопределение

Это был обзор AVRDUDE, мы будем использовать все эти опции в руководстве с примерами AVRDUDE, приведенном ниже. Давайте сначала посмотрим, как установить AVRDUDE.

Как установить AVRDUDE В Windows:

Во второй части этой статьи я также расскажу вам, как установить AVRDUDE на ваш компьютер с Windows.

Если на вашем ПК с Windows установлена ​​среда Arduino IDE, то на вашем компьютере наверняка уже установлен AVRDUDE. Вы можете проверить это, открыв командную строку и набрав там « AVRDUDE ».

Введите « command prompt » в поле поиска на панели задач и откройте его, нажав клавишу ВВОД. Затем введите там « avrdude» .

Если вы видите это сообщение

« « avrdude » не распознается как внутренняя или внешняя команда, действующая программа или командный файл.

Тогда AVRDUDE не установлен на вашем компьютере, и вы должны следовать этому руководству, чтобы установить AVRDUE на вашем компьютере.

С другой стороны, если вы видите список доступных параметров для AVRDUDE, когда вы вводите его в командной строке. Тогда это означает, что AVRDUDE уже установлен на вашем компьютере, и вы можете просто использовать его для загрузки программ на свои платы Arduino.

Давайте посмотрим, как установить AVRDUDE :

Перейдите по этой ссылке и скачайте отсюда программу AVRDUDE ZIP.

Перейдите на диск C или любой другой диск, который вам нравится. Создайте новую папку с именем «AVRDUDE» и скопируйте zip-файл в эту папку.

Распакуйте содержимое zip-файла в эту папку. Должно быть два файла « avrdude.exe » и « avrdude.conf ». Первый файл — это исполняемая программа AVRDUDE, а второй — файл конфигурации для AVRDUDE . Которая содержит определения всех программистов и микроконтроллеров, поддерживаемых программным обеспечением.

Затем вы должны добавить эту папку в переменную пути. Для этого перейдите на рабочий стол и щелкните правой кнопкой мыши « This PC ». Затем щелкните по свойствам.

Щелкните расширенные настройки системы справа. Появится окно, показывающее вам «Свойства системы».

Щелкните кнопку переменных среды в правом нижнем углу. В разделе системных переменных вы увидите переменную с именем «путь». Выберите переменную и нажмите «Изменить».

Нажмите новую кнопку, вставьте путь и нажмите ОК.Теперь путь к программе указан в переменных среды, и установка завершена.

Для успешной установки AVRDUDE снова откройте командную строку и введите «AVRDUDE». если вы видите список всех параметров, связанных с AVRDUDE, значит, ваша программа AVRDUDE настроена и работает.

Теперь вы можете использовать эту программу для прошивки плат Arduino и микроконтроллеров AVR.

Существует также другой метод, с помощью которого вы можете установить AVRDUDE на свой компьютер с Windows.AVRDUDE также включен в WINAVR Toolchain. Этот набор инструментов включает инструменты разработки программного обеспечения с открытым исходным кодом для микроконтроллеров AVR.

Вы также можете загрузить и установить WinAVR toolchain. В нем есть компилятор AVR-GCC и другие инструменты, которые помогут вам компилировать и генерировать шестнадцатеричные файлы из вашего кода. В следующих публикациях у нас будут полные руководства по использованию этих инструментов.

AVRDUDE В действии:

В третьей части этого руководства мы увидим, как использовать AVRDUDE для выполнения различных операций.

Как использовать AVRDUDE в интерактивном режиме:

Интерактивный режим

AVRDUDE очень удобен, если вы хотите читать и записывать в предохранитель, биты блокировки или фрагмент памяти. Чтобы перейти в интерактивный режим, введите в командной строке AVRDUDE. Затем введите идентификатор программиста, который вы используете. В моем случае я использую плату Arduino Uno в качестве программиста ISP, поэтому я набрал « avrisp ».

Затем вы должны указать имя микросхемы микронтроллера, с которой вы работаете.Я программирую Arduino Pro Mini, и он имеет микроконтроллер «atmega328p», поэтому я использовал « m328p » для этой опции.

Также необходимо указать последовательный COM-порт, к которому подключен Arduino. Компорт легко найти в диспетчере устройств.

Перейдите в поле поиска на панели задач, введите «диспетчер устройств» и нажмите ввод. Вы увидите список всех подключенных устройств. Разверните раздел «Порты», вы должны увидеть COM-порт для вашей платы Arduino.В моем случае это COM8 , поэтому я упомянул его, используя параметр -C (тире Captical C).

А теперь поговорим о скорости передачи. У большинства программистов скорость передачи данных указана в файле « avrdude.config ». В моем случае я использую ARDUINO UNO в качестве программиста ISP со скоростью передачи 19200 бод. Скорость передачи в бодах для « avrisp» в моем случае установлена ​​неправильно, а скорость передачи по умолчанию не работает как продемонстрировал.

Есть два решения этой проблемы, давайте обсудим их оба.

Во-первых, я могу изменить скорость передачи по умолчанию, используя параметр -b и задав программе правильную скорость передачи 19200 бод. Это будет работать и программа, как показано здесь.

Или я могу добавить информацию о скорости передачи в файл конфигурации. Это также очень легко сделать, давайте сделаем это. Откройте файл конфигурации и найдите «avrisp», поскольку у этого программатора указана скорость передачи, как и у некоторых других. Зададим ему скорость передачи 19200 бод, сохраним и закроем файл. Он будет работать так же хорошо, как показано.

Наконец, введите «-t», чтобы перевести Arduino в интерактивный режим. Затем AVRDUDE проверит подпись устройства, чтобы убедиться, что подключено правильное устройство. Вы увидите « avrdude> », что показывает, что AVRDUDE теперь находится в режиме терминала.

Да! Работает как часы. Теперь вы можете ввести help, чтобы увидеть все доступные команды в интерактивном режиме, как показано ниже.

  • dump: dump memory: dump
  • read: псевдоним для дампа
  • write: write memory: write…
  • erase: выполнить стирание чипа
  • sig: отобразить байты подписи устройства
  • part: отобразить текущую часть информация
  • send: отправить необработанную команду: отправить
  • parms: отобразить настраиваемые параметры (только STK500)
  • vtarg: set (только STK500)
  • varef: set (только STK500)
  • fosc: set (только STK500)
  • sck: set (только STK500)
  • spi: вход в прямой режим SPI
  • pgm: возврат в режим программирования
  • verbose: изменение детализации
  • help: help
  • ?: help
  • quit: quit

Как читать значения efuse, hfuse, lfuse и байта блокировки в интерактивном режиме?

Чтобы прочитать значения предохранителей, введите команду чтения, за которой следует имя предохранителя.Давайте сначала продемонстрируем это для efuse. Введите read, затем введите efuse и нажмите Enter. Вы можете видеть, что значение efuse установлено на 0xfd. Точно так же давайте продемонстрируем это для других байтов предохранителя и блокировки.

  • read efuse: Для чтения байта расширенного предохранителя.
  • read hfuse: Для чтения байта старшего предохранителя.
  • read lfuse: чтение младшего байта предохранителя.
  • чтение блокировки: чтение байта блокировки.

Как записать значения efuse, hfuse, lfuse и байта блокировки в интерактивном режиме?

, давайте посмотрим, как мы можем записать новое значение в efuse.Я напишу то же значение на Atmel atmega328p, потому что я не хочу изменять настройки предохранителя на моем Arduino Pro Mini. Однако мы подробно обсудим, что делают каждый предохранитель и бит блокировки, и изменим их, чтобы изменить настройки микроконтроллера AVR.

Чтобы записать в байт предохранителя, введите «write», а затем имя предохранителя, в моем случае это efuse, затем введите адрес, так как это всего лишь один байт, поэтому адрес будет 0x0000, и, наконец, введите 8-битное шестнадцатеричное значение, I выбрали 0xff.

Затем вы можете снова прочитать содержимое efuse, чтобы внести изменения. Я не хочу менять настройки моего Arduino Pro Mini, поэтому я изменю байт efuse обратно на 0xfd. Но в будущих уроках мы узнаем о каждом предохранителе и изменим его.

  • запись efuse 0x0000 0xfd
  • запись hfuse 0x0000 0xda
  • запись lfuse 0x0000 0xff
  • блокировка записи 0x0000 0x3f

Как читать флеш-память в интерактивном режиме?

Вы можете легко читать фрагменты памяти в интерактивном режиме.Читаем 8 байт из флеш-памяти с адреса 0x0000 до 0x0008. Просто в терминале введите «чтение», затем введите «flash», а затем введите начальный адрес, за которым следует количество бит, которое вы хотите прочитать, в моем случае это 8.

Когда вы нажмете клавишу ввода, вы увидите содержимое флэш-памяти для этих адресов на терминале.

  • чтение флэш-памяти 0x0000 8
  • чтение флэш-памяти 0x0040 16

Как читать память EEPROM в интерактивном режиме?

Как и во флэш-памяти, вы можете прочитать содержимое памяти EEPROM в интерактивном режиме, набрав запись, затем EEPROM, затем начальный адрес и количество бит.Вы увидите содержимое EEPROM для этих адресов на своем терминале.

  • читать eeprom 0x0000 8
  • читать eeprom 0x0010 4

Как использовать AVRDUDE:

Теперь давайте посмотрим, как мы можем использовать AVRDUDE для чтения и записи из Arduino.

Как загрузить файл HEX на Arduino с помощью AVRDUDE?

Вы можете легко загрузить любой HEX-файл на Arduino на любую из ваших плат Arduino с помощью AVRDUDE. Чтобы выполнить эту задачу, введите в командной строке AVRDUDE, затем укажите идентификатор программиста (в моем случае это AVRISP), затем введите идентификатор микроконтроллера (я использую arduino pro mini, поэтому в моем случае это m328p).После того, как я упомянул порт и скорость передачи, для меня это порт COM8, а скорость передачи — 19200 бод.

Затем введите -U, чтобы указать, что вы выполняете операцию с памятью, затем прошейте двоеточие w, чтобы указать, что это операция записи, затем введите имя файла с двоеточием (в моем случае имя файла — adduino.hex) и, наконец, введите двоеточие, за которым следует «I », Чтобы указать, что это шестнадцатеричный файл Intel.

  • avrdude -c avrisp -p m328p -P com8 -b 19200 -U flash: w: adduino.hex: i

Это простая программа мигания, в которой желтый светодиод подключен к контакту 8 моей платы Arduino Pro Mini .Вот моя установка, я использую плату Arduino Pro Mini в качестве программиста ISP, и она подключена к Arduino Pro Mini с помощью коммуникационного модуля SPI. Желтый светодиод подключен к PB0 или контакту 8 Arduino Pro Mini.

Как загрузить программу из флэш-памяти Arduino с помощью AVRDUDE?

Вы также можете легко загрузить содержимое флэш-памяти с помощью avrdude. Для выполнения этой задачи введите -U, чтобы указать операцию с памятью, затем введите flash , затем двоеточие, затем «r», затем имя выходного файла и затем двоеточие «i».

  • avrdude -c avrisp -p m328p -P com8 -b 19200 -U flash: r: adduinoDownload.hex: i

В текущей папке вы найдете HEX-файл с именем «arduinoDownload». Это шестнадцатеричный код, который мы загрузили с платы Arduino Pro Mini.

Как загрузить данные из EEPROM Arduino с помощью AVRDUDE?

Вы также можете легко загрузить содержимое EEPROM с помощью avrdude. Чтобы выполнить эту задачу, введите -U, чтобы указать операцию с памятью, затем введите eeprom , затем двоеточие, затем «r», затем имя выходного файла и затем двоеточие «i».

  • avrdude -c avrisp -p m328p -P com8 -b 19200 -U flash: r: adduinoEEPROM.hex: i

В текущей папке вы найдете файл HEX с именем «arduinoDownload». Это данные EEPROM в шестнадцатеричном формате Intel, которые мы загрузили с платы Arduino Pro Mini.

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

Как мне получить файл .hex на моем Arduino? — gr33nonline

Преамбула

Итак, вам дали .hex , и вам нужно загрузить его на Arduino. Как такое возможно. Может быть, вы привыкли иметь дело с файлами .ino , компилировать их в среде Arduino IDE, а затем позволять ей делать все остальное?

Этот пост был вдохновлен перекалибровкой исходного положения.

См. Также

Ссылки

Информация

Большая часть IDE Arduino является наполовину скрытой, и это какой-то парень по имени avrdude . Фактически, AVRDUDE — AVR Downloader / UploaDEr — это отдельный двоичный файл.

Кроме того, существует также gcc , который выполняет компиляцию, но это другое дело. avrdude загружает скомпилированный двоичный файл, предоставленный gcc , на Arduino через порт USB (COM-порт).

Вы можете вызвать это из командной строки (при условии, что у вас установлена ​​IDE Arduino).

Вам необходимо указать (см. Описание параметров командной строки):

  • Скорость передачи COM-порта ( -b )
  • COM-порт ( -P )
  • Процессор, используемый в плате (для платы Arduino Mega2560: ATmega2560) ( -p )
  • Путь к .шестнадцатеричный файл ( -U )
  • Путь к файлу .conf самого avrdude ( -C )
  • Подробный режим, так что посмотрите, что происходит ( -v )
  • Укажите используемый программатор ( -c ). Для получения дополнительной информации см. Параметр -c в описании параметров командной строки.
  • Отключить автоматическое стирание вспышки ( -D )

Команда будет иметь вид:

  <путь к arduino> / hardware / tools / avr / bin / avrdude
-C <путь к arduino> / hardware / tools / avr / etc / avrdude.conf
-v -patmega2560 -carduino -b 115200 -cstk500v2
-P <имя последовательного порта>
-D -Uflash: w: <путь к шестнадцатеричному файлу>: i  

Этот пример выше:

  1. Указывает полный путь к двоичному файлу avrdude
  2. Указывает полный путь к файлу конфигурации avrdude .conf
  3. Подробный режим
  4. Процессор ATmega2560, используемый в плате Arduino Mega2560
  5. Программатор Arduino
  6. Скорость передачи USB-порта
  7. Atmel STK500, версия 2.x программатор прошивки (может не понадобиться)
  8. Порт, к которому подключена плата Arduino
  9. Отключает автоматическую вспышку, поскольку она не требуется - автоматическое стирание не используется для устройств ATxmega, поскольку эти устройства могут использовать стирание страниц перед записью каждой страницы, поэтому явное стирание чипа не требуется. Однако обратите внимание, что любая страница, на которую не влияет текущая операция, сохранит свое предыдущее содержимое.
  10. Память для загрузки и путь к файлу .hex (дополнительные сведения см. В параметре -U в описании параметров командной строки):
    1. flash указывает флэш-ПЗУ устройства.
    2. w: прочитать указанный файл и записать его в указанную память устройства
    3. : i определяет Intel Hex

Примеры

для Windows

  C: \ dev \ Arduino \ оборудование \ инструменты \ avr \ bin \ avrdude
-CC: \ dev \ Arduino \ hardware \ tools \ avr \ etc \ avrdude.conf
-v -patmega2560 -carduino -b115200 -cstk500v2
-P \\. \ COM1
-D -Uflash: w: C: \ Users \ <имя пользователя> \ Documents \ firmware.hex: i  

для OSX

  / Приложения / Arduino / оборудование / инструменты / avr / bin / avrdude
-C / Приложения / Arduino / оборудование / инструменты / avr / etc / avrdude.conf -v -patmega2560 -carduino -b115200 -cstk500v2 -P \\. \ COM1 -D -Uflash: w: / Users / <имя пользователя> /Documents/Arduino/firmware.hex:i  

Альтернативы

Если вам неудобно использовать интерфейс командной строки (CLI), возможно, будет проще использовать решение с графическим интерфейсом…

XLoader

Для решения только для Windows см. Загрузка файлов Arduino HEX с помощью XLoader

.

С сайта автора:

Я сделал небольшую программу, которую можно использовать для загрузки вашей собственной *.шестнадцатеричные файлы на платы Arduino с помощью загрузчика. Это означает, что вам не нужен флэш-программист. Я сделал это для себя и нашел очень полезным. Итак, теперь я сделал более удобную для пользователя версию.
Чтобы использовать ее, скомпилируйте код в нечто вроде AvrStudio. Затем просто запустите XLoader.exe, выберите шестнадцатеричный файл и нажмите «Загрузить». Вот и все.
Хорошие новости: теперь он также поддерживает Arduino Uno.

Строитель Arduino

From Arduino Builder - автономная утилита для создания и загрузки скетчей Arduino

  1. Выберите файл , либо файл эскиза (.ino), файл HEX (. шестнадцатеричный ) или файл ELF (.elf)
  2. Выберите тип платы в раскрывающемся списке.
  3. Щелкните последовательный порт (или кнопку USBASP), и загрузка будет продолжена.

Загрузчик Arduino

На той же странице есть Arduino Uploader, который является версией Arduino Builder для командной строки.

Нравится:

Нравится Загрузка ...

Связанные

Загрузить программу Arduino | Программирование устройств

Создание панели для загрузки программ

Нажмите кнопку « Добавить программатор » (или выберите «Программатор ») в строке меню визуализатора «Программирование устройств».Будет создана новая панель загрузки.

Панель программных устройств для загрузки файлов .hex на ваш Arduino

В верхнем ряду панели программатора находится описание и путь к исходному тексту. Вторая строка позволяет вам настроить оборудование для программирования, устройство и порт для использования. Кнопка Program в последней строке запускает программирование устройства. За ним следуют кнопки блокировки (для предотвращения случайного программирования), проверки и автопрограммирования. Полоса показывает прогресс во время программирования, а кнопка консоли показывает необработанный вывод инструмента программирования AVRDude.

Время последнего изменения файла .hex и время его последней загрузки показаны в правом нижнем углу панели загрузки.

Поиск двоичного файла Arduino

Выберите Sketch → Export compiled Binary в Arduino IDE, чтобы получить двоичный файл, необходимый для программирования вашей Arduino. IDE скомпилирует вашу программу и скопирует файл .hex в ту же папку, что и ваш скетч (файл .ino ). Он будет называться [эскизное имя].ino.standard.hex . Это файл, который вы будете использовать с MegunoLink.

Чтобы написать версию, включающую загрузчик, вам также необходимо установить предохранители на микросхеме. Для этого вы можете использовать программный пакет MegunoLink.

Описание и несколько панелей

Описание - это имя вашей панели загрузки. Вы можете добавить столько панелей загрузки, сколько захотите, в визуализатор программных устройств. Описание помогает отслеживать, для чего предназначена каждая панель. У вас может быть несколько панелей загрузки для:

  • тест-программы
  • итоговая программа
  • отправитель и получатель в беспроводной системе
  • версии для разных Arduino (например, Uno и Mega)
  • программирование нескольких устройств одновременно

Вы можете запускать каждый программатор отдельно (с помощью кнопки Program ), все вместе или по очереди.См. Раздел «Последовательности программирования» для получения дополнительной информации.

Исходный файл

Источник - это путь к файлу .hex . Используйте кнопку обзора, чтобы выбрать исходный файл.

Путь может быть абсолютным или относительным к файлу проекта MegunoLink. Относительные пути позволяют перемещать проект и файлы .hex между компьютерами без необходимости обновлять исходный путь. Щелкните правой кнопкой мыши путь к файлу, чтобы переключиться между двумя вариантами.

Время последней модификации для .hex и время последнего программирования устройства отображаются в правом нижнем углу панели.

Наряду с файлами .hex , MegunoLink поддерживает специальный файловый формат, называемый файлом пакета программирования ( .musx ). Этот специальный формат файла можно использовать для загрузки загрузчиков и настройки предохранителей на устройстве. Узнайте больше о пакетах программирования.

Настройки программатора

Во второй строке можно настроить параметры программирования: оборудование для программирования, целевое устройство и порт.

Наиболее распространенное оборудование для программирования, такое как Arduino IDE, представляет собой просто последовательный порт USB. Но MegunoLink поддерживает нескольких программистов, в том числе:

  • Arduino Serial: стандартный последовательный программатор, используемый с портами COM .
  • AVR Dragon: отладчик и программатор Dragon AVR.
  • AVR Mk II ISP: программист ISP AVR.
  • Arduino ISP: используйте один Arduino для программирования другого.

Только программисты AVR dragon, AVR Mk II ISP и Arduino ISP поддерживают изменение загрузчика и установку предохранителей.См. Пакет программирования для получения дополнительной информации.

Далее идет тип платы. Вы должны выбрать то же устройство, которое вы использовали при создании файла .hex в среде Arduino IDE. Это также должно соответствовать устройству, которое вы пытаетесь запрограммировать!

Наконец, выберите порт COM , к которому подключена ваша плата, если вы используете последовательный программатор Arduino. USB - единственный порт, поддерживаемый другими программистами.

В нижнем ряду:

  1. Кнопка Программа запускает программирование,
  2. Блокировка предотвращает программирование (при случайном нажатии кнопки программы),
  3. Verify включает / выключает проверку программы.При включении программа считывается после того, как она была написана, и сравнивается с исходным файлом, чтобы гарантировать отсутствие ошибок во время программирования,
  4. Автоматическая программа автоматически перепрограммирует устройство всякий раз, когда обнаруживает изменение в файле .hex. Это особенно полезно во время разработки, когда вы часто вносите изменения в программу и загружаете их на устройство для тестирования.

Начать программирование

Нажмите кнопку Программа , чтобы начать программирование.Если кнопка неактивна, либо:

.
  1. исходный файл не существует (щелкните правой кнопкой мыши исходный файл и выберите Открыть содержащую папку , чтобы проверить, существует ли еще исходный файл) или
  2. Программирование
  3. заблокировано (нажмите кнопку Lock , чтобы разблокировать его).

Вывод AVRDude фиксируется во время программирования. Вы можете увидеть этот вывод, щелкнув Показать сведения о загрузке на панели инструментов визуализатора или нажав кнопку Показать вывод на панели программирования.

Загрузите файл .hex в Arduino с помощью командной строки CMD и .bin в ESP8266

Вот как использовать приглашение CMD для загрузки файла .hex (скомпилированный шестнадцатеричный файл) в Arduino без использования Arduino IDE. Кроме того, как использовать командную строку для загрузки файла .bin в ESP8266 или ESP32 .

Если вы не знаете, что такое файлы .hex и .bin, читайте дальше. Код , написанный в Arduino IDE , написан на C и / или C ++ , языке программирования высокого уровня , который нам легко читать и писать.Микроконтроллеры не способны понимать языки программирования высокого уровня.

Однако, когда вы нажимаете кнопку «Загрузить», Arduino IDE преобразует ваш код в шестнадцатеричные и / или двоичные файлы , которые затем загружаются в микроконтроллеры. Обычно эти файлы действуют как прошивка вашего устройства .

Очень часто разработчик делал файл .hex или .bin доступным для клиента, потому что разработчик приложил много усилий, чтобы написать этот код, и не хочет показывать вам, как он это сделал, поэтому разработчик может просто предоставьте вам скомпилированный файл .hex или .bin файл вместо программного кода , и вам нужно будет изучить эти шаги, чтобы загрузить файлы .hex и .bin с помощью командной строки (приглашение CMD) без использования Arduino IDE.

КАК СОЗДАТЬ ФАЙЛ .hex ИЛИ .bin

Выберите свою «плату разработки» в разделе «Инструменты», , затем нажмите «Экспорт скомпилированного двоичного файла» в разделе «Эскиз».

Это сгенерирует двух шестнадцатеричных файлов , если вы используете плату Arduino , или двоичных файлов , если вы используете плату ESP8266 или ESP32 , в той же папке r (там же), где файл ino сохраняется .

КАК ЗАГРУЗИТЬ ФАЙЛ .hex В ARDUINO UNO / NANO / MEGA С ПОМОЩЬЮ КОМАНДНОЙ ЗАПРОСЫ

Прежде чем начать, имейте в виду, что вам понадобятся три вещи

    • avrdude расположение
    • avrdude.conf расположение
    • Расположение файла .hex
ШАГ 1

Для начала откройте Arduino IDE и перейдите в File> Preferences , отметьте поле upload под Показать подробный вывод в течение :

Показывать подробный вывод во время компиляции и загрузки - Arduino IDE
STEP 2

Выберите плату из меню инструментов, в моем случае Arduino Genuino / Uno и COM-порт из меню инструментов.У меня COM14, но возможно, что у вас другой.

Выберите COM-порт
STEP 3

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

ШАГ 4

Перед тем, как красный текст начинался с, что-то вроде «avrdude: Version 6.3-20171130» , как показано на снимке экрана, после успешной загрузки.

Найдите команду загрузки шестнадцатеричного файла

Вы встретите avr dude command , как это, но ваш путь может немного отличаться.Взгляните на эти точки и посмотрите, содержат ли они -CC , -Uflash: w: \ path_of_hex_file: i

 C: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / bin / avrdude -CC: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / etc / avrdude.conf -v -patmega328p -carduino -PCOM14 -b115200 -D -Uflash:  w: D: \ MyCode \ String_Seprator \ String_Seprator.ino.standard.hex: i  

Скопируйте эту строку и вставьте в какой-нибудь текстовый редактор, например notepad ++, следующие 2 шага важны t.

ШАГ 5

Замените путь между «w» и «i» в последней красной строке на , путь к шестнадцатеричному файлу , который вы собираетесь загрузить .

ШАГ 6

Так как командная строка CMD не распознает пробелы между путями. см. Здесь, в Pr ogram Files (x86) , используйте двойной курс «» для пути. Вот как будет выглядеть приведенная выше команда. (увидеть ниже).

 "C: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / bin / avrdude" "-CC: \ Program Files (x86) \ Arduino \ hardware \ tools \ avr / etc / avrdude.conf "-v -patmega328p -carduino -PCOM14 -b115200 -D -Uflash: w: " D: \ PIJA Education \ String_Seprator \ String_Seprator.ino.standard.hex: i " 

Если вы не используете двойной курс, вы получите ошибку , например:

«C: \ Program» не распознается как внутренняя или внешняя команда

«C: \ Program» не распознается как внутренняя или внешняя команда, действующая программа или командный файл.

ШАГ 7

Теперь откройте командную строку ( Windows + r ), введите cmd в мастере запуска и нажмите OK.

Окно запуска - cmd
STEP 8

Путь из шага 6 должен быть скопирован , щелкнуть правой кнопкой мыши и вставлен ; сочетание клавиш ctrl + v не будет работать здесь, в командной строке.

ШАГ 9

Если все вышеперечисленные шаги выполнены правильно, вы увидите, что загрузка прошла успешно. с сообщением в конце « avrdude done. Спасибо.

Загрузите шестнадцатеричный файл в Arduino, используя командную строку

КАК ЗАГРУЗИТЬ.bin ФАЙЛ В ESP8266 ИСПОЛЬЗОВАНИЕ КОМАНДНОЙ ЗАПРОСЫ

Чтобы загрузить .bin файл в ESP8266, следуйте тем же инструкциям с 1 по 3, что и для Arduino, за исключением выбора платы и порта, на этот раз они будут другими. Например, плата может быть NodeMCU 0.9 (модуль ESP-12), а порт - COM11.

ШАГ 1

После успешной загрузки кода Перед тем, как начался красный цвет текста , что-то вроде «esptool.py v2.8» , как показано на скриншоте

Найдите NodeMCU / ESP8266 команду загрузки bin-файла

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

 C: \ Users \ abc \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ tools \ python3 \ 3.7.2-post1 / python3 C: \ Users \ abc \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ hardware \ esp8266 \ 2.7.4 / tools / upload.py --chip esp8266 --port COM11 --baud 115200 - до сброса_по умолчанию - после жесткого_сброса write_flash 0x0 C: \ Users \ abc \ AppData \ Local \ Temp \ arduino_build_9655 / test.ino. мусорное ведро 

Скопируйте эту строку и вставьте в какой-нибудь текстовый редактор, например notepad ++, следующие 2 шага важны t.

ШАГ 2

Замените путь в последней красной строке на , путь к bin-файлу , который вы собираетесь загрузить .

ШАГ 3

Так как приглашение CMD не распознает пробелы между путями. см. Здесь в Pr ogram Files (x86) , используйте с двойным курсом «» для пути, если в пути есть пробелы. Вот как будет выглядеть приведенная выше команда. (увидеть ниже).

 C: \ Users \ abc \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ tools \ python3 \ 3.7.2-post1 / python3 C: \ Users \ abc \ AppData \ Local \ Arduino15 \ packages \ esp8266 \ hardware \ esp8266 \ 2.7.4 / tools / upload.py --chip esp8266 --port COM11 --baud 115200 --before default_reset --after hard_reset write_flash 0x0 "D: \ PIJA Education \ test / test.ino.nodemcu.bin "
 
ШАГ 4

Теперь откройте командную строку ( Windows + r ), введите cmd в мастере запуска и нажмите OK.

Окно запуска - cmd
STEP 5

Путь из шага 3 должен быть скопирован , щелкнуть правой кнопкой мыши и вставить ; сочетание клавиш ctrl + v не будет работать здесь в cmd prompt .

ШАГ 6

Если все вышеперечисленные шаги выполнены правильно, нажмите Enter, и вы увидите, что загрузка прошла успешно с сообщением в конце « Hard resetting via RTS pin… »

Загрузите файл bin в ESP8266, используя командную строку (cmd)

Прошивка шестнадцатеричного файла Arduino в Linux с помощью Avrdude - Skjoldtech

Это может быть удобно для удаленной прошивки Arduino, подключенного к Raspberry Pi.
В конце этого руководства вы просто прошиваете шестнадцатеричный файл с помощью команды:

  ./upload.sh  

Установить Avrdude

  кд
sudo apt-get install avrdude  

Сделать папку проекта на домашней странице пользователя:

  кд
mkdir avrdude  

Получить команду Avrdude

В настройках IDE Arduino установите подробный вывод во время загрузки. Сделайте нормальную загрузку.
Скопируйте команду avrdude.

Получить шестнадцатеричный файл из Arduino IDE

Экспорт Arduino Hex с помощью Ctrl + Alt + S.

Чтобы найти свой шестнадцатеричный файл, нажмите «Показать папку эскиза» (Ctrl + K). Переименуйте его по своему вкусу и скопируйте в только что созданный каталог avrdude с помощью Winscp:
https://youtu.be/fsRkTlv5rxw?t=178

Найдите свое последовательное устройство (tty)

Выполните приведенную ниже команду с отключенным и подключенным устройством, чтобы найти имя своего последовательного устройства. Имя устройства используется в команде avrdude. (у меня ttyUSB0).

  dmesg | grep tty
# ИЛИ
ls -l / dev / ttyUSB * && ls -l / dev / ttyS *  

Тест avrdude

Программа Avrdude - это программа-прошивальщик для Arduino.Здесь мы используем параметры из Arduino IDE, но изменили последовательный порт и путь к шестнадцатеричному файлу.

  avrdude -v -p atmega328p -c arduino -P / dev / ttyUSB0 -b 57600 -D -U flash: w: /home/pi/avrdude/Blink.hex: i  

Ниже приведен пример успешной загрузки:

  pi @ orangepizero: ~ / avrdude $ avrdude -v -p atmega328p -c arduino -P / dev / ttyUSB0 -b 57600 -D -U flash: w: /home/pi/avrdude/Blink200.hex: i

avrdude: Версия 6.3
         Авторские права (c) 2000-2005 Брайан Дин, http: // www.bdmicro.com/
         Copyright (c) 2007-2014 Йорг Вунш

         Общесистемный файл конфигурации - "/etc/avrdude.conf"
         Файл конфигурации пользователя: /home/pi/.avrduderc
         Файл конфигурации пользователя не существует или не является обычным файлом, пропускаем

         Использование порта: / dev / ttyUSB0
         Использование программатора: arduino
         Преобладающая скорость передачи данных: 57600
         Часть AVR: ATmega328P
         Задержка стирания чипа: 9000 мкс
         СТРАНИЦА: PD7
         BS2: PC2
         Расположение RESET: выделено
         ПОВТОРНЫЙ импульс: SCK
         последовательный программный режим: да
         режим параллельной программы: да
         Тайм-аут: 200
         StabDelay: 100
         CmdexeDelay: 25
         SyncLoops: 32
         ByteDelay: 0
         PollIndex: 3
         PollValue: 0x53
         Детали памяти:

                                  Заблокировать страницу опроса
           Тип памяти Режим Задержка Размер Indx Paged Size Size # Страницы MinW MaxW ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ----- - ----- ----- ---------
           eeprom 65 20 4 0 нет 1024 4 0 3600 3600 0xff 0xff
           вспышка 65 6128 0 да 32768128256 4500 4500 0xff 0xff
           lfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
           hfuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
           efuse 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
           блокировка 0 0 0 0 нет 1 0 0 4500 4500 0x00 0x00
           калибровка 0 0 0 0 нет 1 0 0 0 0 0x00 0x00
           подпись 0 0 0 0 нет 3 0 0 0 0 0x00 0x00

         Тип программатора: Arduino
         Описание: Arduino
         Версия оборудования: 2
         Версия прошивки: 1.16
         Vtarget: 0,0 В
         Вареф: 0,0 В
         Осциллятор: выключен
         Период SCK: 0,1 мкс

avrdude: устройство AVR инициализировано и готово принимать инструкции

Чтение | ########################################################################## | 100% 0,00 с

avrdude: подпись устройства = 0x1e950f (возможно, m328p)
avrdude: safemode: hfuse читается как 0
avrdude: safemode: efuse читается как 0
avrdude: чтение входного файла "/home/pi/avrdude/Blink200.hex"
avrdude: запись flash (32670 байт):

Написание | ########################################################################## | 100% 0.62с

avrdude: записано 32670 байт флеш-памяти
avrdude: проверка флэш-памяти на соответствие /home/pi/avrdude/Blink200.hex:
avrdude: загрузить данные флэш-памяти из входного файла /home/pi/avrdude/Blink200.hex:
avrdude: входной файл /home/pi/avrdude/Blink200.hex содержит 32670 байт
avrdude: чтение данных флеш-памяти на кристалле:

Чтение | ########################################################################## | 100% 0,48 сек

avrdude: проверяем ...
avrdude: проверено 32670 байт флэш-памяти

avrdude: safemode: hfuse читается как 0
avrdude: safemode: efuse читается как 0
avrdude: safemode: Предохранители исправны (E: 00, H: 00, L: 00)

avrdude сделано.Спасибо.  

Тест последовательного вывода

  cat / dev / ttyUSB0  

Сделать сценарий загрузки

Создайте сценарий загрузки для упрощения загрузки в следующий раз:
Дополнительная информация о сценариях bash здесь: https://linuxconfig.org/bash-scripting-tutorial

  cd avrdude
нано upload.sh  

Файл содержит команду avrdude. Вы можете добавить новые строки команд и закомментировать старые, если хотите.

  #! / Bin / bash
# Простой скрипт для загрузки шестнадцатеричных файлов в Arduino с помощью avrdude, автор Per Emil Skjold.# Полное руководство здесь:
# https://skjoldtech.wordpress.com/2019/05/10/flashing-arduino-hex-file-in-linux-with-avrdude/

avrdude -v -p atmega328p -c arduino -P / dev / ttyUSB0 -b 57600 -D -U flash: w: /home/pi/avrdude/Blink.hex: i  

Установить исполняемый файл скрипта:

  chmod + x upload.sh  

Запустить сценарий загрузки

  ./upload.sh  

Пример используемого мной сценария загрузки. Здесь я также перечисляю доступные устройства ttyUSB желтым цветом.

  #! / Bin / bash
# Простой скрипт для загрузки шестнадцатеричных файлов в Arduino с помощью avrdude, автор Per Emil Skjold.
# Полное руководство здесь:
# https://skjoldtech.wordpress.com/2019/05/10/flashing-arduino-hex-file-in-linux-with-avrdude/

# перечислить устройства ttyUSB желтым текстом:
echo -e "\ e [93mAvailable USB Serial Device:"
ls -l / dev / ttyUSB *
echo -e "\ e [0m"

# + ------------------------------------------------ ------------------ +
# | ПЛАТА ARDUINO NANO ВНИЗ
# + ------------------------------------------------ ------------------ +
# мигает 100 мс
# avrdude -v -p atmega328p -c arduino -P / dev / ttyUSB0 -b 57600 -D -U flash: w: / home / pi / avrdude / Blink.шестнадцатеричный: я

# Blink 1000 мс
# avrdude -v -p atmega328p -c arduino -P / dev / ttyUSB0 -b 57600 -D -U flash: w: /home/pi/avrdude/Blink1000.hex: i

# Устройство Nano IO
avrdude -v -p atmega328p -c arduino -P / dev / ttyUSB0 -b 57600 -D -U flash: w: /home/pi/avrdude/nano-io.hex: i


# + ------------------------------------------------ ------------------ +
# | ДОСКА ARDUINO UNO НИЖЕ
# + ------------------------------------------------ ------------------ +
  

Исправить проблемы с портом tty:

Проверить, что устройство принадлежит к группе пользователей дозвона (если в доступе отказано)

  ls -l / dev / ttyUSB *  

установить устройство для дозвона группы пользователей (если в доступе отказано)

  sudo chown корень: dialout / dev / ttyUSB0  

установить устройство, доступное для записи пользователем (если доступ запрещен)

  sudo chmod a + rw / dev / ttyUSB0  

добавить пользователя pi в группу dialout (если доступ запрещен). Вам нужно выйти и снова войти.

  usermod -a -G dialout pi  

Нравится:

Нравится Загрузка ...

Связанные

Arduino Builder - автономная утилита для создания и загрузки эскизов Arduino

Зачем создавать эту утилиту, ведь Arduino IDE может все?

  • Иногда нам нужно всего лишь скомпилировать заранее написанный скетч и загрузить его в Arduino. Обычно мы делаем это с помощью Arduino IDE, но это не лучший опыт.
  • Иногда нам просто нужно записать загрузчик платы в HEX-файл. Для этого существует множество графических интерфейсов пользователя AVRDUDE. Но многие из них устарели и не подходят для Леонардо (на базе ATMega32U4), не говоря уже о том, что они просто графические интерфейсы для AVRDUDE, которые не могут компилироваться.
  • И я люблю Arduino!

Вот почему я сделал эту утилиту простой, понятной и изящной, чтобы мне было легче при загрузке для Arduino.

Arduino Builder - это полностью автономная утилита для просмотра, компиляции и загрузки файла эскиза Arduino и скомпилированного файла ELF или HEX (обычно загрузчика) на плату Arduino с интерфейсом последовательного программирования Arduino, USBasp или Arduino ISP без необходимости в Arduino IDE.Это легко сделать, выполнив не более 3 шагов. Когда требуется компиляция (для загрузки файла эскиза), утилита сканирует эскиз на предмет наличия библиотек, на которые имеются ссылки, и автоматически создает необходимые библиотеки.

Arduino Builder поставляется в версии с графическим интерфейсом пользователя (GUI) для обычных конечных пользователей и версии CLI (интерфейс командной строки), названной Arduino Uploader, для интеграции в сторонние приложения.

Дистрибутив содержит файлы ядра и библиотеки Arduino 1.0.4, набор инструментов компилятора AVR GCC и AVRDUDE.Поскольку с утилитой поставляются только стандартные библиотеки Arduino, для сборки с использованием пользовательских библиотек поместите файлы исходного кода библиотеки (с таким же именем каталога) в каталог / arduino / libraries, как это делается с официальным Arduino IDE.

Построитель Arduino (графический интерфейс)

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

  1. Выберите файл: файл эскиза (.ino), файл HEX (.hex) или файл ELF (.эльф)
  2. Выберите тип платы в раскрывающемся списке
  3. Щелкните последовательный порт (или кнопку USBASP), и загрузка будет продолжена.

Во время компиляции или загрузки отображается текущий статус, а подробная информация отображается в области консоли. Подробное руководство доступно здесь .

Скриншоты Arduino Builder

Загрузчик Arduino (версия Arduino Builder с интерфейсом командной строки)

Arduino Uploader - это утилита командной строки, вызываемая параметрами командной строки, которая вернется после компиляции и загрузки.

Синтаксис командной строки

 ArduinoUploader [эскиз / файл HEX] [тип платы] [последовательный порт / usbasp]

Типы досок:
1 - Arduino Uno
2 - Ардуино Леонардо
3 - Arduino Esplora
4 - Arduino Micro
5 - Arduino Duemilanove (328)
6 - Arduino Duemilanove (168)
7 - Ардуино Нано (328)
8 - Ардуино Нано (168)
9 - Arduino Mini (328)
10 - Ардуино Мини (168)
11 - Arduino Pro Mini (328)
12 - Arduino Pro Mini (168)
13 - Arduino Mega 2560 / ADK
14 - Arduino Mega 1280;
15 - Ардуино Мега 8
16 - ядро ​​Microduino + (644)
17 - Адаптер Freematics OBD-II 

Примеры

Скомпилировать и загрузить Blink.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *