LP-ядро (LP CPU)
Чтобы устройство на батарейке могло опрашивать датчики, не просыпаясь целиком, в новых ESP32 есть второй, маленький процессор — LP-ядро. Он работает в глубоком сне, когда основное ядро выключено, и будит его только когда нужно.
Обновлено Редакция GAW
LP-ядро (LP CPU, low-power CPU) — второй, малопотребляющий процессор в чипах ESP32-C5 и ESP32-C6. В отличие от основного (HP) ядра, оно остаётся включённым в глубоком сне и может работать само, пока основное ядро и большая часть чипа выключены. По даташиту ESP32-C6 именно LP-ядро позволяет чипу работать в глубоком сне, когда большинство доменов питания выключено.
| Чип | Основное ядро | LP-ядро | LP-память |
|---|---|---|---|
| ESP32-C6 | RISC-V до 160 МГц | RV32IMAC до 20 МГц | 16 КБ LP SRAM |
| ESP32-C5 | RISC-V до 240 МГц | RV32IMAC до 48 МГц | LP-память |
Что умеет. LP-ядро работает с выводами LP — у ESP32-C6 это GPIO0–7, к которым подключены ещё LP UART и LP I²C, — с LP-периферией и таймерами RTC. Оно может прервать и разбудить основное ядро. Например, LP-ядро может опрашивать датчик и будить основное ядро только при выходе показаний за порог.
Запуск. По даташиту ESP32-C5 LP-ядро запускает основной процессор, собственный таймер или сигнал на выводе LP. Программа хранится в LP-памяти, которая сохраняется во сне.
Предшественник. У классического ESP32, ESP32-S2 и S3 ту же задачу решает ULP-сопроцессор. Режимы сна и способы пробуждения — в статье «Глубокий сон ESP32» и в термине «Спящий режим».
Частые вопросы
Что такое LP-ядро в ESP32-C6?
Второй процессор RISC-V с низким потреблением. Основное ядро ESP32-C6 работает до 160 МГц, а LP-ядро — до 20 МГц, зато оно остаётся включённым в глубоком сне, когда основное выключено. Оно может опрашивать датчики через выводы LP и будить основное ядро, когда есть что обработать.
Чем LP-ядро отличается от ULP-сопроцессора?
Назначение похожее — работа во сне вместо основного процессора. У классического ESP32, S2 и S3 для этого есть ULP-сопроцессор, а в ESP32-C5 и C6 — LP-ядро: полноценный процессор RISC-V с набором команд RV32IMAC, своей памятью LP SRAM и доступом ко всей периферии.
Где хранится программа LP-ядра?
В LP-памяти, которая не выключается в глубоком сне: у ESP32-C6 это 16 КБ LP SRAM. По даташиту ESP32-C5 программа LP-ядра работает с выводами LP, LP-периферией и таймерами RTC, а запустить ядро может основной процессор, собственный таймер или сигнал на выводе LP.
Источники
- Espressif. ESP32-C6 Series Datasheet v1.5 — разд. 4.1.1.3 — LP CPU: 32-битный RISC-V RV32IMAC, двухстадийный конвейер до 20 МГц, остаётся включённым в глубоком сне при выключенном HP CPU, может разбудить HP CPU и прервать его, доступ к памяти HP и LP и ко всей периферии, отладка по JTAG/USB; разд. «Особенности» — LP SRAM 16 КБ; разд. 2.3.2 — выводы LP_GPIO0–7 подключены к LP CPU; разд. 4.1.3.7 — благодаря LP CPU чип работает в глубоком сне с выключенными доменами питания
- Espressif. ESP32-C5 Series Datasheet v1.5 — разд. 4.1.1.3 — LP CPU: RV32IMAC до 48 МГц, упрощённая малопотребляющая замена HP CPU в режимах сна, может дополнять HP CPU в рабочем режиме; LP CPU и LP-память остаются включёнными в глубоком сне, программа для LP CPU хранится в LP-памяти и работает с LP IO, LP-периферией и таймерами RTC; запуск — процессором, своим таймером или по LP IO
Нашли ошибку?
Смотрите также
- ULP-сопроцессорМаломощный сопроцессор ESP32 для работы в глубоком сне
- ESP32-C6: выводы и GPIO30 или 22 GPIO: функции, свободные выводы, флеш-память, strapping, USB, JTAG, токи
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- Режимы снаSleep mode: Idle, Power-down, пробуждение и ток