2 способа прошивки Arduino

Arduino прошивки Уроки

2 1По определению прошивки — она означает постоянное программное обеспечение, запрограммированное в постоянную память. Итак, в Arduino используются две категории прошивок: 

  1. Bootloader (Загрузчик).
  2. User’s Customize (Пользовательский).

Bootloader(Загрузчик)- это важный, но менее обсуждаемый компонент программирования микроконтроллеров. Возможно, сталкивались с этим термином или даже непосредственно взаимодействовали с загрузчиками на микроконтроллерах. 

 

Введение в Bootloader

Bootloader(Загрузчик) — это небольшой фрагмент кода, который запускается при первом запуске микроконтроллера. Этот код используется для копирования фактического приложения из внутренней или внешней памяти (обычно внутренней флэш-памяти для микроконтроллеров) в оперативную память устройства, где оно может быть выполнено. Поскольку запускается при каждой загрузке, мы можем легко изменить или обновить микропрограмму устройства в любое время. 

 

Какие проблемы решают загрузчики?

Bootloader позволяют легко обновлять развернутую систему для исправления ошибок или просто обновления ее функций. Без загрузчика даже для простых изменений пришлось бы напрямую взаимодействовать с микросхемой на печатной плате с помощью специализированного оборудования, такого как отладчик JTAG.2 4

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

Таким образом, родился bootloader. Имея общий интерфейс для загрузки новых приложений, можем обновлять прошивку без использования JTAG!

Преимущества.

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

  1. Загрузчики можно настраивать.

Поскольку загрузчики представляют собой код, можем запрограммировать их на разное поведение. Например, настроить на получение прошивки через различные интерфейсы, такие как SD-карта, Интернет, I2C / UART и т.д., в зависимости от того, какой из них удобнее. 

Вот несколько примеров того, как могут различаться bootloader. 

Проводное подключение — где двоичный файл (скомпилированный скетч) передается через USB.

Беспроводное подключение — например, обновления OTA или Over The Air, которые ведут себя аналогично, за исключением того, что передача данных осуществляется беспроводным способом.

Безопасные данные передаются в зашифрованном виде с взаимной аутентификацией. 

  1. Загрузчики делают разработку более безопасной.

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

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

  1. Загрузчики способствуют улучшению пользовательского опыта.

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

Популярные микроконтроллеры ARM

Какие типы микроконтроллеров могут использовать преимущества удобного UF2. Что ж, практический ответ на этот вопрос таков… все — при условии, что UF2 был перенесен на устройство! 

Рекомендуемые ARM-микроконтроллеры. Команда Seeed портировала загрузчик UF2 для всех этих устройств, так что можно использовать его для легкой прошивки! 

Seeeduino XIAO

Seeeduino XIAO — самая маленькая Arduino-совместимая плата в семействе Seeeduino. Несмотря на свой небольшой размер, Seeeduino XIAO оснащена мощным микрочипом SAMD21 и множеством аппаратных интерфейсов. Seeeduino XIAO использует загрузчик UF2, который дает нам удобный доступ к прошивкам как Arduino, так и MicroPython. 2 1

Терминал Wio

Wio Terminal — это полноценная платформа для разработки Arduino на базе ATSAMD51 с беспроводной связью на базе Realtek RTL8720DN. Как микроконтроллер «все в одном», он имеет встроенный 2,4-дюймовый ЖК-дисплей, IMU, микрофон, зуммер, слот для карт microSD, датчик освещенности и инфракрасный излучатель. 3 3

Wio Terminal также использует загрузчик UF2, который позволяет нам прошивать на него различные прошивки. В результате его можно программировать с помощью различных платформ, включая богатым ресурсами IDE и дружественную для новичков MicroPython! 

Особенности продукта: 

Мощный MCU: Microchip ATSAMD51P19 с ядром ARM Cortex-M4F, работающим на частоте 120 МГц.

Надежная беспроводная связь: Оснащен Realtek RTL8720DN, двухдиапазонным Wi-Fi 2.4GHz / 5GHz (поддерживается только Arduino).

Высоко интегрированный дизайн: 2,4″ ЖК-экран, IMU и другие практичные дополнения помещены в компактный корпус со встроенными магнитами и монтажными отверстиями

Совместимый с Raspberry Pi 40-контактный GPIO

Совместимость с более чем 300 подключаемыми модулями Grove для изучения IoT

Поддержка USB OTG

Поддержка Arduino, CircuitPython, Micropython, ArduPy, AT Firmware, Visual Studio Code

Формат загрузчика UF2

Наиболее распространенный формат, с которым вы столкнетесь при работе с загрузчиками микроконтроллеров — UF2. UF2, или USB Flashing Format- это стандарт разработанный компанией Microsoft, который позволяет программировать микроконтроллеры с различными прошивками через Mass Storage Class (съемный диск). 

Этот загрузчик совместим со многими платформами, включая Arduino IDE, MakeCode, ArduPy и CircuitPython. Чтобы прочитать больше об истории форматов и UF2, посетите официальную страницу Microsoft Makecode. 

Прошивка микропрограмм с помощью загрузчика UF2

Необходимые материалы:

  • Seeeduino XIAO или Wio Terminal
  • Компьютер с ОС Windows, Mac или Linux
  • Проводное USB-подключение

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

4 4

Шаг 1: Войдите в режим загрузчика

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

Для Seeeduino XIAO, пожалуйста, обратитесь сюда.

Если все сделано успешно, на компьютере должен появиться USB-накопитель с именем Arduino. Перейдите к этому диску.

Шаг 2: Загрузите прошивку ArduPy UF2 (Wio Terminal / Seeeduino XIAO).

Шаг 3: Прошивка ArduPy.

Перетащите скачанный файл UF2 и бросьте его на USB-накопитель. Плата будет автоматически извлечена. Теперь перезагрузите плату, чтобы загрузить новую прошивку ArduPy!

Шаг 4: Протестируйте новую прошивку

Если предыдущие шаги были выполнены правильно, на компьютере должен появиться USB-накопитель с именем ARDUPY. Откройте файл main.py python в директории накопителя с помощью текстового редактора на выбор.

Наконец, скопируйте следующий код в файл main.py, сохраните файл и перезагрузите микроконтроллер. 

Как запрограммировать пользовательский загрузчик 

Вариант 1: Просто применить существующий bootloader

Написание загрузчика с нуля — непростая задача даже для опытного программиста низкого уровня. К счастью, большинство производителей предоставляют с основными функциями, чтобы сосредоточиться на создании приложений, а не на «голом железе». 

Вариант 2: Перенос существующего загрузчика

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

Вариант 3: Написать с нуля

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

Оцените статью
Информация об Ардуино
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я принимаю политику конфиденциальности.