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 минута
17 мая 2022
551 читали