Оглавление:
Видео: Программирование Arduino по воздуху (OTA) - Ameba Arduino: 4 шага
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
На рынке существует множество микроконтроллеров Wi-Fi, многие производители с удовольствием программируют свои микроконтроллеры Wi-Fi с помощью Arduino IDE. Однако одна из самых крутых функций, которые может предложить микроконтроллер Wi-Fi, как правило, упускается из виду, это программирование и загрузка вашего кода удаленно и по беспроводной сети с использованием функции OTA (Over-The-Air).
В этом руководстве я покажу вам, как настроить OTA на вашем микроконтроллере Wi-Fi, используя вездесущую Arduino IDE на микроконтроллере Ameba Arduino Wi-Fi!
Запасы
Ameba Arduino x 1
Шаг 1: OTA
OTA (Over-The-Air) относится к механизму онлайн-обновления через Интернет.
Arduino IDE предлагает функцию OTA, которая соответствует рабочему процессу, показанному на рисунке выше.
(i) Arduino IDE ищет через mDNS устройства с сервисом Arduino IDEOTA в локальной сети.
(ii) Поскольку служба mDNS работает на Ameba, Ameba отвечает на поиск mDNS и открывает определенный порт TCP для подключения.
(iii) Пользователь разрабатывает программу в Arduino IDE. По завершении выберите сетевой порт.
(iv) Нажмите «Загрузить». Затем Arduino IDE отправляет образ OTA в Ameba через TCP, Ameba сохраняет образ по определенному адресу и устанавливает параметр загрузки для загрузки с этого образа в следующий раз.
Рабочий процесс состоит из трех частей: mDNS, TCP и процесс образа OTA. Подробности, относящиеся к mDNS, описаны в руководстве по mDNS. Программирование сокетов TCP используется при передаче изображений и уже предусмотрено в OTA API.
В следующем разделе мы обсудим, как обрабатывать образ OTA, и познакомим вас с некоторыми базовыми знаниями о структуре флэш-памяти Ameba и последовательности загрузки.
Шаг 2. Схема расположения флеш-памяти Ameba
Размер флэш-памяти Ameba RTL8195A составляет 2 МБ, в диапазоне от 0x00000000 до 0x00200000. Однако размер флэш-памяти Ameba RTL8710 составляет 1 МБ. Чтобы соответствовать использованию различных плат, мы предполагаем, что размер флэш-памяти составляет 1 МБ.
Как показано на рисунке выше, программа Ameba занимает три части флеш-памяти:
- Загрузочный образ :
То есть загрузчик. При загрузке Ameba помещает загрузочный образ в память и выполняет инициализацию. Кроме того, он определяет, куда двигаться после загрузчика. Загрузчик просматривает адрес OTA и контакт восстановления в области системных данных и определяет, какой образ будет выполнен позже. В конце загрузчика он помещает образ в память и начинает его выполнение.
- Изображение по умолчанию 2 :
В этой части размещен код разработчика, адрес начинается с 0x0000B000. Первые 16 байтов - это заголовок изображения, 0x0000B008 ~ 0x0000B00F содержит подпись, которая используется для проверки действительности изображения. Поле подписи имеет два допустимых значения, чтобы отличить новое изображение от старого.
- Изображение OTA :
Данные в этой части также являются кодом разработчика. По умолчанию эта часть памяти начинается с 0x00080000 (можно изменить). Основные различия между OTA-изображением и Default Image 2 заключаются в адресе флэш-памяти и значении подписи.
Помимо кода, есть несколько блоков данных:
- Системные данные :
Системный блок данных начинается с 0x00009000. Есть два данных, связанных с OTA:
1. Адрес OTA : 4 байта данных, начиная с 0x00009000. Он сообщает адрес OTA Image. Если значение адреса OTA недействительно (т. Е. 0xFFFFFFFF), изображение OTA во флэш-памяти не может быть загружено правильно.
2. Пин восстановления : 4 байта данных, начиная с 0x00009008. Пин восстановления используется для определения того, какое изображение (изображение по умолчанию 2 или изображение OTA) выполнить, когда оба изображения действительны. Если значение булавки восстановления недействительно (т. Е. 0xFFFFFFFF), новое изображение будет выполнено по умолчанию.
Системные данные будут удалены, когда мы загрузим программу в Ameba через DAP. То есть адрес OTA будет удален, и Ameba определит, что изображения OTA нет.
- Данные калибровки : В этот блок помещаются данные калибровки периферийных устройств. Обычно эти данные не следует удалять.
Шаг 3. Процесс загрузки
На изображении выше
Мы обсуждаем следующие сценарии: (i) OTA не используется, используйте DAP для загрузки программы:
В этой ситуации загрузчик проверяет подпись образа 2 по умолчанию и адрес OTA. Поскольку адрес OTA удален, для выполнения будет выбрано изображение 2 по умолчанию.
(ii) OTA-образ передается в Ameba, OTA-адрес установлен правильно, PIN-код восстановления не установлен :
Ameba получила обновленное изображение через OTA, подпись изображения по умолчанию 2 будет установлена на старую подпись.
Загрузчик проверяет подпись образа 2 по умолчанию и адрес OTA. Он обнаружит, что адрес OTA содержит действительное изображение OTA. Поскольку контакт восстановления не установлен, он выбирает новое изображение (то есть изображение OTA) для выполнения.
(iii) OTA-образ передается в Ameba, OTA-адрес установлен правильно, PIN-код восстановления установлен :
Ameba получила обновленное изображение через OTA, подпись изображения по умолчанию 2 будет установлена на старую подпись.
Загрузчик проверяет подпись образа 2 по умолчанию и адрес OTA. Он обнаружит, что адрес OTA содержит действительное изображение OTA. Затем проверьте значение булавки восстановления. Если контакт восстановления подключен к LOW, будет выполнен новый образ (т. Е. Образ OTA). Если контакт восстановления подключен к HIGH, будет выполнено старое изображение (то есть изображение по умолчанию 2).
Шаг 4: Пример
Чтобы использовать функцию OTA, обновите прошивку DAP до версии> 0.7 (версия 0.7 не включена). Заводская прошивка DAP по умолчанию - версия 0.7. Следуйте инструкциям по обновлению прошивки DAP:
Откройте пример: «Файл» -> «Примеры» -> «AmebaOTA» -> «ota_basic»
Введите ssid и пароль в образец кода для сетевого подключения.
Есть несколько параметров, относящихся к OTA:
§ MY_VERSION_NUMBER : В первой версии нам нужно установить адрес OTA и пин восстановления. Поскольку на этот раз мы загружаем через USB первую версию, нам не нужно изменять это значение.
§ OTA_PORT : Arduino IDE найдет Ameba через mDNS. Ameba сообщит Arduino IDE, что открывает TCP-порт 5000 для ожидания образа OTA.
§ RECOVERY_PIN : Настройте контакт, используемый для восстановления. Здесь мы используем вывод 18.
Затем мы используем программу загрузки USB в Ameba. Нажмите Инструменты -> Порты, выберите последовательный порт, который хотите использовать :
Обратите внимание, что IDE Arduino использует один порт для загрузки программы и журнала вывода. Чтобы избежать ситуации, когда журнал не может быть выведен при использовании OTA, мы используем другой терминал последовательного порта (например, Tera term или putty) вместо последовательного монитора для просмотра сообщения журнала.
Затем нажмите кнопку загрузки и нажмите кнопку сброса.
В сообщении журнала:
1. Между «===== Enter Image 1 ====» и «Enter Image 2 ====» вы можете найти «Flash Image 2: Addr 0xb000». Это означает, что Ameba определяет загрузку с образа по умолчанию 2 по адресу 0xb000.
2. После «Введите изображение 2 ====» вы увидите «Это версия 1». Это сообщение журнала, которое мы добавляем в скетч.
3. После того, как Ameba подключится к AP и получит IP-адрес «192.168.1.238», она активирует mDNS и ждет клиента.
Затем мы изменяем "MY_VERSION_NUMBER" на 2.
Нажмите «Инструменты» -> «Порт», вы увидите список «Сетевые порты». Найдите «MyAmeba at 192.168.1.238 (Ameba RTL8195A)», MyAmeba - это имя устройства mDNS, которое мы установили в примере кода, а «192.168.1.238» - это IP-адрес Ameba.
Если вы не можете найти сетевой порт Ameba, подтвердите:
- находятся ли ваш компьютер и Ameba в одной локальной сети?
- попробуйте перезапустить Arduino IDE.
- проверьте сообщение журнала в Serial Monitor, чтобы узнать, успешно ли Ameba подключена к AP.
Затем нажмите «Загрузить». На этот раз программа будет загружена по TCP. В терминале журнала вы можете увидеть информацию о подключении клиента.
После успешной загрузки образа OTA Ameba перезагрузится, и в терминале журнала отобразится следующий журнал.
- Между «===== Enter Image 1 ====» и «Enter Image 2 ====» вы можете увидеть сообщение журнала «Flash Image 2: Addr 0x80000». Это означает, что Ameba определяет загрузку из образа OTA по адресу 0x80000.
- После «Введите изображение 2 ====» журнал «Это версия 2» - это сообщение, которое мы добавляем в скетч.
Чтобы восстановить предыдущее изображение после загрузки изображения OTA в Ameba, подключите контакт восстановления, который мы установили в скетче (т.е. контакт 18), к ВЫСОКОМУ (3,3 В) и нажмите сброс.
Затем при загрузке будет выбран образ по умолчанию 2. Обратите внимание, что загруженный образ OTA не удаляется, как только контакт восстановления отключен от HIGH, образ OTA будет выполнен.
На следующем рисунке мы суммируем процесс разработки с использованием OTA.
Рекомендуемые:
Программирование ATmega328 с помощью Arduino IDE с использованием кристалла 8 МГц: 4 шага
Программирование ATmega328 с помощью Arduino IDE с использованием кристалла 8 МГц: в этом Instuctable я расскажу пошаговое руководство по программированию микросхемы ATmega328P (тот же микроконтроллер, что присутствует в Arudino UNO) с использованием Arduino IDE и Arduino UNO в качестве программиста, чтобы вы могли создать себе настраиваемый Arduino, чтобы ваши проекты
ATtiny85 Носимые часы с отслеживанием активности с вибрацией и программирование ATtiny85 с Arduino Uno: 4 шага (с изображениями)
ATtiny85 Носимые часы с отслеживанием активности с вибрацией и программирование ATtiny85 с Arduino Uno: как сделать носимые часы с отслеживанием активности? Это носимый гаджет, который вибрирует при обнаружении застоя. Вы проводите большую часть времени за компьютером, как я? Вы сидите часами, не осознавая этого? Тогда это устройство ф
ПРОГРАММИРОВАНИЕ AT89S52 С ПОМОЩЬЮ ARDUINO: 4 шага
ПРОГРАММИРОВАНИЕ AT89S52 С ИСПОЛЬЗОВАНИЕМ ARDUINO: внутрисистемное программирование (ISP), также известное как внутрисхемное последовательное программирование (ICSP), - это возможность программирования некоторых программируемых логических устройств, микроконтроллеров и других встроенных устройств во время их установки в полную систему, вместо того, чтобы требовать чи
Программирование Arduino через мобильное устройство -- Arduinodroid -- Arduino Ide для Android -- Мигание: 4 шага
Программирование Arduino через мобильное устройство || Arduinodroid || Arduino Ide для Android || Blink: Подпишитесь на мой канал на YouTube, чтобы увидеть больше видео … Arduino - это плата, которую можно программировать непосредственно через USB. Это очень просто и дешево для университетских и школьных проектов или даже в качестве прототипа продукта. Многие продукты в первую очередь основаны на нем для
Начало работы с Esp 8266 Esp-01 с Arduino IDE - Установка плат Esp в Arduino Ide и программирование Esp: 4 шага
Начало работы с Esp 8266 Esp-01 с Arduino IDE | Установка плат Esp в Arduino Ide и программирование Esp: в этих инструкциях мы узнаем, как установить платы esp8266 в Arduino IDE и как программировать esp-01 и загружать в него код. Поскольку платы esp настолько популярны, я подумал о том, чтобы исправить инструкции для это и большинство людей сталкиваются с проблемой