[Программирование микроконтроллеров, Разработка для интернета вещей, Разработка под Arduino, Компьютерное железо, DIY или Сделай сам] ESP32-C3: первое знакомство. Заменим ESP8266?

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
12-Фев-2021 20:37

Новая игрушкаВ ноябре 2020 года Espressif анонсировала новую SoC под названием ESP32-C3. Они разослали несколько инженерных прототипов для тестирования и первого ознакомления.
Так довелось, что мне попался один из них на руки и я успел немного поиграться с ним. Надеюсь, мой краткий опыт будет интересен сообществу, так как тут есть на что посмотреть и ESP32-C3 имеет хороший шанс получить свою нишу в мире встраиваемых систем, так и в области DIY. Меня как раз больше интересует подход со стороны DIY, поэтому статья будет больше с этим уклоном.В чём разница?ESP32-C3 пытается занять нишу между ESP32/ESP32-S и нашим старым другом ESP8266. Даже больше хочет вытеснить ESP8266, чем быть дополнением к линейке ESP32.Не знаю что там будет с ценами, но переход на RISC-V, упрощение периферии и прочее может сделать ESP32-C3 достаточно привлекательным, что бы он смог заменить ESP8266 полностью. В итоге мы получим достойную замену старичку, с которым мы вместе с 2014 года.В таблице ниже я привёл основные отличия ESP32-C3 от предыдущих ESP32 и ESP32-S2. Так же у Espressif недавно был анонсирован ESP32-S3 с двумя ядрами, но я пока не буду его приводить ниже в силу отсутствия его в широкой продаже.ESP32ESP32-S2ESP32-C3CPUXtensa LX6Xtensa LX7RISC-V (RV32IMC)Частота CPU160 / 240 MHz160 / 240 MHz160 MHzКоличество ядер CPU2 / 111ULP CPUULP-FSMULP-RISC-VULP-FSM-SRAM520 KB320 KB400 KBRTC SRAM16 KB8 KB8 KBWiFi802.11bgn150 Mbit802.11bgn, 802.11mc150 Mbit802.11 bgn, 802.11mc150 MbitBluetooth4.2 BR/EDR BLE-Bluetooth 5GPIO34432212-bit ADC118 каналов220 каналов26 каналов8-bit DAC22-Touch sensor1014-SPI443I2S211I2C221UART322SDIO1--Ethernet MAC1--PWM1686USB OTG-1-ПотреблениеДо 240 мАДо 310 мАДо 325 мАModem sleep27 - 68 мА12 - 19 мА15 - 20 мАLight sleep0,8 мА0,45 мА0,13 мАDeep sleep0,01 - 0,15 мА0,02 - 0,19 мА0,005 мАКорпус48 выводов56 выводов32 выводаКак ESP8266, но не все выводы такие жеDevKit платаESP32-C3 приехал ко мне в виде платы ESP32-C3-DevKitM-1, на которой установлен модуль ESP32-C3-Mini-1 со встроенной 4 МБ флеш-памятью.
Так же на этой плате стоит USB-Serial конвертер CP2102 для подключения и прошивки по USB. На GPIO подключен RGB светодиод WS2812.Сам модуль ESP32-C3-Mini-1 физически по размеру заметно меньше того же ESP-12E на базе ESP8266. И в то же время ESP32-C3 имеет намного больше возможностей."Engineering Sample Notes"
С платой была одностраничное приложение с некоторыми пометками.Например, там написано, что потребление на DevKit'е ещё не достаточно оптимизировано и потому не рекомендуется для оценки в Deep-sleep режиме.Так же сказано, что в данной версии чипа поддержка USB Serial/JTAG отсутствует, но она будет присутствовать в финальной версии.Текущая версия ESP-IDF в процесс работы по добавлению поддержки ESP32-C3. Работа в этом направлении ведётся в ветках "master" и "release/v4.3".Поддержка ESP-IDFESP-IDF является официальным фреймворком для разработки под ESP32. Сама среда поддерживает всю линейку ESP32. Большинство примеров можно собрать под Xtensa LX6/LX7, так и под RISC-V. Переключение сводится к одной команде "idf.py set-target esp32c3", которая выставляет riscv32-esp-elf- и прочие параметры в sdkconfig. Теперь после компиляции у нас готова прошивка для нового ESP32-C3.Предварительно надо подготовить окружение в зависимости от ОС: Windows, Linux или macOS.
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf
# Linux/macOS
./install.sh
# Windows
install.ps1
Установочный скрипт скачает компиляторы и дополнительные пакеты для ESP-IDF. После этого надо импортировать окружение для начала работы:
# Linux/macOS
. ./export.sh
# Windows
export.bat
Рекомендую для проверки собрать "hello world":
cd examples/get-started/blink
# По-умолчанию настроено для ESP32, но если надо собрать прошивку для ESP32-S2
idf.py set-target esp32s2
# Или для ESP32-C3
idf.py set-target esp32c3
# Сборка, прошивка, USB консоль
idf.py build flash monitor
Не все примеры собираются под ESP32-C3, но Espressif активно работает над ESP-IDF для поддержки этого чипа.CoreMarkРади интереса запустил CoreMark бенчмарк для оценки производительности нового RISC-V ядра и сравнил эти данные с предыдущим ESP32 (к сожалению, у меня нет ESP32-S2 для более широкого сравнения).Ниже приведены попугаи для разной частоты процессора и для общего ознакомления добавлены значения при компиляции с выключенными оптимизациями (-O0):CoreMark 1.0GCCЧастота CPUESP32-C3388GCC8.4.0 -O3160 МГц98GCC8.4.0 -O0160 МГцESP32 (одно ядро)313GCC8.4.0 -O3160 МГц77GCC8.4.0 -O0160 МГц469GCC8.4.0 -O3240 МГц115GCC8.4.0 -O0240 МГцЯ сделал измерения ESP32-C3 на 80 МГц, но значения получились ровно в два раза ниже, что и предполагалось и поэтому в таблице не привожу.В попугаях RISC-V получился примерно на 24% быстрее. Конечно, обычные задачи, которыми мы загружаем такие микроконтроллеры будут сильно отличаться от синтетических бенчмарков, но было интересно посмотреть.Надо так же не забывать, что ESP32 поддерживает работу на частоте 240 МГц, а у ESP32-C3 максимальная частота только 160 МГц. Так же ESP32 имеет два ядра, которые можно задействовать в зависимости от задач.Но повышенная частота 240 МГц так же скажется на потреблении устройства. То есть, ESP32-C3 за каждый попугай будет просить меньше электронов (я не измерял потребление, но есть несколько замеров других наблюдателей).ESP RainMakerВместе с этой новой платой Espressif продвигает платформу ESP RainMaker. Это некая среда, которая позволяет быстро создавать концепты и прототипы для IoT устройств.На ESP32-C3-DevKitM-1 плате уже была прошивка ESP RainMaker, с которой можно получить общее представление об этом платформе.Идея примерно такова:На плате настроен обычный бинарный переключатель. При подключении платы через USB консоль мы получаем QR код, который надо отсканировать в приложении ESP RainMaker (доступно для Android и iOS) для первоначальной конфигурации настроек WiFi и добавлении этого устройства в приложение.После этого можно управлять встроенным RGB светодиодом на плате через Espressif облако, которое находится на Amazon AWS.ESP RainMaker SDK позволяет создавать разнообразные устройства, не только бинарный переключатель как в примере. Это может быть датчик измерения температуры или влажности, LCD экран, несколько выключателей сразу или много разных устройств вместе сразу. В последнем случае одна плата будет показана как несколько устройств в приложении.Для того, что бы поиграться с ESP RainMaker не обязательно ждать когда можно купить ESP32-C3. Сама платформа замечательно работает на ESP32 и ESP32-S2. Для сборки прошивки достаточно иметь настроенный ESP-IDF:
git clone --recursive https://github.com/espressif/esp-rainmaker.git
cd esp-rainmaker/examples/switch
# По-умолчанию настроено для ESP32, но если надо собрать прошивку для ESP32-S2
idf.py set-target esp32s2
# Или для ESP32-C3
idf.py set-target esp32c3
# Сборка, прошивка, USB консоль
idf.py build flash monitor
В консоле появится QR код и дальше уже всё в приложении.ВыводыБольшее количество микроконтроллеров для фанатов DIY всегда позитивно, так как при большем выборе можно подобрать более подходящий МК и плату в зависимости от того, что более важно в новом проекте.Всегда будут востребованы микроконтроллеры с большим количеством периферии, так и мелкие с хорошим соотношением потребления к производительности, но имеют достаточно памяти для разных свистелок и хотелок.Отдельное спасибо Espressif за то, что сделали WiFi доступным для встраиваемых устройств 7 лет назад. А там и другие производители подтягиваются. Мы только в плюсе.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_programmirovanie_mikrokontrollerov (Программирование микроконтроллеров), #_razrabotka_dlja_interneta_veschej (Разработка для интернета вещей), #_razrabotka_pod_arduino (Разработка под Arduino), #_kompjuternoe_zhelezo (Компьютерное железо), #_diy_ili_sdelaj_sam (DIY или Сделай сам), #_esp32, #_esp32c3, #_espressif, #_espidf, #_esp8266, #_iot, #_internet_of_things, #_arduino, #_freertos, #_esp32s2, #_programmirovanie_mikrokontrollerov (
Программирование микроконтроллеров
)
, #_razrabotka_dlja_interneta_veschej (
Разработка для интернета вещей
)
, #_razrabotka_pod_arduino (
Разработка под Arduino
)
, #_kompjuternoe_zhelezo (
Компьютерное железо
)
, #_diy_ili_sdelaj_sam (
DIY или Сделай сам
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 17-Май 02:33
Часовой пояс: UTC + 5