Регистры RTC_CNTL ESP32-C3
Регистры RTC_CNTL ESP32-C3: переход в лёгкий и глубокий сон, источники пробуждения и причины отказа от сна, 48-битный RTC-таймер, сторожевые таймеры RWDT и SWD, детектор просадки питания, причина последнего сброса и восемь регистров, которые сохраняются в глубоком сне.
Содержание
- Пример на C
- Регистры блока
- RTC_CNTL_OPTIONS0_REG
- RTC_CNTL_SLP_TIMER0_REG
- RTC_CNTL_SLP_TIMER1_REG
- RTC_CNTL_TIME_UPDATE_REG
- RTC_CNTL_TIME_LOWn_REG
- RTC_CNTL_TIME_HIGHn_REG
- RTC_CNTL_STATE0_REG
- RTC_CNTL_TIMER1_REG
- RTC_CNTL_TIMER2_REG
- RTC_CNTL_TIMER5_REG
- RTC_CNTL_ANA_CONF_REG
- RTC_CNTL_RESET_STATE_REG
- RTC_CNTL_WAKEUP_STATE_REG
- RTC_CNTL_INT_ENA_REG
- RTC_CNTL_INT_RAW_REG
- RTC_CNTL_INT_ST_REG
- RTC_CNTL_INT_CLR_REG
- RTC_CNTL_STOREn_REG
- RTC_CNTL_EXT_XTL_CONF_REG
- RTC_CNTL_EXT_WAKEUP_CONF_REG
- RTC_CNTL_SLP_REJECT_CONF_REG
- RTC_CNTL_CLK_CONF_REG
- RTC_CNTL_SLOW_CLK_CONF_REG
- RTC_CNTL_REG
- RTC_CNTL_PWC_REG
- RTC_CNTL_DIG_PWC_REG
- RTC_CNTL_DIG_ISO_REG
- RTC_CNTL_WDTCONFIG0_REG
- RTC_CNTL_WDTCONFIG1_REG
- RTC_CNTL_WDTCONFIG2_REG
- RTC_CNTL_WDTCONFIG3_REG
- RTC_CNTL_WDTCONFIG4_REG
- RTC_CNTL_WDTFEED_REG
- RTC_CNTL_WDTWPROTECT_REG
- RTC_CNTL_SWD_CONF_REG
- RTC_CNTL_SWD_WPROTECT_REG
- RTC_CNTL_SW_CPU_STALL_REG
- RTC_CNTL_LOW_POWER_ST_REG
- RTC_CNTL_PAD_HOLD_REG
- RTC_CNTL_DIG_PAD_HOLD_REG
- RTC_CNTL_BROWN_OUT_REG
- RTC_CNTL_XTAL32K_CLK_FACTOR_REG
- RTC_CNTL_XTAL32K_CONF_REG
- RTC_CNTL_USB_CONF_REG
- RTC_CNTL_SLP_REJECT_CAUSE_REG
- RTC_CNTL_OPTION1_REG
- RTC_CNTL_SLP_WAKEUP_CAUSE_REG
- RTC_CNTL_INT_ENA_W1TS_REG
- RTC_CNTL_INT_ENA_W1TC_REG
- RTC_CNTL_RETENTION_CTRL_REG
- RTC_CNTL_GPIO_WAKEUP_REG
- RTC_CNTL_SENSOR_CTRL_REG
Блок RTC_CNTL по адресу 0x6000 8000 работает от домена RTC и не выключается в глубоком сне. Он переводит чип в сон (бит SLEEP_EN регистра RTC_CNTL_STATE0_REG), будит его по таймеру, выводам или другим источникам из WAKEUP_ENA и сообщает причину пробуждения в RTC_CNTL_SLP_WAKEUP_CAUSE_REG.
Здесь же два сторожа: RTC-сторож RWDT с четырьмя стадиями, который сбрасывает чип целиком, включая RTC, и супер-сторож SWD — последняя защита, срабатывающая без настройки. Оба защищены ключами: RWDT — 0x50D83AA1 в RTC_CNTL_WDTWPROTECT_REG, SWD — 0x8F1D312A в RTC_CNTL_SWD_WPROTECT_REG.
Причина последнего сброса ядра лежит в поле RESET_CAUSE_PROCPU регистра RTC_CNTL_RESET_STATE_REG: 1 — сброс чипа (включение питания или детектор просадки), 3 — программный сброс системы, 5 — выход из глубокого сна, 7 и 8 — сторожа групп таймеров, 9 и 16 — RTC-сторож, 15 — просадка питания (таблица 6.1-1 TRM).
| Экземпляр | Базовый адрес |
|---|---|
| RTC_CNTL | 0x6000 8000 |
Пример на C
Причина сброса, калибровка из STORE1 и отключение RTC-сторожа (soc/rtc_cntl_reg.h). Макросы доступа REG_WRITE, REG_READ, REG_SET_BIT, REG_CLR_BIT, REG_GET_BIT, REG_SET_FIELD и REG_GET_FIELD объявлены в soc/soc.h ESP-IDF; поле задаётся именем макроса без суффикса, маска и сдвиг берутся из его вариантов _V и _S.
#include "soc/rtc_cntl_reg.h"
uint32_t cause = REG_GET_FIELD(RTC_CNTL_RESET_STATE_REG, RTC_CNTL_RESET_CAUSE_PROCPU);
// 1 — сброс чипа (питание или просадка), 5 — выход из глубокого сна, 15 — просадка
uint32_t cal = REG_READ(RTC_CNTL_STORE1_REG); // калибровка RTC_SLOW_CLK, её пишет ESP-IDF
REG_WRITE(RTC_CNTL_WDTWPROTECT_REG, 0x50D83AA1); // снять защиту RWDT
REG_CLR_BIT(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_EN);
REG_WRITE(RTC_CNTL_WDTWPROTECT_REG, 0); // вернуть защитуРегистры блока
| Регистр (ESP-IDF) | Смещение | Назначение | После сброса |
|---|---|---|---|
| RTC_CNTL_OPTIONS0_REG | 0x0000 | Программный сброс, остановка ядра, питание генераторов | 0x0000 2000 |
| RTC_CNTL_SLP_TIMER0_REG | 0x0004 | Будильник RTC-таймера, младшие 32 бита | 0x0000 0000 |
| RTC_CNTL_SLP_TIMER1_REG | 0x0008 | Будильник RTC-таймера, старшие 16 бит и включение | 0x0000 0000 |
| RTC_CNTL_TIME_UPDATE_REG | 0x000C | Защёлкнуть значение RTC-таймера | 0x0000 0000 |
| RTC_CNTL_TIME_LOWn_REG | 0x0010 + n · 0x00CC | Защёлкнутое значение RTC-таймера n, младшие 32 бита | 0x0000 0000 |
| RTC_CNTL_TIME_HIGHn_REG | 0x0014 + n · 0x00CC | Защёлкнутое значение RTC-таймера n, старшие 16 бит | 0x0000 0000 |
| RTC_CNTL_STATE0_REG | 0x0018 | Вход в сон и программное прерывание | 0x0000 0000 |
| RTC_CNTL_TIMER1_REG | 0x001C | Ожидание стабилизации генераторов | 0x2814 0403 |
| RTC_CNTL_TIMER2_REG | 0x0020 | Минимальное время выключения RC-генератора | 0x0100 0000 |
| RTC_CNTL_TIMER5_REG | 0x002C | Минимальная длительность сна | 0x0000 8000 |
| RTC_CNTL_ANA_CONF_REG | 0x0034 | Питание аналоговых узлов | 0x0044 0000 |
| RTC_CNTL_RESET_STATE_REG | 0x0038 | Причина сброса и флаги JTAG | 0x0000 2000 |
| RTC_CNTL_WAKEUP_STATE_REG | 0x003C | Источники пробуждения | 0x0006 0000 |
| RTC_CNTL_INT_ENA_REG | 0x0040 | Разрешение прерываний | 0x0000 0000 |
| RTC_CNTL_INT_RAW_REG | 0x0044 | Необработанные флаги прерываний | 0x0000 0000 |
| RTC_CNTL_INT_ST_REG | 0x0048 | Флаги прерываний после маски разрешения | 0x0000 0000 |
| RTC_CNTL_INT_CLR_REG | 0x004C | Сброс флагов прерываний записью 1 | 0x0000 0000 |
| RTC_CNTL_STOREn_REG | по выводу | Регистр n, сохраняемый в глубоком сне | 0x0000 0000 |
| RTC_CNTL_EXT_XTL_CONF_REG | 0x0060 | Кварц 32 кГц и его сторож | 0x0006 6C80 |
| RTC_CNTL_EXT_WAKEUP_CONF_REG | 0x0064 | Фильтр пробуждения по выводам | 0x0000 0000 |
| RTC_CNTL_SLP_REJECT_CONF_REG | 0x0068 | Причины отказа от сна | 0x0000 0000 |
| RTC_CNTL_CLK_CONF_REG | 0x0070 | Источники и делители медленных тактов | 0x1158 3218 |
| RTC_CNTL_SLOW_CLK_CONF_REG | 0x0074 | Делитель медленного такта | 0x0040 0000 |
| RTC_CNTL_REG | 0x0080 | Стабилизатор и калибровка | 0x8000 0000 |
| RTC_CNTL_PWC_REG | 0x0084 | Удержание выводов | 0x0000 0000 |
| RTC_CNTL_DIG_PWC_REG | 0x0088 | Выключение цифровых доменов во сне | 0x0055 4010 |
| RTC_CNTL_DIG_ISO_REG | 0x008C | Изоляция цифровых доменов и удержание выводов | 0xAA00 5000 |
| RTC_CNTL_WDTCONFIG0_REG | 0x0090 | RTC-сторож: включение и действия стадий | 0x0001 3200 |
| RTC_CNTL_WDTCONFIG1_REG | 0x0094 | RTC-сторож: длительность стадии 0 | 0x0003 0D40 |
| RTC_CNTL_WDTCONFIG2_REG | 0x0098 | RTC-сторож: длительность стадии 1 | 0x0001 3880 |
| RTC_CNTL_WDTCONFIG3_REG | 0x009C | RTC-сторож: длительность стадии 2 | 0x0000 0FFF |
| RTC_CNTL_WDTCONFIG4_REG | 0x00A0 | RTC-сторож: длительность стадии 3 | 0x0000 0FFF |
| RTC_CNTL_WDTFEED_REG | 0x00A4 | RTC-сторож: кормление | 0x0000 0000 |
| RTC_CNTL_WDTWPROTECT_REG | 0x00A8 | RTC-сторож: защита записи | 0x0000 0000 |
| RTC_CNTL_SWD_CONF_REG | 0x00AC | Супер-сторож: кормление и выключение | 0x04B0 0000 |
| RTC_CNTL_SWD_WPROTECT_REG | 0x00B0 | Супер-сторож: защита записи | 0x0000 0000 |
| RTC_CNTL_SW_CPU_STALL_REG | 0x00B4 | Программная остановка ядра | 0x0000 0000 |
| RTC_CNTL_LOW_POWER_ST_REG | 0x00C8 | Состояние автомата питания | 0x0000 0000 |
| RTC_CNTL_PAD_HOLD_REG | 0x00D0 | Удержание состояния выводов GPIO0…5 | 0x0000 0000 |
| RTC_CNTL_DIG_PAD_HOLD_REG | 0x00D4 | Удержание цифровых выводов | 0x0000 0000 |
| RTC_CNTL_BROWN_OUT_REG | 0x00D8 | Детектор просадки питания | 0x43FF 0010 |
| RTC_CNTL_XTAL32K_CLK_FACTOR_REG | 0x00E4 | Множитель резервного такта при отказе кварца 32 кГц | 0x0000 0000 |
| RTC_CNTL_XTAL32K_CONF_REG | 0x00E8 | Сторож кварца 32 кГц: пороги и ожидания | 0x0FF0 0000 |
| RTC_CNTL_USB_CONF_REG | 0x00EC | Сброс IO MUX выводов USB | 0x0000 0000 |
| RTC_CNTL_SLP_REJECT_CAUSE_REG | 0x00F0 | Причина отказа от сна | 0x0000 0000 |
| RTC_CNTL_OPTION1_REG | 0x00F4 | Принудительная загрузка в режим прошивки | 0x0000 0000 |
| RTC_CNTL_SLP_WAKEUP_CAUSE_REG | 0x00F8 | Причина последнего пробуждения | 0x0000 0000 |
| RTC_CNTL_INT_ENA_W1TS_REG | 0x0100 | Разрешение прерываний: запись 1 включает бит | 0x0000 0000 |
| RTC_CNTL_INT_ENA_W1TC_REG | 0x0104 | Разрешение прерываний: запись 1 выключает бит | 0x0000 0000 |
| RTC_CNTL_RETENTION_CTRL_REG | 0x0108 | Сохранение состояния ядра во сне | 0x0000 0000 |
| RTC_CNTL_GPIO_WAKEUP_REG | 0x0110 | Пробуждение по выводам GPIO0…5 | 0x0000 0000 |
| RTC_CNTL_SENSOR_CTRL_REG | 0x011C | Питание SAR АЦП | 0x0000 0000 |
Доступ — обозначения TRM: R/W — чтение и запись, RO — только чтение, WO — только запись, WT — запись 1 запускает действие, SS и SC — бит ставится и сбрасывается аппаратно, WTC — сбрасывается записью 1.
RTC_CNTL_OPTIONS0_REG — программный сброс, остановка ядра, питание генераторов
Смещение 0x0000, адрес 0x6000 8000, после сброса 0x0000 2000. TRM: регистр 9.1.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SW_SYS_RST | DG_WRAP_FORCE_NORST | DG_WRAP_FORCE_RST | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | XTL_FORCE_PU | XTL_FORCE_PD | BBPLL_FORCE_PU | BBPLL_FORCE_PD | BBPLL_I2C_FORCE_PU | BBPLL_I2C_FORCE_PD | BB_I2C_FORCE_PU | BB_I2C_FORCE_PD | SW_PROCPU_RST | — | SW_STALL_PROCPU_C0 | — | |||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SW_SYS_RST | 31 | WO | 0 | Запись 1 сбрасывает систему, включая цифровое ядро |
| DG_WRAP_FORCE_NORST | 30 | R/W | 0 | |
| DG_WRAP_FORCE_RST | 29 | R/W | 0 | |
| XTL_FORCE_PU | 13 | R/W | 1 | |
| XTL_FORCE_PD | 12 | R/W | 0 | |
| BBPLL_FORCE_PU | 11 | R/W | 0 | |
| BBPLL_FORCE_PD | 10 | R/W | 0 | |
| BBPLL_I2C_FORCE_PU | 9 | R/W | 0 | |
| BBPLL_I2C_FORCE_PD | 8 | R/W | 0 | |
| BB_I2C_FORCE_PU | 7 | R/W | 0 | |
| BB_I2C_FORCE_PD | 6 | R/W | 0 | |
| SW_PROCPU_RST | 5 | WO | 0 | Запись 1 сбрасывает ядро |
| SW_STALL_PROCPU_C0 | 3:2 | R/W | 0x0 | Вместе с SW_STALL_PROCPU_C1 = 0x21 и 0x2 останавливает ядро |
RTC_CNTL_SLP_TIMER0_REG — будильник RTC-таймера, младшие 32 бита
Смещение 0x0004, адрес 0x6000 8004, после сброса 0x0000 0000. TRM: регистр 9.2.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SLP_VAL_LO | 31:0 | R/W | 0x0000 0000 | Будильник RTC-таймера, младшие 32 бита |
RTC_CNTL_SLP_TIMER1_REG — будильник RTC-таймера, старшие 16 бит и включение
Смещение 0x0008, адрес 0x6000 8008, после сброса 0x0000 0000. TRM: регистр 9.3.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MAIN_TIMER_ALARM_EN | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SLP_VAL_HI | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| MAIN_TIMER_ALARM_EN | 16 | WO | 0 | Включить будильник RTC-таймера |
| SLP_VAL_HI | 15:0 | R/W | 0x0000 | Будильник RTC-таймера, старшие 16 бит |
RTC_CNTL_TIME_UPDATE_REG — защёлкнуть значение RTC-таймера
Смещение 0x000C, адрес 0x6000 800C, после сброса 0x0000 0000. TRM: регистр 9.4.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| TIME_UPDATE | — | TIMER_SYS_RST | TIMER_XTL_OFF | TIMER_SYS_STALL | — | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| TIME_UPDATE | 31 | WO | 0 | Запись 1 защёлкивает RTC-таймер в TIME_LOW0 и TIME_HIGH0 |
| TIMER_SYS_RST | 29 | R/W | 0 | |
| TIMER_XTL_OFF | 28 | R/W | 0 | |
| TIMER_SYS_STALL | 27 | R/W | 0 |
RTC_CNTL_TIME_LOWn_REG — защёлкнутое значение RTC-таймера n, младшие 32 бита
2 копии, n = 0, 1: смещение 0x0010 + n · 0x00CC, после сброса 0x0000 0000. TRM: регистр 9.5.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| TIMER_VALUEn_LOW | 31:0 | RO | 0x0000 0000 |
RTC_CNTL_TIME_HIGHn_REG — защёлкнутое значение RTC-таймера n, старшие 16 бит
2 копии, n = 0, 1: смещение 0x0014 + n · 0x00CC, после сброса 0x0000 0000. TRM: регистр 9.6.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| TIMER_VALUEn_HIGH | 15:0 | RO | 0x0000 |
RTC_CNTL_STATE0_REG — вход в сон и программное прерывание
Смещение 0x0018, адрес 0x6000 8018, после сброса 0x0000 0000. TRM: регистр 9.7.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SLEEP_EN | SLP_REJECT | SLP_WAKEUP | — | APB2RTC_BRIDGE_SEL | — | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SLP_REJECT_CAUSE_CLR | SW_CPU_INT | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SLEEP_EN | 31 | R/W | 0 | Запись 1 переводит чип в сон |
| SLP_REJECT | 30 | R/W | 0 | Сон отклонён |
| SLP_WAKEUP | 29 | R/W | 0 | Чип проснулся |
| APB2RTC_BRIDGE_SEL | 22 | R/W | 0 | |
| SLP_REJECT_CAUSE_CLR | 1 | WO | 0 | |
| SW_CPU_INT | 0 | WO | 0 | Запись 1 вызывает программное прерывание RTC |
RTC_CNTL_TIMER1_REG — ожидание стабилизации генераторов
Смещение 0x001C, адрес 0x6000 801C, после сброса 0x2814 0403. TRM: регистр 9.8.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PLL_BUF_WAIT | XTL_BUF_WAIT | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| XTL_BUF_WAIT | FOSC_WAIT | CPU_STALL_WAIT | CPU_STALL_EN | ||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PLL_BUF_WAIT | 31:24 | R/W | 0x28 |
| XTL_BUF_WAIT | 23:14 | R/W | 0x050 |
| FOSC_WAIT | 13:6 | R/W | 0x10 |
| CPU_STALL_WAIT | 5:1 | R/W | 0x01 |
| CPU_STALL_EN | 0 | R/W | 1 |
RTC_CNTL_TIMER2_REG — минимальное время выключения RC-генератора
Смещение 0x0020, адрес 0x6000 8020, после сброса 0x0100 0000. TRM: регистр 9.9.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| MIN_TIME_FOSC_OFF | 31:24 | R/W | 0x01 |
RTC_CNTL_TIMER5_REG — минимальная длительность сна
Смещение 0x002C, адрес 0x6000 802C, после сброса 0x0000 8000. TRM: регистр 9.10.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| MIN_SLP_VAL | 15:8 | R/W | 0x80 |
RTC_CNTL_ANA_CONF_REG — питание аналоговых узлов
Смещение 0x0034, адрес 0x6000 8034, после сброса 0x0044 0000. TRM: регистр 9.11.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| PLL_I2C_PU | CKGEN_I2C_PU | — | RFRX_PBUS_PU | TXRF_I2C_PU | — | SAR_I2C_PU | — | GLITCH_RST_EN | RESET_POR_FORCE_PU | RESET_POR_FORCE_PD | — | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PLL_I2C_PU | 31 | R/W | 0 |
| CKGEN_I2C_PU | 30 | R/W | 0 |
| RFRX_PBUS_PU | 28 | R/W | 0 |
| TXRF_I2C_PU | 27 | R/W | 0 |
| SAR_I2C_PU | 22 | R/W | 1 |
| GLITCH_RST_EN | 20 | R/W | 0 |
| RESET_POR_FORCE_PU | 19 | R/W | 0 |
| RESET_POR_FORCE_PD | 18 | R/W | 1 |
RTC_CNTL_RESET_STATE_REG — причина сброса и флаги JTAG
Смещение 0x0038, адрес 0x6000 8038, после сброса 0x0000 2000. TRM: регистр 9.12.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | DRESET_MASK_PROCPU | — | JTAG_RESET_FLAG_CLR_PROCPU | — | JTAG_RESET_FLAG_PROCPU | OCD_HALT_ON_RESET_PROCPU | — | ALL_RESET_FLAG_CLR_PROCPU | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | ALL_RESET_FLAG_PROCPU | STAT_VECTOR_SEL_PROCPU | — | RESET_CAUSE_PROCPU | |||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| DRESET_MASK_PROCPU | 25 | R/W | 0 | |
| JTAG_RESET_FLAG_CLR_PROCPU | 22 | WO | 0 | |
| JTAG_RESET_FLAG_PROCPU | 20 | RO | 0 | |
| OCD_HALT_ON_RESET_PROCPU | 19 | R/W | 0 | |
| ALL_RESET_FLAG_CLR_PROCPU | 16 | WO | 0 | |
| ALL_RESET_FLAG_PROCPU | 14 | RO | 0 | Был сброс |
| STAT_VECTOR_SEL_PROCPU | 13 | R/W | 1 | |
| RESET_CAUSE_PROCPU | 5:0 | RO | 0x00 | Причина последнего сброса ядра: 1 — сброс чипа (питание или просадка), 3 — программный сброс, 5 — глубокий сон, 9 — RTC-сторож, 15 — просадка |
RTC_CNTL_WAKEUP_STATE_REG — источники пробуждения
Смещение 0x003C, адрес 0x6000 803C, после сброса 0x0006 0000. TRM: регистр 9.13.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WAKEUP_ENA | 31:15 | R/W | 0x0000C | Маска источников пробуждения, бит на источник |
RTC_CNTL_INT_ENA_REG — разрешение прерываний
Смещение 0x0040, адрес 0x6000 8040, после сброса 0x0000 0000. TRM: регистр 9.14.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BBPLL_CAL_INT_ENA | GLITCH_DET_INT_ENA | — | XTAL32K_DEAD_INT_ENA | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWD_INT_ENA | — | MAIN_TIMER_INT_ENA | BROWN_OUT_INT_ENA | — | WDT_INT_ENA | — | SLP_REJECT_INT_ENA | SLP_WAKEUP_INT_ENA | |||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BBPLL_CAL_INT_ENA | 20 | R/W | 0 | Закончена калибровка BBPLL |
| GLITCH_DET_INT_ENA | 19 | R/W | 0 | Детектор помех заметил выброс на питании или тактах |
| XTAL32K_DEAD_INT_ENA | 16 | R/W | 0 | Кварц 32 кГц перестал генерировать |
| SWD_INT_ENA | 15 | R/W | 0 | Супер-сторож (SWD) просит его покормить |
| MAIN_TIMER_INT_ENA | 10 | R/W | 0 | Сработал будильник RTC-таймера |
| BROWN_OUT_INT_ENA | 9 | R/W | 0 | Детектор просадки питания заметил снижение напряжения |
| WDT_INT_ENA | 3 | R/W | 0 | Сработал RTC-сторож (RWDT) в режиме прерывания |
| SLP_REJECT_INT_ENA | 1 | R/W | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_ENA | 0 | R/W | 0 | Чип проснулся |
RTC_CNTL_INT_RAW_REG — необработанные флаги прерываний
Смещение 0x0044, адрес 0x6000 8044, после сброса 0x0000 0000. TRM: регистр 9.15.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BBPLL_CAL_INT_RAW | GLITCH_DET_INT_RAW | — | XTAL32K_DEAD_INT_RAW | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWD_INT_RAW | — | MAIN_TIMER_INT_RAW | BROWN_OUT_INT_RAW | — | WDT_INT_RAW | — | SLP_REJECT_INT_RAW | SLP_WAKEUP_INT_RAW | |||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BBPLL_CAL_INT_RAW | 20 | RO | 0 | Закончена калибровка BBPLL |
| GLITCH_DET_INT_RAW | 19 | RO | 0 | Детектор помех заметил выброс на питании или тактах |
| XTAL32K_DEAD_INT_RAW | 16 | RO | 0 | Кварц 32 кГц перестал генерировать |
| SWD_INT_RAW | 15 | RO | 0 | Супер-сторож (SWD) просит его покормить |
| MAIN_TIMER_INT_RAW | 10 | RO | 0 | Сработал будильник RTC-таймера |
| BROWN_OUT_INT_RAW | 9 | RO | 0 | Детектор просадки питания заметил снижение напряжения |
| WDT_INT_RAW | 3 | RO | 0 | Сработал RTC-сторож (RWDT) в режиме прерывания |
| SLP_REJECT_INT_RAW | 1 | RO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_RAW | 0 | RO | 0 | Чип проснулся |
RTC_CNTL_INT_ST_REG — флаги прерываний после маски разрешения
Смещение 0x0048, адрес 0x6000 8048, после сброса 0x0000 0000. TRM: регистр 9.16.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BBPLL_CAL_INT_ST | GLITCH_DET_INT_ST | — | XTAL32K_DEAD_INT_ST | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWD_INT_ST | — | MAIN_TIMER_INT_ST | BROWN_OUT_INT_ST | — | WDT_INT_ST | — | SLP_REJECT_INT_ST | SLP_WAKEUP_INT_ST | |||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BBPLL_CAL_INT_ST | 20 | RO | 0 | Закончена калибровка BBPLL |
| GLITCH_DET_INT_ST | 19 | RO | 0 | Детектор помех заметил выброс на питании или тактах |
| XTAL32K_DEAD_INT_ST | 16 | RO | 0 | Кварц 32 кГц перестал генерировать |
| SWD_INT_ST | 15 | RO | 0 | Супер-сторож (SWD) просит его покормить |
| MAIN_TIMER_INT_ST | 10 | RO | 0 | Сработал будильник RTC-таймера |
| BROWN_OUT_INT_ST | 9 | RO | 0 | Детектор просадки питания заметил снижение напряжения |
| WDT_INT_ST | 3 | RO | 0 | Сработал RTC-сторож (RWDT) в режиме прерывания |
| SLP_REJECT_INT_ST | 1 | RO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_ST | 0 | RO | 0 | Чип проснулся |
RTC_CNTL_INT_CLR_REG — сброс флагов прерываний записью 1
Смещение 0x004C, адрес 0x6000 804C, после сброса 0x0000 0000. TRM: регистр 9.17.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BBPLL_CAL_INT_CLR | GLITCH_DET_INT_CLR | — | XTAL32K_DEAD_INT_CLR | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWD_INT_CLR | — | MAIN_TIMER_INT_CLR | BROWN_OUT_INT_CLR | — | WDT_INT_CLR | — | SLP_REJECT_INT_CLR | SLP_WAKEUP_INT_CLR | |||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BBPLL_CAL_INT_CLR | 20 | WO | 0 | Закончена калибровка BBPLL |
| GLITCH_DET_INT_CLR | 19 | WO | 0 | Детектор помех заметил выброс на питании или тактах |
| XTAL32K_DEAD_INT_CLR | 16 | WO | 0 | Кварц 32 кГц перестал генерировать |
| SWD_INT_CLR | 15 | WO | 0 | Супер-сторож (SWD) просит его покормить |
| MAIN_TIMER_INT_CLR | 10 | WO | 0 | Сработал будильник RTC-таймера |
| BROWN_OUT_INT_CLR | 9 | WO | 0 | Детектор просадки питания заметил снижение напряжения |
| WDT_INT_CLR | 3 | WO | 0 | Сработал RTC-сторож (RWDT) в режиме прерывания |
| SLP_REJECT_INT_CLR | 1 | WO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_CLR | 0 | WO | 0 | Чип проснулся |
RTC_CNTL_STOREn_REG — регистр n, сохраняемый в глубоком сне
8 копий, n = 0…7: адреса — в таблице, после сброса 0x0000 0000. TRM: регистр 9.18.
| Копия | Смещение | Адрес |
|---|---|---|
| STORE0 | 0x0050 | 0x6000 8050 |
| STORE1 | 0x0054 | 0x6000 8054 |
| STORE2 | 0x0058 | 0x6000 8058 |
| STORE3 | 0x005C | 0x6000 805C |
| STORE4 | 0x00B8 | 0x6000 80B8 |
| STORE5 | 0x00BC | 0x6000 80BC |
| STORE6 | 0x00C0 | 0x6000 80C0 |
| STORE7 | 0x00C4 | 0x6000 80C4 |
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SCRATCHn | 31:0 | R/W | 0x0000 0000 | 32 бита данных, сохраняемых в глубоком сне |
RTC_CNTL_EXT_XTL_CONF_REG — кварц 32 кГц и его сторож
Смещение 0x0060, адрес 0x6000 8060, после сброса 0x0006 6C80. TRM: регистр 9.22.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | XTAL32K_GPIO_SEL | WDT_STATE | DAC_XTAL_32K | XPD_XTAL_32K | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DRES_XTAL_32K | DGM_XTAL_32K | DBUF_XTAL_32K | ENCKINIT_XTAL_32K | XTAL32K_XPD_FORCE | XTAL32K_AUTO_RETURN | XTAL32K_AUTO_RESTART | XTAL32K_AUTO_BACKUP | XTAL32K_EXT_CLK_FO | XTAL32K_WDT_RESET | XTAL32K_WDT_CLK_FO | XTAL32K_WDT_EN | ||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| XTAL32K_GPIO_SEL | 23 | R/W | 0 |
| WDT_STATE | 22:20 | RO | 0x0 |
| DAC_XTAL_32K | 19:17 | R/W | 0x3 |
| XPD_XTAL_32K | 16 | R/W | 0 |
| DRES_XTAL_32K | 15:13 | R/W | 0x3 |
| DGM_XTAL_32K | 12:10 | R/W | 0x3 |
| DBUF_XTAL_32K | 9 | R/W | 0 |
| ENCKINIT_XTAL_32K | 8 | R/W | 0 |
| XTAL32K_XPD_FORCE | 7 | R/W | 1 |
| XTAL32K_AUTO_RETURN | 6 | R/W | 0 |
| XTAL32K_AUTO_RESTART | 5 | R/W | 0 |
| XTAL32K_AUTO_BACKUP | 4 | R/W | 0 |
| XTAL32K_EXT_CLK_FO | 3 | R/W | 0 |
| XTAL32K_WDT_RESET | 2 | R/W | 0 |
| XTAL32K_WDT_CLK_FO | 1 | R/W | 0 |
| XTAL32K_WDT_EN | 0 | R/W | 0 |
RTC_CNTL_EXT_WAKEUP_CONF_REG — фильтр пробуждения по выводам
Смещение 0x0064, адрес 0x6000 8064, после сброса 0x0000 0000. TRM: регистр 9.23.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| GPIO_WAKEUP_FILTER | 31 | R/W | 0 |
RTC_CNTL_SLP_REJECT_CONF_REG — причины отказа от сна
Смещение 0x0068, адрес 0x6000 8068, после сброса 0x0000 0000. TRM: регистр 9.24.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DEEP_SLP_REJECT_EN | LIGHT_SLP_REJECT_EN | SLEEP_REJECT_ENA | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SLEEP_REJECT_ENA | — | ||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DEEP_SLP_REJECT_EN | 31 | R/W | 0 |
| LIGHT_SLP_REJECT_EN | 30 | R/W | 0 |
| SLEEP_REJECT_ENA | 29:12 | R/W | 0x00000 |
RTC_CNTL_CLK_CONF_REG — источники и делители медленных тактов
Смещение 0x0070, адрес 0x6000 8070, после сброса 0x1158 3218. TRM: регистр 9.25.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| ANA_CLK_RTC_SEL | 31:30 | R/W | 0x0 |
| FAST_CLK_RTC_SEL | 29 | R/W | 0 |
| XTAL_GLOBAL_FORCE_NOGATING | 28 | R/W | 1 |
| XTAL_GLOBAL_FORCE_GATING | 27 | R/W | 0 |
| FOSC_FORCE_PU | 26 | R/W | 0 |
| FOSC_FORCE_PD | 25 | R/W | 0 |
| FOSC_DFREQ | 24:17 | R/W | 0xAC |
| FOSC_FORCE_NOGATING | 16 | R/W | 0 |
| XTAL_FORCE_NOGATING | 15 | R/W | 0 |
| FOSC_DIV_SEL | 14:12 | R/W | 0x3 |
| DIG_FOSC_EN | 10 | R/W | 0 |
| DIG_FOSC_D256_EN | 9 | R/W | 1 |
| DIG_XTAL32K_EN | 8 | R/W | 0 |
| ENB_FOSC_DIV | 7 | R/W | 0 |
| ENB_FOSC | 6 | R/W | 0 |
| FOSC_DIV | 5:4 | R/W | 0x1 |
| FOSC_DIV_SEL_VLD | 3 | R/W | 1 |
| EFUSE_CLK_FORCE_NOGATING | 2 | R/W | 0 |
| EFUSE_CLK_FORCE_GATING | 1 | R/W | 0 |
RTC_CNTL_SLOW_CLK_CONF_REG — делитель медленного такта
Смещение 0x0074, адрес 0x6000 8074, после сброса 0x0040 0000. TRM: регистр 9.26.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | ANA_CLK_DIV | ANA_CLK_DIV_VLD | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| ANA_CLK_DIV | 30:23 | R/W | 0x00 |
| ANA_CLK_DIV_VLD | 22 | R/W | 1 |
RTC_CNTL_REG — стабилизатор и калибровка
Смещение 0x0080, адрес 0x6000 8080, после сброса 0x8000 0000. TRM: регистр 9.27.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| REGULATOR_FORCE_PU | REGULATOR_FORCE_PD | — | SCK_DCAP | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SCK_DCAP | — | DIG_REG_CAL_EN | — | ||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| REGULATOR_FORCE_PU | 31 | R/W | 1 |
| REGULATOR_FORCE_PD | 30 | R/W | 0 |
| SCK_DCAP | 21:14 | R/W | 0x00 |
| DIG_REG_CAL_EN | 7 | R/W | 0 |
RTC_CNTL_PWC_REG — удержание выводов
Смещение 0x0084, адрес 0x6000 8084, после сброса 0x0000 0000. TRM: регистр 9.28.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PAD_FORCE_HOLD | 21 | R/W | 0 |
RTC_CNTL_DIG_PWC_REG — выключение цифровых доменов во сне
Смещение 0x0088, адрес 0x6000 8088, после сброса 0x0055 4010. TRM: регистр 9.29.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DG_WRAP_PD_EN | 31 | R/W | 0 |
| WIFI_PD_EN | 30 | R/W | 0 |
| CPU_TOP_PD_EN | 29 | R/W | 0 |
| DG_PERI_PD_EN | 28 | R/W | 0 |
| CPU_TOP_FORCE_PU | 22 | R/W | 1 |
| CPU_TOP_FORCE_PD | 21 | R/W | 0 |
| DG_WRAP_FORCE_PU | 20 | R/W | 1 |
| DG_WRAP_FORCE_PD | 19 | R/W | 0 |
| WIFI_FORCE_PU | 18 | R/W | 1 |
| WIFI_FORCE_PD | 17 | R/W | 0 |
| FASTMEM_FORCE_LPU | 16 | R/W | 1 |
| FASTMEM_FORCE_LPD | 15 | R/W | 0 |
| DG_PERI_FORCE_PU | 14 | R/W | 1 |
| DG_PERI_FORCE_PD | 13 | R/W | 0 |
| LSLP_MEM_FORCE_PU | 4 | R/W | 1 |
| LSLP_MEM_FORCE_PD | 3 | R/W | 0 |
| VDD_SPI_PWR_FORCE | 2 | R/W | 0 |
| VDD_SPI_PWR_DRV | 1:0 | R/W | 0x0 |
RTC_CNTL_DIG_ISO_REG — изоляция цифровых доменов и удержание выводов
Смещение 0x008C, адрес 0x6000 808C, после сброса 0xAA00 5000. TRM: регистр 9.30.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DG_WRAP_FORCE_NOISO | DG_WRAP_FORCE_ISO | WIFI_FORCE_NOISO | WIFI_FORCE_ISO | CPU_TOP_FORCE_NOISO | CPU_TOP_FORCE_ISO | DG_PERI_FORCE_NOISO | DG_PERI_FORCE_ISO | — | |||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DG_PAD_FORCE_HOLD | DG_PAD_FORCE_UNHOLD | DG_PAD_FORCE_ISO | DG_PAD_FORCE_NOISO | DG_PAD_AUTOHOLD_EN | CLR_DG_PAD_AUTOHOLD | DG_PAD_AUTOHOLD | — | ||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DG_WRAP_FORCE_NOISO | 31 | R/W | 1 |
| DG_WRAP_FORCE_ISO | 30 | R/W | 0 |
| WIFI_FORCE_NOISO | 29 | R/W | 1 |
| WIFI_FORCE_ISO | 28 | R/W | 0 |
| CPU_TOP_FORCE_NOISO | 27 | R/W | 1 |
| CPU_TOP_FORCE_ISO | 26 | R/W | 0 |
| DG_PERI_FORCE_NOISO | 25 | R/W | 1 |
| DG_PERI_FORCE_ISO | 24 | R/W | 0 |
| DG_PAD_FORCE_HOLD | 15 | R/W | 0 |
| DG_PAD_FORCE_UNHOLD | 14 | R/W | 1 |
| DG_PAD_FORCE_ISO | 13 | R/W | 0 |
| DG_PAD_FORCE_NOISO | 12 | R/W | 1 |
| DG_PAD_AUTOHOLD_EN | 11 | R/W | 0 |
| CLR_DG_PAD_AUTOHOLD | 10 | WO | 0 |
| DG_PAD_AUTOHOLD | 9 | RO | 0 |
RTC_CNTL_WDTCONFIG0_REG — rTC-сторож: включение и действия стадий
Смещение 0x0090, адрес 0x6000 8090, после сброса 0x0001 3200. TRM: регистр 9.31.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| WDT_EN | WDT_STG0 | WDT_STG1 | WDT_STG2 | WDT_STG3 | WDT_CPU_RESET_LENGTH | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| WDT_SYS_RESET_LENGTH | WDT_FLASHBOOT_MOD_EN | WDT_PROCPU_RESET_EN | — | WDT_PAUSE_IN_SLP | — | ||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_EN | 31 | R/W | 0 | Включить RTC-сторож |
| WDT_STG0 | 30:28 | R/W | 0x0 | Действие стадии 0: 0 — нет, 1 — прерывание, 2 — сброс процессора, 3 — сброс цифровой части, 4 — полный сброс вместе с RTC |
| WDT_STG1 | 27:25 | R/W | 0x0 | Действие стадии 1 |
| WDT_STG2 | 24:22 | R/W | 0x0 | Действие стадии 2 |
| WDT_STG3 | 21:19 | R/W | 0x0 | Действие стадии 3 |
| WDT_CPU_RESET_LENGTH | 18:16 | R/W | 0x1 | |
| WDT_SYS_RESET_LENGTH | 15:13 | R/W | 0x1 | |
| WDT_FLASHBOOT_MOD_EN | 12 | R/W | 1 | Сторож работает с начальной загрузки из флеш-памяти |
| WDT_PROCPU_RESET_EN | 11 | R/W | 0 | |
| WDT_PAUSE_IN_SLP | 9 | R/W | 1 | Останавливать сторож во сне |
RTC_CNTL_WDTCONFIG1_REG — rTC-сторож: длительность стадии 0
Смещение 0x0094, адрес 0x6000 8094, после сброса 0x0003 0D40. TRM: регистр 9.32.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG0_HOLD | 31:0 | R/W | 0x0003 0D40 | Длительность стадии 0 в тактах медленного RTC-генератора |
RTC_CNTL_WDTCONFIG2_REG — rTC-сторож: длительность стадии 1
Смещение 0x0098, адрес 0x6000 8098, после сброса 0x0001 3880. TRM: регистр 9.33.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG1_HOLD | 31:0 | R/W | 0x0001 3880 | Длительность стадии 1 |
RTC_CNTL_WDTCONFIG3_REG — rTC-сторож: длительность стадии 2
Смещение 0x009C, адрес 0x6000 809C, после сброса 0x0000 0FFF. TRM: регистр 9.34.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG2_HOLD | 31:0 | R/W | 0x0000 0FFF | Длительность стадии 2 |
RTC_CNTL_WDTCONFIG4_REG — rTC-сторож: длительность стадии 3
Смещение 0x00A0, адрес 0x6000 80A0, после сброса 0x0000 0FFF. TRM: регистр 9.35.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG3_HOLD | 31:0 | R/W | 0x0000 0FFF | Длительность стадии 3 |
RTC_CNTL_WDTFEED_REG — rTC-сторож: кормление
Смещение 0x00A4, адрес 0x6000 80A4, после сброса 0x0000 0000. TRM: регистр 9.36.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_FEED | 31 | WO | 0 | Запись 1 кормит RTC-сторож |
RTC_CNTL_WDTWPROTECT_REG — rTC-сторож: защита записи
Смещение 0x00A8, адрес 0x6000 80A8, после сброса 0x0000 0000. TRM: регистр 9.37.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_WKEY | 31:0 | R/W | 0x0000 0000 | Ключ 0x50D83AA1 снимает защиту записи регистров RWDT |
RTC_CNTL_SWD_CONF_REG — супер-сторож: кормление и выключение
Смещение 0x00AC, адрес 0x6000 80AC, после сброса 0x04B0 0000. TRM: регистр 9.38.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SWD_AUTO_FEED_EN | SWD_DISABLE | SWD_FEED | SWD_RST_FLAG_CLR | SWD_SIGNAL_WIDTH | SWD_BYPASS_RST | — | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SWD_FEED_INT | SWD_RESET_FLAG | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SWD_AUTO_FEED_EN | 31 | R/W | 0 | Кормить супер-сторож автоматически |
| SWD_DISABLE | 30 | R/W | 0 | Выключить супер-сторож |
| SWD_FEED | 29 | WO | 0 | Запись 1 кормит супер-сторож |
| SWD_RST_FLAG_CLR | 28 | WO | 0 | |
| SWD_SIGNAL_WIDTH | 27:18 | R/W | 0x12C | |
| SWD_BYPASS_RST | 17 | R/W | 0 | |
| SWD_FEED_INT | 1 | RO | 0 | |
| SWD_RESET_FLAG | 0 | RO | 0 |
RTC_CNTL_SWD_WPROTECT_REG — супер-сторож: защита записи
Смещение 0x00B0, адрес 0x6000 80B0, после сброса 0x0000 0000. TRM: регистр 9.39.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SWD_WKEY | 31:0 | R/W | 0x0000 0000 | Ключ 0x8F1D312A снимает защиту регистров супер-сторожа |
RTC_CNTL_SW_CPU_STALL_REG — программная остановка ядра
Смещение 0x00B4, адрес 0x6000 80B4, после сброса 0x0000 0000. TRM: регистр 9.40.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SW_STALL_PROCPU_C1 | 31:26 | R/W | 0x00 |
RTC_CNTL_LOW_POWER_ST_REG — состояние автомата питания
Смещение 0x00C8, адрес 0x6000 80C8, после сброса 0x0000 0000. TRM: регистр 9.45.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MAIN_STATE_IN_IDLE | — | RDY_FOR_WAKEUP | — | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| MAIN_STATE_IN_IDLE | 27 | RO | 0 |
| RDY_FOR_WAKEUP | 19 | RO | 0 |
RTC_CNTL_PAD_HOLD_REG — удержание состояния выводов GPIO0…5
Смещение 0x00D0, адрес 0x6000 80D0, после сброса 0x0000 0000. TRM: регистр 9.46.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | GPIO_PIN5_HOLD | GPIO_PIN4_HOLD | GPIO_PIN3_HOLD | GPIO_PIN2_HOLD | GPIO_PIN1_HOLD | GPIO_PIN0_HOLD | |||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| GPIO_PIN5_HOLD | 5 | R/W | 0 |
| GPIO_PIN4_HOLD | 4 | R/W | 0 |
| GPIO_PIN3_HOLD | 3 | R/W | 0 |
| GPIO_PIN2_HOLD | 2 | R/W | 0 |
| GPIO_PIN1_HOLD | 1 | R/W | 0 |
| GPIO_PIN0_HOLD | 0 | R/W | 0 |
RTC_CNTL_DIG_PAD_HOLD_REG — удержание цифровых выводов
Смещение 0x00D4, адрес 0x6000 80D4, после сброса 0x0000 0000. TRM: регистр 9.47.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DIG_PAD_HOLD | 31:0 | R/W | 0x0000 0000 |
RTC_CNTL_BROWN_OUT_REG — детектор просадки питания
Смещение 0x00D8, адрес 0x6000 80D8, после сброса 0x43FF 0010. TRM: регистр 9.48.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| BROWN_OUT_DET | BROWN_OUT_ENA | BROWN_OUT_CNT_CLR | BROWN_OUT_ANA_RST_EN | BROWN_OUT_RST_SEL | BROWN_OUT_RST_ENA | BROWN_OUT_RST_WAIT | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| BROWN_OUT_PD_RF_ENA | BROWN_OUT_CLOSE_FLASH_ENA | BROWN_OUT_INT_WAIT | — | ||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BROWN_OUT_DET | 31 | RO | 0 | Текущий выход детектора просадки |
| BROWN_OUT_ENA | 30 | R/W | 1 | Включить детектор просадки |
| BROWN_OUT_CNT_CLR | 29 | WO | 0 | |
| BROWN_OUT_ANA_RST_EN | 28 | R/W | 0 | |
| BROWN_OUT_RST_SEL | 27 | R/W | 0 | |
| BROWN_OUT_RST_ENA | 26 | R/W | 0 | Сбрасывать чип при просадке |
| BROWN_OUT_RST_WAIT | 25:16 | R/W | 0x3FF | Задержка сброса после обнаружения просадки |
| BROWN_OUT_PD_RF_ENA | 15 | R/W | 0 | |
| BROWN_OUT_CLOSE_FLASH_ENA | 14 | R/W | 0 | Отключать флеш-память при просадке |
| BROWN_OUT_INT_WAIT | 13:4 | R/W | 0x001 | Задержка прерывания после обнаружения просадки |
RTC_CNTL_XTAL32K_CLK_FACTOR_REG — множитель резервного такта при отказе кварца 32 кГц
Смещение 0x00E4, адрес 0x6000 80E4, после сброса 0x0000 0000. TRM: регистр 9.51.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| XTAL32K_CLK_FACTOR | 31:0 | R/W | 0x0000 0000 |
RTC_CNTL_XTAL32K_CONF_REG — сторож кварца 32 кГц: пороги и ожидания
Смещение 0x00E8, адрес 0x6000 80E8, после сброса 0x0FF0 0000. TRM: регистр 9.52.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| XTAL32K_STABLE_THRES | XTAL32K_WDT_TIMEOUT | XTAL32K_RESTART_WAIT | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| XTAL32K_RESTART_WAIT | XTAL32K_RETURN_WAIT | ||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| XTAL32K_STABLE_THRES | 31:28 | R/W | 0x0 |
| XTAL32K_WDT_TIMEOUT | 27:20 | R/W | 0xFF |
| XTAL32K_RESTART_WAIT | 19:4 | R/W | 0x0000 |
| XTAL32K_RETURN_WAIT | 3:0 | R/W | 0x0 |
RTC_CNTL_USB_CONF_REG — сброс IO MUX выводов USB
Смещение 0x00EC, адрес 0x6000 80EC, после сброса 0x0000 0000. TRM: регистр 9.53.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| IO_MUX_RESET_DISABLE | 18 | R/W | 0 |
RTC_CNTL_SLP_REJECT_CAUSE_REG — причина отказа от сна
Смещение 0x00F0, адрес 0x6000 80F0, после сброса 0x0000 0000. TRM: регистр 9.54.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| REJECT_CAUSE | 17:0 | RO | 0x00000 | Источник, отклонивший последний сон |
RTC_CNTL_OPTION1_REG — принудительная загрузка в режим прошивки
Смещение 0x00F4, адрес 0x6000 80F4, после сброса 0x0000 0000. TRM: регистр 9.55.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| FORCE_DOWNLOAD_BOOT | 0 | R/W | 0 | После сброса войти в режим прошивки независимо от strapping-выводов |
RTC_CNTL_SLP_WAKEUP_CAUSE_REG — причина последнего пробуждения
Смещение 0x00F8, адрес 0x6000 80F8, после сброса 0x0000 0000. TRM: регистр 9.56.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WAKEUP_CAUSE | 16:0 | RO | 0x00000 | Источник последнего пробуждения, бит на источник |
RTC_CNTL_INT_ENA_W1TS_REG — разрешение прерываний: запись 1 включает бит
Смещение 0x0100, адрес 0x6000 8100, после сброса 0x0000 0000. TRM: регистр 9.57.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BBPLL_CAL_INT_ENA_W1TS | GLITCH_DET_INT_ENA_W1TS | — | XTAL32K_DEAD_INT_ENA_W1TS | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWD_INT_ENA_W1TS | — | MAIN_TIMER_INT_ENA_W1TS | BROWN_OUT_INT_ENA_W1TS | — | WDT_INT_ENA_W1TS | — | SLP_REJECT_INT_ENA_W1TS | SLP_WAKEUP_INT_ENA_W1TS | |||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BBPLL_CAL_INT_ENA_W1TS | 20 | WO | 0 | Закончена калибровка BBPLL |
| GLITCH_DET_INT_ENA_W1TS | 19 | WO | 0 | Детектор помех заметил выброс на питании или тактах |
| XTAL32K_DEAD_INT_ENA_W1TS | 16 | WO | 0 | Кварц 32 кГц перестал генерировать |
| SWD_INT_ENA_W1TS | 15 | WO | 0 | Супер-сторож (SWD) просит его покормить |
| MAIN_TIMER_INT_ENA_W1TS | 10 | WO | 0 | Сработал будильник RTC-таймера |
| BROWN_OUT_INT_ENA_W1TS | 9 | WO | 0 | Детектор просадки питания заметил снижение напряжения |
| WDT_INT_ENA_W1TS | 3 | WO | 0 | Сработал RTC-сторож (RWDT) в режиме прерывания |
| SLP_REJECT_INT_ENA_W1TS | 1 | WO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_ENA_W1TS | 0 | WO | 0 | Чип проснулся |
RTC_CNTL_INT_ENA_W1TC_REG — разрешение прерываний: запись 1 выключает бит
Смещение 0x0104, адрес 0x6000 8104, после сброса 0x0000 0000. TRM: регистр 9.58.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | BBPLL_CAL_INT_ENA_W1TC | GLITCH_DET_INT_ENA_W1TC | — | XTAL32K_DEAD_INT_ENA_W1TC | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SWD_INT_ENA_W1TC | — | MAIN_TIMER_INT_ENA_W1TC | BROWN_OUT_INT_ENA_W1TC | — | WDT_INT_ENA_W1TC | — | SLP_REJECT_INT_ENA_W1TC | SLP_WAKEUP_INT_ENA_W1TC | |||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BBPLL_CAL_INT_ENA_W1TC | 20 | WO | 0 | Закончена калибровка BBPLL |
| GLITCH_DET_INT_ENA_W1TC | 19 | WO | 0 | Детектор помех заметил выброс на питании или тактах |
| XTAL32K_DEAD_INT_ENA_W1TC | 16 | WO | 0 | Кварц 32 кГц перестал генерировать |
| SWD_INT_ENA_W1TC | 15 | WO | 0 | Супер-сторож (SWD) просит его покормить |
| MAIN_TIMER_INT_ENA_W1TC | 10 | WO | 0 | Сработал будильник RTC-таймера |
| BROWN_OUT_INT_ENA_W1TC | 9 | WO | 0 | Детектор просадки питания заметил снижение напряжения |
| WDT_INT_ENA_W1TC | 3 | WO | 0 | Сработал RTC-сторож (RWDT) в режиме прерывания |
| SLP_REJECT_INT_ENA_W1TC | 1 | WO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_ENA_W1TC | 0 | WO | 0 | Чип проснулся |
RTC_CNTL_RETENTION_CTRL_REG — сохранение состояния ядра во сне
Смещение 0x0108, адрес 0x6000 8108, после сброса 0x0000 0000. TRM: регистр 9.59.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RETENTION_EN | — | RETENTION_CLK_SEL | — | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RETENTION_EN | 26 | R/W | 0 |
| RETENTION_CLK_SEL | 18 | R/W | 0 |
RTC_CNTL_GPIO_WAKEUP_REG — пробуждение по выводам GPIO0…5
Смещение 0x0110, адрес 0x6000 8110, после сброса 0x0000 0000. TRM: регистр 9.60.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| GPIO_PIN0_WAKEUP_ENABLE | GPIO_PIN1_WAKEUP_ENABLE | GPIO_PIN2_WAKEUP_ENABLE | GPIO_PIN3_WAKEUP_ENABLE | GPIO_PIN4_WAKEUP_ENABLE | GPIO_PIN5_WAKEUP_ENABLE | GPIO_PIN0_INT_TYPE | GPIO_PIN1_INT_TYPE | GPIO_PIN2_INT_TYPE | GPIO_PIN3_INT_TYPE | ||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| GPIO_PIN3_INT_TYPE | GPIO_PIN4_INT_TYPE | GPIO_PIN5_INT_TYPE | GPIO_PIN_CLK_GATE | GPIO_WAKEUP_STATUS_CLR | GPIO_WAKEUP_STATUS | ||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| GPIO_PIN0_WAKEUP_ENABLE | 31 | R/W | 0 |
| GPIO_PIN1_WAKEUP_ENABLE | 30 | R/W | 0 |
| GPIO_PIN2_WAKEUP_ENABLE | 29 | R/W | 0 |
| GPIO_PIN3_WAKEUP_ENABLE | 28 | R/W | 0 |
| GPIO_PIN4_WAKEUP_ENABLE | 27 | R/W | 0 |
| GPIO_PIN5_WAKEUP_ENABLE | 26 | R/W | 0 |
| GPIO_PIN0_INT_TYPE | 25:23 | R/W | 0x0 |
| GPIO_PIN1_INT_TYPE | 22:20 | R/W | 0x0 |
| GPIO_PIN2_INT_TYPE | 19:17 | R/W | 0x0 |
| GPIO_PIN3_INT_TYPE | 16:14 | R/W | 0x0 |
| GPIO_PIN4_INT_TYPE | 13:11 | R/W | 0x0 |
| GPIO_PIN5_INT_TYPE | 10:8 | R/W | 0x0 |
| GPIO_PIN_CLK_GATE | 7 | R/W | 0 |
| GPIO_WAKEUP_STATUS_CLR | 6 | R/W | 0 |
| GPIO_WAKEUP_STATUS | 5:0 | RO | 0x00 |
RTC_CNTL_SENSOR_CTRL_REG — питание SAR АЦП
Смещение 0x011C, адрес 0x6000 811C, после сброса 0x0000 0000. TRM: регистр 9.61.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| FORCE_XPD_SAR | 31:30 | R/W | 0x0 |
Частые вопросы
Где ESP32-C3 хранит причину сброса?
В поле RESET_CAUSE_PROCPU регистра RTC_CNTL_RESET_STATE_REG (смещение 0x38). Коды по таблице 6.1-1 TRM: 1 — сброс чипа (включение питания или детектор просадки), 3 — программный сброс системы, 5 — выход из глубокого сна, 7 и 8 — сторожа групп таймеров, 9 и 16 — RTC-сторож, 15 — просадка питания, 18 — супер-сторож. Функция esp_reset_reason ESP-IDF читает это поле и переводит код в перечисление esp_reset_reason_t.
Какие регистры ESP32-C3 сохраняются в глубоком сне?
Регистры RTC_CNTL_STORE0_REG…STORE7_REG питаются от домена RTC и сохраняются в глубоком сне, пока не пропадёт питание. ESP-IDF занимает их все: калибровка медленного генератора, время загрузки, частоты кварца и APB, адрес и CRC обработчика пробуждения (список — в soc/rtc.h). Свои данные лучше хранить в переменных с атрибутом RTC_DATA_ATTR в памяти RTC.
Источники
- Espressif. ESP32-C3 Technical Reference Manual, версия 1.4 — глава 9: таблица Register Summary и рисунки регистров — смещения, поля, тип доступа и значения после сброса
- Espressif. SVD svd/esp32c3.svd, версия 18 (espressif/svd, коммит be20aa1) — базовые адреса периферии, список регистров и полей; лицензия Apache-2.0
- Espressif. ESP-IDF v6.1: заголовки components/soc/esp32c3/register/soc/*_reg.h (коммит fff9895) — имена макросов регистров и полей, сверка положения полей и значений по умолчанию; лицензия Apache-2.0 OR MIT
Нашли ошибку в регистрах?
Другие регистры ESP32-C3
- Все регистры ESP32-C3Блоки периферии и базовые адреса
- GPIO — выводы общего назначения и матрица GPIOGPIO_BT_SELECT_REG, GPIO_OUT_REG, GPIO_OUT_W1TS_REG, GPIO_OUT_W1TC_REG
- IO MUX — мультиплексор функций и электрические настройки выводовPIN_CTRL, IO_MUX_GPIOn_REG, IO_MUX_DATE_REG
- UART — универсальный асинхронный приёмопередатчикUART_FIFO_REG, UART_INT_RAW_REG, UART_INT_ST_REG, UART_INT_ENA_REG
- SPI — контроллер SPI общего назначения GP-SPI2SPI_CMD_REG, SPI_ADDR_REG, SPI_CTRL_REG, SPI_CLOCK_REG
- I2C — контроллер шины I2CI2C_SCL_LOW_PERIOD_REG, I2C_CTR_REG, I2C_SR_REG, I2C_TO_REG
- LEDC — контроллер ШИМ для светодиодов и не толькоLEDC_LSCHn_CONF0_REG, LEDC_LSCHn_HPOINT_REG, LEDC_LSCHn_DUTY_REG, LEDC_LSCHn_CONF1_REG
- TIMG — группа таймеров: таймер общего назначения и сторожTIMG_T0CONFIG_REG, TIMG_T0LO_REG, TIMG_T0HI_REG, TIMG_T0UPDATE_REG
- RMT — контроллер инфракрасного пульта и импульсных протоколовRMT_CHnDATA_REG, RMT_CHnCONF0_REG, RMT_CHnCONF0_REG, RMT_CHnCONF1_REG
- SYSTIMER — системный таймерSYSTIMER_CONF_REG, SYSTIMER_UNITn_OP_REG, SYSTIMER_UNITn_LOAD_HI_REG, SYSTIMER_UNITn_LOAD_LO_REG
- АЦП — 12-битный SAR АЦП и датчик температурыAPB_SARADC_CTRL_REG, APB_SARADC_CTRL2_REG, APB_SARADC_FILTER_CTRL1_REG, APB_SARADC_SAR_PATT_TABn_REG
- USB Serial/JTAG — встроенный USB-порт: виртуальный COM-порт и JTAGUSB_SERIAL_JTAG_EP1_REG, USB_SERIAL_JTAG_EP1_CONF_REG, USB_SERIAL_JTAG_INT_RAW_REG, USB_SERIAL_JTAG_INT_ST_REG
- eFuse — однократно программируемая память настроек и ключейEFUSE_RD_WR_DIS_REG, EFUSE_RD_REPEAT_DATA0_REG, EFUSE_RD_REPEAT_DATA1_REG, EFUSE_RD_REPEAT_DATA2_REG
- INTERRUPT — матрица прерыванийINTERRUPT_CORE0_PWR_INTR_MAP_REG, INTERRUPT_CORE0_I2C_MST_INT_MAP_REG, INTERRUPT_CORE0_SLCn_INTR_MAP_REG, INTERRUPT_CORE0_APB_CTRL_INTR_MAP_REG
Статьи, инструменты и термины
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- Ток ESP32 во снеDeep-sleep и light-sleep по даташитам, средний ток, Wi-Fi, батарея
- Сторожевой таймерWatchdog: сброс МК при зависании программы
- Детектор пониженного питанияBrown-out detector: сброс МК при просадке питания