Существует ли оборудование, которое можно использовать для загрузки исходного кода скетчей через USB-флэш-диск (автоматически, подключив его)

Хорошо, я прошу об этом в основном, чтобы узнать, возможно ли создать загрузочный флэш-накопитель, который автоматически загружает любой исходный код на arduino, точно так же, как создание загрузочного флэш-накопителя при установке операционной системы Windows на компьютер. Я буду рад получить несколько интересных ответов, которые были бы полезны, спасибо.

, 👍1


2 ответа


1

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

Однако существуют различные варианты:

  1. Напишите новый загрузчик, который использует USB Host Shield для загрузки данных с USB-устройства MSD, а затем прошейте его на внутреннюю флэш-память MCU (сложно сделать, если вы не знакомы с низкоуровневым программированием)
  2. Используйте встроенный компьютер Linux (Raspberry Pi и т. Д.) Для запуска avrdude и прошивки вашего Arduino, как будто он подключен к компьютеру
  3. Используйте Arduino, в котором есть часть Linux (например, почтенный Arduino Yun), или shield, который предоставляет аналогичную функцию (Dragino Yun Shield), чтобы прошить AVR-чип из Linux
  4. Не используйте Arduino вообще, но используйте встроенный компьютер Linux для всего.
,

Спасибо за комментарий, хотя мне это действительно кажется трудным, как будто мне нужно много читать и практиковаться. Нет ли какого-нибудь более простого способа, который мог бы каким-то образом обойти Linux?, @Sigma

Не без написания большого количества программного обеспечения и изучения того, как работает USB host shield, как работает прошивка чипа и другие подобные низкоуровневые функции., @Majenko


3

Существует решение с SD-картой и загрузчиком SD. Вы помещаете файл bin на SD-карту, вставляете его в SD-адаптер и включаете Arduino. Загрузчик загружает файл bin во флэш-память.

Я используюзагрузчик SD 'avr_boot' от Zevero. Он считывает файл с именем firmware.bin с SD-карты, если таковая имеется, и загружает его во флэш-память.

Чтобы сгенерировать файл bin для плат Arduino AVR, добавьте в platform.txt

recipe.objcopy.bin.pattern="{compiler.path}{compiler.elf2hex.cmd}" -O binary {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.bin"

Я использую это с библиотекой ArduinoOTA, которая загружает файл bin из IDE на SD-карту по сети, а затем сбрасывает MCU, чтобы загрузчик применил bin.

кстати: библиотека ArduinoOTA также может использовать верхнюю половину флэш-памяти для хранения загруженного файла, а затем активировать модифицированный Optiboot для копирования файла в местоположение запуска и сброса MCU.

ОБНОВЛЕНИЕ 2022: новый расширенный пример для моей библиотеки ArduinoOTA: загрузка hex с SD-карты

,

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

@Sigma, извини, я забыл связать загрузчик Zevero. исправлено. ссылка находится в ответе., @Juraj