Найти тему
1376 подписчиков

Сейчас ковыряюсь с ESP32-S2 в виде готового модуля ESP-12H (видео о нем есть на канале), а конкретно с ULP (Ultra Low Power) ядрами (там их два, правда использовать можно только одно на выбор: "старое" чуть обновленное FSM (конечный автомат) и новое RISC-V). Если вы не знали, ULP ядро создано не только для работы в глубоком сне основного ядра МК, оно может работать постоянно параллельно с основным и обмениваться с ним данными, расположенными в RTC памяти.


Конечно же использовать новое RISC-V ULP ядро в разы проще! Писать код для него можно на C (а не только на ассемблере), есть 32 32-х битных регистра, поддерживается целочисленное умножение/деление, доступ к переменным существенно проще на уровне исходного кода. Только пока нет поддержки для Arduino, но это не особо большая проблема, если использовать ESP-IDF и Arduino as component, например.

FSM ULP ядро лишь чуть обновилось со времен ESP32. Все те же 4 16-ти битных регистра, ограниченный ассемблер или макросы для C. Правда с помощью макросов это ядро можно использовать для Arduino, но на данный момент поддержка Arduino собрана без резервирования памяти под ULP программу, да и FSM ULP ESP32-S2 поддерживается только в девелоперской версии ESP-IDF, релиз 4.4.1 этим не озаботился.

А насколько же ULP эти ядра? Можно ли их использовать постоянно, пока основное ядро МК будет в глубоком сне? Не по ULP таймеру, а именно в вечном цикле?

Около 300 мкА для RISC-V и 180 мкА для FSM. Т.е. не очень-то и ULP...
1 минута
551 читали