Регистры RTC_CNTL ESP32-S3
Регистры RTC_CNTL ESP32-S3: 48-битный RTC-таймер и будильник, перевод в сон и выбор источников пробуждения, причины сброса и пробуждения, домены питания, медленные такты, 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_SDIO_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_EXT_WAKEUP1_REG
- RTC_CNTL_EXT_WAKEUP1_STATUS_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_FIB_SEL_REG
RTC_CNTL по адресу 0x6000 8000 работает в RTC-домене и не выключается в глубоком сне. 48-битный RTC-таймер считает такты RTC_SLOW_CLK — по полю ANA_CLK_RTC_SEL регистра RTC_CNTL_RTC_CLK_CONF_REG это RC_SLOW_CLK (около 136 кГц), XTAL32K_CLK или RC_FAST_DIV_CLK. Таймер не сбрасывается ничем, кроме включения питания.
По каждому событию из таблицы 10.3-2 TRM (запись RTC_TIME_UPDATE, выключение кварца, остановка процессора, конец сброса цифровой части) значение таймера защёлкивается: последнее — в RTC_TIME_LOW0 и HIGH0, предыдущее — в LOW1 и HIGH1. Будильник задают SLP_VAL_LO и SLP_VAL_HI с битом MAIN_TIMER_ALARM_EN.
Источники пробуждения выбирает битовая карта RTC_WAKEUP_ENA (биты 31:15 регистра RTC_CNTL_RTC_WAKEUP_STATE_REG), в сон чип уходит по биту SLEEP_EN. RTC-сторож RWDT, как MWDT групп таймеров, защищён ключом 0x50D83AA1, а супер-сторож SWD — ключом 0x8F1D312A.
| Экземпляр | Базовый адрес |
|---|---|
| RTC_CNTL | 0x6000 8000 |
Пример на C
Причина сброса ядра 0 и отключение RWDT (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);
REG_WRITE(RTC_CNTL_WDTWPROTECT_REG, 0x50D83AA1); // снять защиту
REG_CLR_BIT(RTC_CNTL_WDTCONFIG0_REG, RTC_CNTL_WDT_FLASHBOOT_MOD_EN);
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 | Программные сбросы, принудительное питание кварца и PLL | 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 · 0x00DC | RTC-таймер, младшие 32 бита: n = 0 — последнее событие, 1 — предыдущее | 0x0000 0000 |
| RTC_CNTL_TIME_HIGHn_REG | 0x0014 + n · 0x00DC | RTC-таймер, старшие 16 бит: n = 0 — последнее событие, 1 — предыдущее | 0x0000 0000 |
| RTC_CNTL_STATE0_REG | 0x0018 | Переход в сон, программное прерывание RTC | 0x0000 0000 |
| RTC_CNTL_TIMER1_REG | 0x001C | Ожидание стабилизации PLL, кварца и RC-генератора | 0x2814 0403 |
| RTC_CNTL_TIMER2_REG | 0x0020 | Ожидание перед касанием и ULP, наименьшее время RC_FAST | 0x0108 0000 |
| RTC_CNTL_TIMER5_REG | 0x002C | Наименьшая длительность сна | 0x0000 8000 |
| RTC_CNTL_ANA_CONF_REG | 0x0034 | Сброс по детектору помех, питание SLEEP_I2CPOR | 0x0004 0000 |
| RTC_CNTL_RESET_STATE_REG | 0x0038 | Причины сброса ядер, флаги и вектор после сброса | 0x0000 3000 |
| 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 | Уровни пробуждения EXT0 и EXT1, фильтр GPIO | 0x0000 0000 |
| RTC_CNTL_SLP_REJECT_CONF_REG | 0x0068 | Отказ от перехода в сон | 0x0000 0000 |
| RTC_CNTL_CLK_CONF_REG | 0x0074 | Выбор медленного и быстрого тактов RTC, RC_FAST_CLK | 0x1158 321C |
| RTC_CNTL_SLOW_CLK_CONF_REG | 0x0078 | Делитель RC_SLOW_CLK | 0x0040 0000 |
| RTC_CNTL_SDIO_CONF_REG | 0x007C | Регулятор питания флеш-памяти | 0x00A0 0000 |
| RTC_CNTL_REG | 0x0084 | Регулятор RTC, частота тактов RTC | 0xA000 0000 |
| RTC_CNTL_PWC_REG | 0x0088 | Питание и изоляция RTC-периферии и памяти | 0x0000 0920 |
| RTC_CNTL_DIG_PWC_REG | 0x0090 | Питание цифровых доменов во сне | 0x0054 4010 |
| RTC_CNTL_DIG_ISO_REG | 0x0094 | Изоляция цифровых доменов, удержание цифровых выводов | 0xAA00 5000 |
| RTC_CNTL_WDTCONFIG0_REG | 0x0098 | RTC-сторож: включение, действия стадий, режимы | 0x0001 3200 |
| RTC_CNTL_WDTCONFIG1_REG | 0x009C | RTC-сторож: длительность стадии 0 | 0x0003 0D40 |
| RTC_CNTL_WDTCONFIG2_REG | 0x00A0 | RTC-сторож: длительность стадии 1 | 0x0001 3880 |
| RTC_CNTL_WDTCONFIG3_REG | 0x00A4 | RTC-сторож: длительность стадии 2 | 0x0000 0FFF |
| RTC_CNTL_WDTCONFIG4_REG | 0x00A8 | RTC-сторож: длительность стадии 3 | 0x0000 0FFF |
| RTC_CNTL_WDTFEED_REG | 0x00AC | RTC-сторож: кормление | 0x0000 0000 |
| RTC_CNTL_WDTWPROTECT_REG | 0x00B0 | RTC-сторож: защита записи | 0x50D8 3AA1 |
| RTC_CNTL_SWD_CONF_REG | 0x00B4 | Супер-сторож: кормление, отключение, флаги | 0x04B0 0000 |
| RTC_CNTL_SWD_WPROTECT_REG | 0x00B8 | Супер-сторож: защита записи | 0x8F1D 312A |
| RTC_CNTL_SW_CPU_STALL_REG | 0x00BC | Программная остановка ядер, вторая часть кода | 0x0000 0000 |
| RTC_CNTL_LOW_POWER_ST_REG | 0x00D0 | Состояние RTC: сон или работа | 0x0000 0000 |
| RTC_CNTL_PAD_HOLD_REG | 0x00D8 | Удержание состояния RTC-выводов | 0x0000 0000 |
| RTC_CNTL_DIG_PAD_HOLD_REG | 0x00DC | Удержание состояния цифровых выводов | 0x0000 0000 |
| RTC_CNTL_EXT_WAKEUP1_REG | 0x00E0 | Выводы источника пробуждения EXT1 | 0x0000 0000 |
| RTC_CNTL_EXT_WAKEUP1_STATUS_REG | 0x00E4 | Какие выводы EXT1 разбудили чип | 0x0000 0000 |
| RTC_CNTL_BROWN_OUT_REG | 0x00E8 | Детектор просадки питания | 0x43FF 0010 |
| RTC_CNTL_XTAL32K_CLK_FACTOR_REG | 0x00F4 | Коэффициент делителя для кварца 32 кГц | 0x0000 0000 |
| RTC_CNTL_XTAL32K_CONF_REG | 0x00F8 | Сторож кварца 32 кГц: таймауты и пороги | 0x0FF0 0000 |
| RTC_CNTL_USB_CONF_REG | 0x0120 | Внутренний USB PHY: выбор контроллера, подтяжки, пороги | 0x0000 0000 |
| RTC_CNTL_SLP_REJECT_CAUSE_REG | 0x0128 | Причина отказа от сна | 0x0000 0000 |
| RTC_CNTL_OPTION1_REG | 0x012C | Принудительный вход в режим загрузки | 0x0000 0000 |
| RTC_CNTL_SLP_WAKEUP_CAUSE_REG | 0x0130 | Причина пробуждения | 0x0000 0000 |
| RTC_CNTL_INT_ENA_W1TS_REG | 0x0138 | Разрешение прерываний: запись 1 включает бит | 0x0000 0000 |
| RTC_CNTL_INT_ENA_W1TC_REG | 0x013C | Разрешение прерываний: запись 1 выключает бит | 0x0000 0000 |
| RTC_CNTL_RETENTION_CTRL_REG | 0x0140 | Сохранение состояния процессора и кэша во сне | 0x2834 0000 |
| RTC_CNTL_FIB_SEL_REG | 0x0148 | Настройка детектора просадки питания | 0x0000 0007 |
Доступ — обозначения TRM: R/W — чтение и запись, RO — только чтение, WO — только запись, WT — запись 1 запускает действие, SS и SC — бит ставится и сбрасывается аппаратно, WTC — сбрасывается записью 1.
RTC_CNTL_OPTIONS0_REG — программные сбросы, принудительное питание кварца и PLL
Смещение 0x0000, адрес 0x6000 8000, после сброса 0x0000 2000. TRM: регистр 10.1 (RTC_CNTL_RTC_OPTIONS0_REG).
| 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_APPCPU_RST | SW_STALL_PROCPU_C0 | SW_STALL_APPCPU_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 | 1 — принудительно включить кварц |
| XTL_FORCE_PD | 12 | R/W | 0 | 1 — принудительно выключить кварц |
| 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 — программный сброс ядра 0 |
| SW_APPCPU_RST | 4 | WO | 0 | Запись 1 — программный сброс ядра 1 |
| SW_STALL_PROCPU_C0 | 3:2 | R/W | 0x0 | Остановка ядра 0: 0x2 при SW_STALL_PROCPU_C1 = 0x21 останавливает ядро |
| SW_STALL_APPCPU_C0 | 1:0 | R/W | 0x0 | Остановка ядра 1: 0x2 при SW_STALL_APPCPU_C1 = 0x21 останавливает ядро |
RTC_CNTL_SLP_TIMER0_REG — будильник RTC-таймера, младшие 32 бита
Смещение 0x0004, адрес 0x6000 8004, после сброса 0x0000 0000. TRM: регистр 10.2 (RTC_CNTL_RTC_SLP_TIMER0_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SLP_VAL_LO | 31:0 | R/W | 0x0000 0000 | Младшие 32 бита порога будильника RTC-таймера |
RTC_CNTL_SLP_TIMER1_REG — будильник RTC-таймера, старшие 16 бит и включение
Смещение 0x0008, адрес 0x6000 8008, после сброса 0x0000 0000. TRM: регистр 10.3 (RTC_CNTL_RTC_SLP_TIMER1_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RTC_MAIN_TIMER_ALARM_EN | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SLP_VAL_HI | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_MAIN_TIMER_ALARM_EN | 16 | WO | 0 | Запись 1 включает будильник |
| SLP_VAL_HI | 15:0 | R/W | 0x0000 | Старшие 16 бит порога будильника |
RTC_CNTL_TIME_UPDATE_REG — защёлкивание RTC-таймера и события для него
Смещение 0x000C, адрес 0x6000 800C, после сброса 0x0000 0000. TRM: регистр 10.4 (RTC_CNTL_RTC_TIME_UPDATE_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RTC_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 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TIME_UPDATE | 31 | WO | 0 | Запись 1 защёлкивает RTC-таймер в TIME_LOW0 и TIME_HIGH0 |
| TIMER_SYS_RST | 29 | R/W | 0 | 1 — защёлкивать таймер по концу сброса цифровой части |
| TIMER_XTL_OFF | 28 | R/W | 0 | 1 — защёлкивать при выключении главного автомата или включении кварца |
| TIMER_SYS_STALL | 27 | R/W | 0 | 1 — защёлкивать при остановке и пуске процессора |
RTC_CNTL_TIME_LOWn_REG — rTC-таймер, младшие 32 бита: n = 0 — последнее событие, 1 — предыдущее
2 копии, n = 0, 1: смещение 0x0010 + n · 0x00DC, после сброса 0x0000 0000. TRM: регистр 10.5 (RTC_CNTL_RTC_TIME_LOWn_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TIMER_VALUEn_LOW | 31:0 | RO | 0x0000 0000 | Младшие 32 бита защёлкнутого значения RTC-таймера |
RTC_CNTL_TIME_HIGHn_REG — rTC-таймер, старшие 16 бит: n = 0 — последнее событие, 1 — предыдущее
2 копии, n = 0, 1: смещение 0x0014 + n · 0x00DC, после сброса 0x0000 0000. TRM: регистр 10.6 (RTC_CNTL_RTC_TIME_HIGHn_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TIMER_VALUEn_HIGH | 15:0 | RO | 0x0000 | Старшие 16 бит защёлкнутого значения |
RTC_CNTL_STATE0_REG — переход в сон, программное прерывание RTC
Смещение 0x0018, адрес 0x6000 8018, после сброса 0x0000 0000. TRM: регистр 10.7 (RTC_CNTL_RTC_STATE0_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SLEEP_EN | SLP_REJECT | SLP_WAKEUP | SDIO_ACTIVE_IND | — | APB2RTC_BRIDGE_SEL | — | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RTC_SLP_REJECT_CAUSE_CLR | RTC_SW_CPU_INT | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SLEEP_EN | 31 | R/W | 0 | 1 — перевести чип в сон |
| SLP_REJECT | 30 | R/W | 0 | Признак отказа от сна |
| SLP_WAKEUP | 29 | R/W | 0 | Признак события пробуждения |
| SDIO_ACTIVE_IND | 28 | RO | 0 | |
| APB2RTC_BRIDGE_SEL | 22 | R/W | 0 | |
| RTC_SLP_REJECT_CAUSE_CLR | 1 | WO | 0 | Запись 1 сбрасывает причину отказа от сна |
| RTC_SW_CPU_INT | 0 | WO | 0 | Запись 1 — программное прерывание RTC для ядра |
RTC_CNTL_TIMER1_REG — ожидание стабилизации PLL, кварца и RC-генератора
Смещение 0x001C, адрес 0x6000 801C, после сброса 0x2814 0403. TRM: регистр 10.8 (RTC_CNTL_RTC_TIMER1_REG).
| 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 | CK8M_WAIT | CPU_STALL_WAIT | CPU_STALL_EN | ||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PLL_BUF_WAIT | 31:24 | R/W | 0x28 |
| XTL_BUF_WAIT | 23:14 | R/W | 0x050 |
| CK8M_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 — ожидание перед касанием и ULP, наименьшее время RC_FAST
Смещение 0x0020, адрес 0x6000 8020, после сброса 0x0108 0000. TRM: регистр 10.9 (RTC_CNTL_RTC_TIMER2_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| MIN_TIME_CK8M_OFF | ULPCP_TOUCH_START_WAIT | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ULPCP_TOUCH_START_WAIT | — | ||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| MIN_TIME_CK8M_OFF | 31:24 | R/W | 0x01 |
| ULPCP_TOUCH_START_WAIT | 23:15 | R/W | 0x010 |
RTC_CNTL_TIMER5_REG — наименьшая длительность сна
Смещение 0x002C, адрес 0x6000 802C, после сброса 0x0000 8000. TRM: регистр 10.10 (RTC_CNTL_RTC_TIMER5_REG).
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| MIN_SLP_VAL | 15:8 | R/W | 0x80 |
RTC_CNTL_ANA_CONF_REG — сброс по детектору помех, питание SLEEP_I2CPOR
Смещение 0x0034, адрес 0x6000 8034, после сброса 0x0004 0000. TRM: регистр 10.11 (RTC_CNTL_RTC_ANA_CONF_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | GLITCH_RST_EN | I2C_RESET_POR_FORCE_PU | I2C_RESET_POR_FORCE_PD | — | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| GLITCH_RST_EN | 20 | R/W | 0 |
| I2C_RESET_POR_FORCE_PU | 19 | R/W | 0 |
| I2C_RESET_POR_FORCE_PD | 18 | R/W | 1 |
RTC_CNTL_RESET_STATE_REG — причины сброса ядер, флаги и вектор после сброса
Смещение 0x0038, адрес 0x6000 8038, после сброса 0x0000 3000. TRM: регистр 10.12 (RTC_CNTL_RTC_RESET_STATE_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RTC_PRO_DRESET_MASK | RTC_APP_DRESET_MASK | RESET_FLAG_JTAG_APPCPU_CLR | RESET_FLAG_JTAG_PROCPU_CLR | RESET_FLAG_JTAG_APPCPU | RESET_FLAG_JTAG_PROCPU | PROCPU_OCD_HALT_ON_RESET | APPCPU_OCD_HALT_ON_RESET | RESET_FLAG_APPCPU_CLR | RESET_FLAG_PROCPU_CLR | |||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RESET_FLAG_APPCPU | RESET_FLAG_PROCPU | PROCPU_STAT_VECTOR_SEL | APPCPU_STAT_VECTOR_SEL | RESET_CAUSE_APPCPU | RESET_CAUSE_PROCPU | ||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_PRO_DRESET_MASK | 25 | R/W | 0 | |
| RTC_APP_DRESET_MASK | 24 | R/W | 0 | |
| RESET_FLAG_JTAG_APPCPU_CLR | 23 | WO | 0 | |
| RESET_FLAG_JTAG_PROCPU_CLR | 22 | WO | 0 | |
| RESET_FLAG_JTAG_APPCPU | 21 | RO | 0 | |
| RESET_FLAG_JTAG_PROCPU | 20 | RO | 0 | |
| PROCPU_OCD_HALT_ON_RESET | 19 | R/W | 0 | 1 — ядро 0 останавливается для отладчика после сброса |
| APPCPU_OCD_HALT_ON_RESET | 18 | R/W | 0 | 1 — ядро 1 останавливается для отладчика после сброса |
| RESET_FLAG_APPCPU_CLR | 17 | WO | 0 | |
| RESET_FLAG_PROCPU_CLR | 16 | WO | 0 | |
| RESET_FLAG_APPCPU | 15 | RO | 0 | |
| RESET_FLAG_PROCPU | 14 | RO | 0 | |
| PROCPU_STAT_VECTOR_SEL | 13 | R/W | 1 | Выбор вектора состояния ядра 0 после сброса |
| APPCPU_STAT_VECTOR_SEL | 12 | R/W | 1 | Выбор вектора состояния ядра 1 после сброса |
| RESET_CAUSE_APPCPU | 11:6 | RO | 0x00 | Причина последнего сброса ядра 1 |
| RESET_CAUSE_PROCPU | 5:0 | RO | 0x00 | Причина последнего сброса ядра 0 |
RTC_CNTL_WAKEUP_STATE_REG — источники пробуждения
Смещение 0x003C, адрес 0x6000 803C, после сброса 0x0006 0000. TRM: регистр 10.13 (RTC_CNTL_RTC_WAKEUP_STATE_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_WAKEUP_ENA | 31:15 | R/W | 0x0000C | Источники пробуждения: 0x1 EXT0, 0x2 EXT1, 0x4 GPIO, 0x8 RTC-таймер, 0x40 UART0, 0x80 UART1, 0x100 касание, 0x200 ULP-FSM, 0x800 ULP-RISC-V (таблица 10.4-3 TRM) |
RTC_CNTL_INT_ENA_REG — разрешение прерываний
Смещение 0x0040, адрес 0x6000 8040, после сброса 0x0000 0000. TRM: регистр 10.14.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TOUCH_APPROACH_LOOP_DONE_INT_ENA | 20 | R/W | 0 | Закончен цикл измерения приближения |
| RTC_GLITCH_DET_INT_ENA | 19 | R/W | 0 | Обнаружена помеха |
| RTC_TOUCH_TIMEOUT_INT_ENA | 18 | R/W | 0 | Таймаут сенсора касания |
| RTC_COCPU_TRAP_INT_ENA | 17 | R/W | 0 | Исключение в ULP-RISC-V |
| RTC_XTAL32K_DEAD_INT_ENA | 16 | R/W | 0 | Кварц 32 кГц перестал работать |
| RTC_SWD_INT_ENA | 15 | R/W | 0 | Прерывание супер-сторожа |
| RTC_SARADC2_INT_ENA | 14 | R/W | 0 | Прерывание SAR ADC2 |
| RTC_COCPU_INT_ENA | 13 | R/W | 0 | Прерывание ULP-RISC-V |
| RTC_TSENS_INT_ENA | 12 | R/W | 0 | Прерывание датчика температуры |
| RTC_SARADC1_INT_ENA | 11 | R/W | 0 | Прерывание SAR ADC1 |
| RTC_MAIN_TIMER_INT_ENA | 10 | R/W | 0 | Сработал будильник RTC-таймера |
| RTC_BROWN_OUT_INT_ENA | 9 | R/W | 0 | Детектор просадки питания |
| RTC_TOUCH_INACTIVE_INT_ENA | 8 | R/W | 0 | Касание прекратилось |
| RTC_TOUCH_ACTIVE_INT_ENA | 7 | R/W | 0 | Обнаружено касание |
| RTC_TOUCH_DONE_INT_ENA | 6 | R/W | 0 | Закончено измерение одного сенсора касания |
| RTC_ULP_CP_INT_ENA | 5 | R/W | 0 | Прерывание сопроцессора ULP |
| RTC_TOUCH_SCAN_DONE_INT_ENA | 4 | R/W | 0 | Закончено сканирование сенсоров касания |
| RTC_WDT_INT_ENA | 3 | R/W | 0 | Сработал RTC-сторож |
| SDIO_IDLE_INT_ENA | 2 | R/W | 0 | SDIO простаивает |
| 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: регистр 10.15.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TOUCH_APPROACH_LOOP_DONE_INT_RAW | 20 | R/W | 0 | Закончен цикл измерения приближения |
| RTC_GLITCH_DET_INT_RAW | 19 | RO | 0 | Обнаружена помеха |
| RTC_TOUCH_TIMEOUT_INT_RAW | 18 | RO | 0 | Таймаут сенсора касания |
| RTC_COCPU_TRAP_INT_RAW | 17 | RO | 0 | Исключение в ULP-RISC-V |
| RTC_XTAL32K_DEAD_INT_RAW | 16 | RO | 0 | Кварц 32 кГц перестал работать |
| RTC_SWD_INT_RAW | 15 | RO | 0 | Прерывание супер-сторожа |
| RTC_SARADC2_INT_RAW | 14 | RO | 0 | Прерывание SAR ADC2 |
| RTC_COCPU_INT_RAW | 13 | RO | 0 | Прерывание ULP-RISC-V |
| RTC_TSENS_INT_RAW | 12 | RO | 0 | Прерывание датчика температуры |
| RTC_SARADC1_INT_RAW | 11 | RO | 0 | Прерывание SAR ADC1 |
| RTC_MAIN_TIMER_INT_RAW | 10 | RO | 0 | Сработал будильник RTC-таймера |
| RTC_BROWN_OUT_INT_RAW | 9 | RO | 0 | Детектор просадки питания |
| RTC_TOUCH_INACTIVE_INT_RAW | 8 | RO | 0 | Касание прекратилось |
| RTC_TOUCH_ACTIVE_INT_RAW | 7 | RO | 0 | Обнаружено касание |
| RTC_TOUCH_DONE_INT_RAW | 6 | RO | 0 | Закончено измерение одного сенсора касания |
| RTC_ULP_CP_INT_RAW | 5 | RO | 0 | Прерывание сопроцессора ULP |
| RTC_TOUCH_SCAN_DONE_INT_RAW | 4 | RO | 0 | Закончено сканирование сенсоров касания |
| RTC_WDT_INT_RAW | 3 | RO | 0 | Сработал RTC-сторож |
| SDIO_IDLE_INT_RAW | 2 | RO | 0 | SDIO простаивает |
| 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: регистр 10.16.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TOUCH_APPROACH_LOOP_DONE_INT_ST | 20 | RO | 0 | Закончен цикл измерения приближения |
| RTC_GLITCH_DET_INT_ST | 19 | RO | 0 | Обнаружена помеха |
| RTC_TOUCH_TIMEOUT_INT_ST | 18 | RO | 0 | Таймаут сенсора касания |
| RTC_COCPU_TRAP_INT_ST | 17 | RO | 0 | Исключение в ULP-RISC-V |
| RTC_XTAL32K_DEAD_INT_ST | 16 | RO | 0 | Кварц 32 кГц перестал работать |
| RTC_SWD_INT_ST | 15 | RO | 0 | Прерывание супер-сторожа |
| RTC_SARADC2_INT_ST | 14 | RO | 0 | Прерывание SAR ADC2 |
| RTC_COCPU_INT_ST | 13 | RO | 0 | Прерывание ULP-RISC-V |
| RTC_TSENS_INT_ST | 12 | RO | 0 | Прерывание датчика температуры |
| RTC_SARADC1_INT_ST | 11 | RO | 0 | Прерывание SAR ADC1 |
| RTC_MAIN_TIMER_INT_ST | 10 | RO | 0 | Сработал будильник RTC-таймера |
| RTC_BROWN_OUT_INT_ST | 9 | RO | 0 | Детектор просадки питания |
| RTC_TOUCH_INACTIVE_INT_ST | 8 | RO | 0 | Касание прекратилось |
| RTC_TOUCH_ACTIVE_INT_ST | 7 | RO | 0 | Обнаружено касание |
| RTC_TOUCH_DONE_INT_ST | 6 | RO | 0 | Закончено измерение одного сенсора касания |
| RTC_ULP_CP_INT_ST | 5 | RO | 0 | Прерывание сопроцессора ULP |
| RTC_TOUCH_SCAN_DONE_INT_ST | 4 | RO | 0 | Закончено сканирование сенсоров касания |
| RTC_WDT_INT_ST | 3 | RO | 0 | Сработал RTC-сторож |
| SDIO_IDLE_INT_ST | 2 | RO | 0 | SDIO простаивает |
| 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: регистр 10.17.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TOUCH_APPROACH_LOOP_DONE_INT_CLR | 20 | WO | 0 | Закончен цикл измерения приближения |
| RTC_GLITCH_DET_INT_CLR | 19 | WO | 0 | Обнаружена помеха |
| RTC_TOUCH_TIMEOUT_INT_CLR | 18 | WO | 0 | Таймаут сенсора касания |
| RTC_COCPU_TRAP_INT_CLR | 17 | WO | 0 | Исключение в ULP-RISC-V |
| RTC_XTAL32K_DEAD_INT_CLR | 16 | WO | 0 | Кварц 32 кГц перестал работать |
| RTC_SWD_INT_CLR | 15 | WO | 0 | Прерывание супер-сторожа |
| RTC_SARADC2_INT_CLR | 14 | WO | 0 | Прерывание SAR ADC2 |
| RTC_COCPU_INT_CLR | 13 | WO | 0 | Прерывание ULP-RISC-V |
| RTC_TSENS_INT_CLR | 12 | WO | 0 | Прерывание датчика температуры |
| RTC_SARADC1_INT_CLR | 11 | WO | 0 | Прерывание SAR ADC1 |
| RTC_MAIN_TIMER_INT_CLR | 10 | WO | 0 | Сработал будильник RTC-таймера |
| RTC_BROWN_OUT_INT_CLR | 9 | WO | 0 | Детектор просадки питания |
| RTC_TOUCH_INACTIVE_INT_CLR | 8 | WO | 0 | Касание прекратилось |
| RTC_TOUCH_ACTIVE_INT_CLR | 7 | WO | 0 | Обнаружено касание |
| RTC_TOUCH_DONE_INT_CLR | 6 | WO | 0 | Закончено измерение одного сенсора касания |
| RTC_ULP_CP_INT_CLR | 5 | WO | 0 | Прерывание сопроцессора ULP |
| RTC_TOUCH_SCAN_DONE_INT_CLR | 4 | WO | 0 | Закончено сканирование сенсоров касания |
| RTC_WDT_INT_CLR | 3 | WO | 0 | Сработал RTC-сторож |
| SDIO_IDLE_INT_CLR | 2 | WO | 0 | SDIO простаивает |
| 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: регистр 10.18 (RTC_CNTL_RTC_STORE0_REG).
Восемь регистров лежат двумя группами: STORE0…3 по смещениям 0x50…0x5C и STORE4…7 по смещениям 0xC0…0xCC (раздел 10.2 TRM: 8 регистров по 32 бита).
| Копия | Смещение | Адрес |
|---|---|---|
| STORE0 | 0x0050 | 0x6000 8050 |
| STORE1 | 0x0054 | 0x6000 8054 |
| STORE2 | 0x0058 | 0x6000 8058 |
| STORE3 | 0x005C | 0x6000 805C |
| STORE4 | 0x00C0 | 0x6000 80C0 |
| STORE5 | 0x00C4 | 0x6000 80C4 |
| STORE6 | 0x00C8 | 0x6000 80C8 |
| STORE7 | 0x00CC | 0x6000 80CC |
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_SCRATCHn | 31:0 | R/W | 0x0000 0000 | 32 бита данных, которые сохраняются во сне |
RTC_CNTL_EXT_XTL_CONF_REG — кварц 32 кГц и его сторож
Смещение 0x0060, адрес 0x6000 8060, после сброса 0x0006 6C80. TRM: регистр 10.22 (RTC_CNTL_RTC_EXT_XTL_CONF_REG).
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| XTL_EXT_CTR_EN | 31 | R/W | 0 |
| XTL_EXT_CTR_LV | 30 | R/W | 0 |
| RTC_XTAL32K_GPIO_SEL | 23 | R/W | 0 |
| RTC_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 — уровни пробуждения EXT0 и EXT1, фильтр GPIO
Смещение 0x0064, адрес 0x6000 8064, после сброса 0x0000 0000. TRM: регистр 10.23 (RTC_CNTL_RTC_EXT_WAKEUP_CONF_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| EXT_WAKEUP1_LV | EXT_WAKEUP0_LV | GPIO_WAKEUP_FILTER | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| EXT_WAKEUP1_LV | 31 | R/W | 0 | EXT1: 1 — будит высокий уровень любого вывода набора, 0 — низкий |
| EXT_WAKEUP0_LV | 30 | R/W | 0 | Уровень пробуждения EXT0: 1 — высокий, 0 — низкий |
| GPIO_WAKEUP_FILTER | 29 | R/W | 0 | 1 — фильтр события пробуждения по GPIO |
RTC_CNTL_SLP_REJECT_CONF_REG — отказ от перехода в сон
Смещение 0x0068, адрес 0x6000 8068, после сброса 0x0000 0000. TRM: регистр 10.24 (RTC_CNTL_RTC_SLP_REJECT_CONF_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DEEP_SLP_REJECT_EN | LIGHT_SLP_REJECT_EN | RTC_SLEEP_REJECT_ENA | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RTC_SLEEP_REJECT_ENA | — | ||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| DEEP_SLP_REJECT_EN | 31 | R/W | 0 | 1 — разрешить отказ от глубокого сна |
| LIGHT_SLP_REJECT_EN | 30 | R/W | 0 | 1 — разрешить отказ от лёгкого сна |
| RTC_SLEEP_REJECT_ENA | 29:12 | R/W | 0x00000 | Источники, по которым чип отказывается засыпать |
RTC_CNTL_CLK_CONF_REG — выбор медленного и быстрого тактов RTC, RC_FAST_CLK
Смещение 0x0074, адрес 0x6000 8074, после сброса 0x1158 321C. TRM: регистр 10.25 (RTC_CNTL_RTC_CLK_CONF_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| ANA_CLK_RTC_SEL | 31:30 | R/W | 0x0 | Медленный такт RTC: 0 — RC_SLOW_CLK, 1 — XTAL32K_CLK, 2 — RC_FAST_DIV_CLK |
| FAST_CLK_RTC_SEL | 29 | R/W | 0 | Быстрый такт RTC: 0 — XTAL_DIV_CLK, 1 — RC_FAST_CLK с делителем |
| XTAL_GLOBAL_FORCE_NOGATING | 28 | R/W | 1 | |
| XTAL_GLOBAL_FORCE_GATING | 27 | R/W | 0 | |
| CK8M_FORCE_PU | 26 | R/W | 0 | 1 — принудительно включить RC_FAST_CLK |
| CK8M_FORCE_PD | 25 | R/W | 0 | 1 — принудительно выключить RC_FAST_CLK |
| CK8M_DFREQ | 24:17 | R/W | 0xAC | |
| CK8M_FORCE_NOGATING | 16 | R/W | 0 | |
| XTAL_FORCE_NOGATING | 15 | R/W | 0 | |
| CK8M_DIV_SEL | 14:12 | R/W | 0x3 | Делитель RC_FAST_CLK: значение + 1 |
| DIG_CLK8M_EN | 10 | R/W | 0 | 1 — такт RC_FAST_CLK для цифровой части |
| DIG_CLK8M_D256_EN | 9 | R/W | 1 | |
| DIG_XTAL32K_EN | 8 | R/W | 0 | 1 — такт кварца 32 кГц для цифровой части |
| ENB_CK8M_DIV | 7 | R/W | 0 | |
| ENB_CK8M | 6 | R/W | 0 | |
| CK8M_DIV | 5:4 | R/W | 0x1 | |
| CK8M_DIV_SEL_VLD | 3 | R/W | 1 | |
| EFUSE_CLK_FORCE_NOGATING | 2 | R/W | 1 | |
| EFUSE_CLK_FORCE_GATING | 1 | R/W | 0 |
RTC_CNTL_SLOW_CLK_CONF_REG — делитель RC_SLOW_CLK
Смещение 0x0078, адрес 0x6000 8078, после сброса 0x0040 0000. TRM: регистр 10.26 (RTC_CNTL_RTC_SLOW_CLK_CONF_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RTC_ANA_CLK_DIV | RTC_ANA_CLK_DIV_VLD | — | ||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RTC_ANA_CLK_DIV | 30:23 | R/W | 0x00 |
| RTC_ANA_CLK_DIV_VLD | 22 | R/W | 1 |
RTC_CNTL_SDIO_CONF_REG — регулятор питания флеш-памяти
Смещение 0x007C, адрес 0x6000 807C, после сброса 0x00A0 0000. TRM: регистр 10.27 (RTC_CNTL_RTC_SDIO_CONF_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| XPD_SDIO_REG | — | SDIO_TIEH | SDIO_FORCE | SDIO_REG_PD_EN | — | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| XPD_SDIO_REG | 31 | R/W | 0 |
| SDIO_TIEH | 23 | R/W | 1 |
| SDIO_FORCE | 22 | R/W | 0 |
| SDIO_REG_PD_EN | 21 | R/W | 1 |
RTC_CNTL_REG — регулятор RTC, частота тактов RTC
Смещение 0x0084, адрес 0x6000 8084, после сброса 0xA000 0000. TRM: регистр 10.28.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RTC_REGULATOR_FORCE_PU | RTC_REGULATOR_FORCE_PD | RTC_DBOOST_FORCE_PU | RTC_DBOOST_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 | — | ||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RTC_REGULATOR_FORCE_PU | 31 | R/W | 1 |
| RTC_REGULATOR_FORCE_PD | 30 | R/W | 0 |
| RTC_DBOOST_FORCE_PU | 29 | R/W | 1 |
| RTC_DBOOST_FORCE_PD | 28 | R/W | 0 |
| SCK_DCAP | 21:14 | R/W | 0x00 |
| DIG_REG_CAL_EN | 7 | R/W | 0 |
RTC_CNTL_PWC_REG — питание и изоляция RTC-периферии и памяти
Смещение 0x0088, адрес 0x6000 8088, после сброса 0x0000 0920. TRM: регистр 10.29 (RTC_CNTL_RTC_PWC_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | RTC_PAD_FORCE_HOLD | RTC_PD_EN | RTC_FORCE_PU | RTC_FORCE_PD | — | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | RTC_SLOWMEM_FORCE_LPU | RTC_SLOWMEM_FORCE_LPD | RTC_SLOWMEM_FOLW_CPU | RTC_FASTMEM_FORCE_LPU | RTC_FASTMEM_FORCE_LPD | RTC_FASTMEM_FOLW_CPU | RTC_FORCE_NOISO | RTC_FORCE_ISO | — | ||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RTC_PAD_FORCE_HOLD | 21 | R/W | 0 |
| RTC_PD_EN | 20 | R/W | 0 |
| RTC_FORCE_PU | 19 | R/W | 0 |
| RTC_FORCE_PD | 18 | R/W | 0 |
| RTC_SLOWMEM_FORCE_LPU | 11 | R/W | 1 |
| RTC_SLOWMEM_FORCE_LPD | 10 | R/W | 0 |
| RTC_SLOWMEM_FOLW_CPU | 9 | R/W | 0 |
| RTC_FASTMEM_FORCE_LPU | 8 | R/W | 1 |
| RTC_FASTMEM_FORCE_LPD | 7 | R/W | 0 |
| RTC_FASTMEM_FOLW_CPU | 6 | R/W | 0 |
| RTC_FORCE_NOISO | 5 | R/W | 1 |
| RTC_FORCE_ISO | 4 | R/W | 0 |
RTC_CNTL_DIG_PWC_REG — питание цифровых доменов во сне
Смещение 0x0090, адрес 0x6000 8090, после сброса 0x0054 4010. TRM: регистр 10.30.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DG_WRAP_PD_EN | WIFI_PD_EN | CPU_TOP_PD_EN | DG_PERI_PD_EN | — | CPU_TOP_FORCE_PU | CPU_TOP_FORCE_PD | DG_WRAP_FORCE_PU | DG_WRAP_FORCE_PD | WIFI_FORCE_PU | WIFI_FORCE_PD | — | ||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | DG_PERI_FORCE_PU | DG_PERI_FORCE_PD | — | LSLP_MEM_FORCE_PU | LSLP_MEM_FORCE_PD | — | |||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| 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 |
| 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 |
RTC_CNTL_DIG_ISO_REG — изоляция цифровых доменов, удержание цифровых выводов
Смещение 0x0094, адрес 0x6000 8094, после сброса 0xAA00 5000. TRM: регистр 10.31.
| 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-сторож: включение, действия стадий, режимы
Смещение 0x0098, адрес 0x6000 8098, после сброса 0x0001 3200. TRM: регистр 10.32 (RTC_CNTL_RTC_WDTCONFIG0_REG).
Значения после сброса стадий по SVD и TRM: WDTCONFIG1 = 200 000 тактов, WDTCONFIG2 = 80 000, WDTCONFIG3 и WDTCONFIG4 — 4095. Стадия 0 дополнительно растягивается полем EFUSE_WDT_DELAY_SEL.
| 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_APPCPU_RESET_EN | WDT_PAUSE_IN_SLP | — | ||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_EN | 31 | R/W | 0 | 1 — RTC-сторож включён |
| WDT_STG0 | 30:28 | R/W | 0x0 | Действие стадии 0: 1 — прерывание, 2 — сброс процессора, 3 — сброс основной системы, 4 — сброс системы вместе с RTC |
| WDT_STG1 | 27:25 | R/W | 0x0 | Действие стадии 1, значения как у WDT_STG0 |
| WDT_STG2 | 24:22 | R/W | 0x0 | Действие стадии 2, значения как у WDT_STG0 |
| WDT_STG3 | 21:19 | R/W | 0x0 | Действие стадии 3, значения как у WDT_STG0 |
| 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 | 1 — сторож включён на время загрузки из флеш-памяти |
| WDT_PROCPU_RESET_EN | 11 | R/W | 0 | 1 — сторож может сбросить ядро 0 |
| WDT_APPCPU_RESET_EN | 10 | R/W | 0 | 1 — сторож может сбросить ядро 1 |
| WDT_PAUSE_IN_SLP | 9 | R/W | 1 | 1 — сторож стоит во сне |
RTC_CNTL_WDTCONFIG1_REG — rTC-сторож: длительность стадии 0
Смещение 0x009C, адрес 0x6000 809C, после сброса 0x0003 0D40. TRM: регистр 10.33 (RTC_CNTL_RTC_WDTCONFIG1_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG0_HOLD | 31:0 | R/W | 0x0003 0D40 | Длительность стадии 0: по разделу 13.2.2.2 TRM T = WDT_STG0_HOLD << (EFUSE_WDT_DELAY_SEL + 1) тактов |
RTC_CNTL_WDTCONFIG2_REG — rTC-сторож: длительность стадии 1
Смещение 0x00A0, адрес 0x6000 80A0, после сброса 0x0001 3880. TRM: регистр 10.34 (RTC_CNTL_RTC_WDTCONFIG2_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG1_HOLD | 31:0 | R/W | 0x0001 3880 | Длительность стадии 1 в тактах RTC_SLOW_CLK |
RTC_CNTL_WDTCONFIG3_REG — rTC-сторож: длительность стадии 2
Смещение 0x00A4, адрес 0x6000 80A4, после сброса 0x0000 0FFF. TRM: регистр 10.35 (RTC_CNTL_RTC_WDTCONFIG3_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG2_HOLD | 31:0 | R/W | 0x0000 0FFF | Длительность стадии 2 в тактах RTC_SLOW_CLK |
RTC_CNTL_WDTCONFIG4_REG — rTC-сторож: длительность стадии 3
Смещение 0x00A8, адрес 0x6000 80A8, после сброса 0x0000 0FFF. TRM: регистр 10.36 (RTC_CNTL_RTC_WDTCONFIG4_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_STG3_HOLD | 31:0 | R/W | 0x0000 0FFF | Длительность стадии 3 в тактах RTC_SLOW_CLK |
RTC_CNTL_WDTFEED_REG — rTC-сторож: кормление
Смещение 0x00AC, адрес 0x6000 80AC, после сброса 0x0000 0000. TRM: регистр 10.37 (RTC_CNTL_RTC_WDTFEED_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_WDT_FEED | 31 | WO | 0 | Запись 1 кормит RTC-сторож |
RTC_CNTL_WDTWPROTECT_REG — rTC-сторож: защита записи
Смещение 0x00B0, адрес 0x6000 80B0, после сброса 0x50D8 3AA1. TRM: регистр 10.38 (RTC_CNTL_RTC_WDTWPROTECT_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WDT_WKEY | 31:0 | R/W | 0x50D8 3AA1 | Пока значение отличается от 0x50D83AA1, запись в регистры RWDT запрещена |
RTC_CNTL_SWD_CONF_REG — супер-сторож: кормление, отключение, флаги
Смещение 0x00B4, адрес 0x6000 80B4, после сброса 0x04B0 0000. TRM: регистр 10.39 (RTC_CNTL_RTC_SWD_CONF_REG).
| 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 | 1 — кормить супер-сторож автоматически по его прерыванию |
| SWD_DISABLE | 30 | R/W | 0 | 1 — выключить супер-сторож |
| SWD_FEED | 29 | WO | 0 | Запись 1 кормит супер-сторож |
| SWD_RST_FLAG_CLR | 28 | WO | 0 | Запись 1 сбрасывает флаг сброса от супер-сторожа |
| 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 — супер-сторож: защита записи
Смещение 0x00B8, адрес 0x6000 80B8, после сброса 0x8F1D 312A. TRM: регистр 10.40 (RTC_CNTL_RTC_SWD_WPROTECT_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SWD_WKEY | 31:0 | R/W | 0x8F1D 312A | Ключ защиты записи супер-сторожа; снимает защиту значение 0x8F1D312A |
RTC_CNTL_SW_CPU_STALL_REG — программная остановка ядер, вторая часть кода
Смещение 0x00BC, адрес 0x6000 80BC, после сброса 0x0000 0000. TRM: регистр 10.41 (RTC_CNTL_RTC_SW_CPU_STALL_REG).
В описании этого регистра TRM ядра названы наоборот (APPCPU_C1 — «CPU0»); в описании RTC_CNTL_RTC_OPTIONS0_REG APPCPU — ядро 1, PROCPU — ядро 0, как и в ESP-IDF.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SW_STALL_PROCPU_C1 | SW_STALL_APPCPU_C1 | — | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SW_STALL_PROCPU_C1 | 31:26 | R/W | 0x00 |
| SW_STALL_APPCPU_C1 | 25:20 | R/W | 0x00 |
RTC_CNTL_LOW_POWER_ST_REG — состояние RTC: сон или работа
Смещение 0x00D0, адрес 0x6000 80D0, после сброса 0x0000 0000. TRM: регистр 10.46 (RTC_CNTL_RTC_LOW_POWER_ST_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | MAIN_STATE_IN_IDEL | — | RTC_RDY_FOR_WAKEUP | — | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| MAIN_STATE_IN_IDEL | 27 | RO | 0 | 1 — чип работает, не во сне; 0 — спит, засыпает или просыпается (MAIN_STATE_IN_IDLE в TRM) |
| RTC_RDY_FOR_WAKEUP | 19 | RO | 0 | 1 — RTC готов принять событие пробуждения |
RTC_CNTL_PAD_HOLD_REG — удержание состояния RTC-выводов
Смещение 0x00D8, адрес 0x6000 80D8, после сброса 0x0000 0000. TRM: регистр 10.47 (RTC_CNTL_RTC_PAD_HOLD_REG).
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RTC_PAD21_HOLD | 21 | R/W | 0 |
| RTC_PAD20_HOLD | 20 | R/W | 0 |
| RTC_PAD19_HOLD | 19 | R/W | 0 |
| PDAC2_HOLD | 18 | R/W | 0 |
| PDAC1_HOLD | 17 | R/W | 0 |
| X32N_HOLD | 16 | R/W | 0 |
| X32P_HOLD | 15 | R/W | 0 |
| TOUCH_PAD14_HOLD | 14 | R/W | 0 |
| TOUCH_PAD13_HOLD | 13 | R/W | 0 |
| TOUCH_PAD12_HOLD | 12 | R/W | 0 |
| TOUCH_PAD11_HOLD | 11 | R/W | 0 |
| TOUCH_PAD10_HOLD | 10 | R/W | 0 |
| TOUCH_PAD9_HOLD | 9 | R/W | 0 |
| TOUCH_PAD8_HOLD | 8 | R/W | 0 |
| TOUCH_PAD7_HOLD | 7 | R/W | 0 |
| TOUCH_PAD6_HOLD | 6 | R/W | 0 |
| TOUCH_PAD5_HOLD | 5 | R/W | 0 |
| TOUCH_PAD4_HOLD | 4 | R/W | 0 |
| TOUCH_PAD3_HOLD | 3 | R/W | 0 |
| TOUCH_PAD2_HOLD | 2 | R/W | 0 |
| TOUCH_PAD1_HOLD | 1 | R/W | 0 |
| TOUCH_PAD0_HOLD | 0 | R/W | 0 |
RTC_CNTL_DIG_PAD_HOLD_REG — удержание состояния цифровых выводов
Смещение 0x00DC, адрес 0x6000 80DC, после сброса 0x0000 0000. TRM: регистр 10.48.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DIG_PAD_HOLD | 31:0 | R/W | 0x0000 0000 |
RTC_CNTL_EXT_WAKEUP1_REG — выводы источника пробуждения EXT1
Смещение 0x00E0, адрес 0x6000 80E0, после сброса 0x0000 0000. TRM: регистр 10.49 (RTC_CNTL_RTC_EXT_WAKEUP1_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | EXT_WAKEUP1_STATUS_CLR | EXT_WAKEUP1_SEL | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| EXT_WAKEUP1_SEL | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| EXT_WAKEUP1_STATUS_CLR | 22 | WO | 0 | Запись 1 сбрасывает EXT_WAKEUP1_STATUS |
| EXT_WAKEUP1_SEL | 21:0 | R/W | 0x000000 | Битовая карта RTC-выводов источника EXT1 |
RTC_CNTL_EXT_WAKEUP1_STATUS_REG — какие выводы EXT1 разбудили чип
Смещение 0x00E4, адрес 0x6000 80E4, после сброса 0x0000 0000. TRM: регистр 10.50 (RTC_CNTL_RTC_EXT_WAKEUP1_STATUS_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| EXT_WAKEUP1_STATUS | 21:0 | RO | 0x000000 | Выводы EXT1, вызвавшие пробуждение |
RTC_CNTL_BROWN_OUT_REG — детектор просадки питания
Смещение 0x00E8, адрес 0x6000 80E8, после сброса 0x43FF 0010. TRM: регистр 10.51 (RTC_CNTL_RTC_BROWN_OUT_REG).
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RTC_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 | — | ||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_BROWN_OUT_DET | 31 | RO | 0 | 1 — напряжение ниже порога детектора |
| BROWN_OUT_ENA | 30 | R/W | 1 | 1 — детектор просадки включён (режим 0) |
| BROWN_OUT_CNT_CLR | 29 | WO | 0 | Запись 1 сбрасывает счётчик детектора |
| BROWN_OUT_ANA_RST_EN | 28 | R/W | 0 | 1 — сброс прямо от детектора (режим 1) |
| BROWN_OUT_RST_SEL | 27 | R/W | 0 | Тип сброса при просадке; описание поля в TRM (1 — сброс чипа, 0 — сброс системы) противоречит разделу 10.3.4.4 (0 — чипа, 1 — системы) |
| BROWN_OUT_RST_ENA | 26 | R/W | 0 | 1 — сбрасывать при просадке |
| BROWN_OUT_RST_WAIT | 25:16 | R/W | 0x3FF | Задержка перед сбросом после просадки |
| BROWN_OUT_PD_RF_ENA | 15 | R/W | 0 | 1 — выключать радиочасть при просадке |
| BROWN_OUT_CLOSE_FLASH_ENA | 14 | R/W | 0 | 1 — выключать флеш-память при просадке |
| BROWN_OUT_INT_WAIT | 13:4 | R/W | 0x001 | Задержка перед прерыванием после просадки |
RTC_CNTL_XTAL32K_CLK_FACTOR_REG — коэффициент делителя для кварца 32 кГц
Смещение 0x00F4, адрес 0x6000 80F4, после сброса 0x0000 0000. TRM: регистр 10.54 (RTC_CNTL_RTC_XTAL32K_CLK_FACTOR_REG).
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| XTAL32K_CLK_FACTOR | 31:0 | R/W | 0x0000 0000 |
RTC_CNTL_XTAL32K_CONF_REG — сторож кварца 32 кГц: таймауты и пороги
Смещение 0x00F8, адрес 0x6000 80F8, после сброса 0x0FF0 0000. TRM: регистр 10.55 (RTC_CNTL_RTC_XTAL32K_CONF_REG).
| 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 — внутренний USB PHY: выбор контроллера, подтяжки, пороги
Смещение 0x0120, адрес 0x6000 8120, после сброса 0x0000 0000. TRM: регистр 10.56 (RTC_CNTL_RTC_USB_CONF_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SW_HW_USB_PHY_SEL | 20 | R/W | 0 | 1 — выбор контроллера для USB PHY задаёт SW_USB_PHY_SEL, 0 — eFuse |
| SW_USB_PHY_SEL | 19 | R/W | 0 | 1 — внутренний PHY у USB OTG, 0 — у USB Serial/JTAG |
| IO_MUX_RESET_DISABLE | 18 | R/W | 0 | |
| USB_RESET_DISABLE | 17 | R/W | 0 | |
| USB_TX_EN_OVERRIDE | 16 | R/W | 0 | |
| USB_TX_EN | 15 | R/W | 0 | |
| USB_TXP | 14 | R/W | 0 | |
| USB_TXM | 13 | R/W | 0 | |
| USB_PAD_ENABLE | 12 | R/W | 0 | |
| USB_PAD_ENABLE_OVERRIDE | 11 | R/W | 0 | |
| USB_PULLUP_VALUE | 10 | R/W | 0 | Подтяжка: 0 — около 2,4 кОм, 1 — около 1,2 кОм (в главе 33 TRM — 2,2 и 1,1 кОм) |
| USB_DM_PULLDOWN | 9 | R/W | 0 | |
| USB_DM_PULLUP | 8 | R/W | 0 | |
| USB_DP_PULLDOWN | 7 | R/W | 0 | |
| USB_DP_PULLUP | 6 | R/W | 0 | |
| USB_PAD_PULL_OVERRIDE | 5 | R/W | 0 | |
| USB_VREF_OVERRIDE | 4 | R/W | 0 | |
| USB_VREFL | 3:2 | R/W | 0x0 | Нижний порог одиночного входа 0,8…1,04 В с шагом 80 мВ (при USB_VREF_OVERRIDE) |
| USB_VREFH | 1:0 | R/W | 0x0 | Верхний порог одиночного входа 1,76…2 В с шагом 80 мВ (при USB_VREF_OVERRIDE) |
RTC_CNTL_SLP_REJECT_CAUSE_REG — причина отказа от сна
Смещение 0x0128, адрес 0x6000 8128, после сброса 0x0000 0000. TRM: регистр 10.57 (RTC_CNTL_RTC_SLP_REJECT_CAUSE_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| REJECT_CAUSE | 17:0 | RO | 0x00000 | Причина отказа от сна |
RTC_CNTL_OPTION1_REG — принудительный вход в режим загрузки
Смещение 0x012C, адрес 0x6000 812C, после сброса 0x0000 0000. TRM: регистр 10.58 (RTC_CNTL_RTC_OPTION1_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| FORCE_DOWNLOAD_BOOT | 0 | R/W | 0 | 1 — после сброса войти в режим загрузки |
RTC_CNTL_SLP_WAKEUP_CAUSE_REG — причина пробуждения
Смещение 0x0130, адрес 0x6000 8130, после сброса 0x0000 0000. TRM: регистр 10.59 (RTC_CNTL_RTC_SLP_WAKEUP_CAUSE_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WAKEUP_CAUSE | 16:0 | RO | 0x00000 | Причина пробуждения, биты как в RTC_WAKEUP_ENA |
RTC_CNTL_INT_ENA_W1TS_REG — разрешение прерываний: запись 1 включает бит
Смещение 0x0138, адрес 0x6000 8138, после сброса 0x0000 0000. TRM: регистр 10.60.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TOUCH_APPROACH_LOOP_DONE_INT_ENA_W1TS | 20 | WO | 0 | Закончен цикл измерения приближения |
| RTC_GLITCH_DET_INT_ENA_W1TS | 19 | WO | 0 | Обнаружена помеха |
| RTC_TOUCH_TIMEOUT_INT_ENA_W1TS | 18 | WO | 0 | Таймаут сенсора касания |
| RTC_COCPU_TRAP_INT_ENA_W1TS | 17 | WO | 0 | Исключение в ULP-RISC-V |
| RTC_XTAL32K_DEAD_INT_ENA_W1TS | 16 | WO | 0 | Кварц 32 кГц перестал работать |
| RTC_SWD_INT_ENA_W1TS | 15 | WO | 0 | Прерывание супер-сторожа |
| RTC_SARADC2_INT_ENA_W1TS | 14 | WO | 0 | Прерывание SAR ADC2 |
| RTC_COCPU_INT_ENA_W1TS | 13 | WO | 0 | Прерывание ULP-RISC-V |
| RTC_TSENS_INT_ENA_W1TS | 12 | WO | 0 | Прерывание датчика температуры |
| RTC_SARADC1_INT_ENA_W1TS | 11 | WO | 0 | Прерывание SAR ADC1 |
| RTC_MAIN_TIMER_INT_ENA_W1TS | 10 | WO | 0 | Сработал будильник RTC-таймера |
| RTC_BROWN_OUT_INT_ENA_W1TS | 9 | WO | 0 | Детектор просадки питания |
| RTC_TOUCH_INACTIVE_INT_ENA_W1TS | 8 | WO | 0 | Касание прекратилось |
| RTC_TOUCH_ACTIVE_INT_ENA_W1TS | 7 | WO | 0 | Обнаружено касание |
| RTC_TOUCH_DONE_INT_ENA_W1TS | 6 | WO | 0 | Закончено измерение одного сенсора касания |
| RTC_ULP_CP_INT_ENA_W1TS | 5 | WO | 0 | Прерывание сопроцессора ULP |
| RTC_TOUCH_SCAN_DONE_INT_ENA_W1TS | 4 | WO | 0 | Закончено сканирование сенсоров касания |
| RTC_WDT_INT_ENA_W1TS | 3 | WO | 0 | Сработал RTC-сторож |
| SDIO_IDLE_INT_ENA_W1TS | 2 | WO | 0 | SDIO простаивает |
| SLP_REJECT_INT_ENA_W1TS | 1 | WO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_ENA_W1TS | 0 | WO | 0 | Чип проснулся |
RTC_CNTL_INT_ENA_W1TC_REG — разрешение прерываний: запись 1 выключает бит
Смещение 0x013C, адрес 0x6000 813C, после сброса 0x0000 0000. TRM: регистр 10.61.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_TOUCH_APPROACH_LOOP_DONE_INT_ENA_W1TC | 20 | WO | 0 | Закончен цикл измерения приближения |
| RTC_GLITCH_DET_INT_ENA_W1TC | 19 | WO | 0 | Обнаружена помеха |
| RTC_TOUCH_TIMEOUT_INT_ENA_W1TC | 18 | WO | 0 | Таймаут сенсора касания |
| RTC_COCPU_TRAP_INT_ENA_W1TC | 17 | WO | 0 | Исключение в ULP-RISC-V |
| RTC_XTAL32K_DEAD_INT_ENA_W1TC | 16 | WO | 0 | Кварц 32 кГц перестал работать |
| RTC_SWD_INT_ENA_W1TC | 15 | WO | 0 | Прерывание супер-сторожа |
| RTC_SARADC2_INT_ENA_W1TC | 14 | WO | 0 | Прерывание SAR ADC2 |
| RTC_COCPU_INT_ENA_W1TC | 13 | WO | 0 | Прерывание ULP-RISC-V |
| RTC_TSENS_INT_ENA_W1TC | 12 | WO | 0 | Прерывание датчика температуры |
| RTC_SARADC1_INT_ENA_W1TC | 11 | WO | 0 | Прерывание SAR ADC1 |
| RTC_MAIN_TIMER_INT_ENA_W1TC | 10 | WO | 0 | Сработал будильник RTC-таймера |
| RTC_BROWN_OUT_INT_ENA_W1TC | 9 | WO | 0 | Детектор просадки питания |
| RTC_TOUCH_INACTIVE_INT_ENA_W1TC | 8 | WO | 0 | Касание прекратилось |
| RTC_TOUCH_ACTIVE_INT_ENA_W1TC | 7 | WO | 0 | Обнаружено касание |
| RTC_TOUCH_DONE_INT_ENA_W1TC | 6 | WO | 0 | Закончено измерение одного сенсора касания |
| RTC_ULP_CP_INT_ENA_W1TC | 5 | WO | 0 | Прерывание сопроцессора ULP |
| RTC_TOUCH_SCAN_DONE_INT_ENA_W1TC | 4 | WO | 0 | Закончено сканирование сенсоров касания |
| RTC_WDT_INT_ENA_W1TC | 3 | WO | 0 | Сработал RTC-сторож |
| SDIO_IDLE_INT_ENA_W1TC | 2 | WO | 0 | SDIO простаивает |
| SLP_REJECT_INT_ENA_W1TC | 1 | WO | 0 | Переход в сон отклонён |
| SLP_WAKEUP_INT_ENA_W1TC | 0 | WO | 0 | Чип проснулся |
RTC_CNTL_RETENTION_CTRL_REG — сохранение состояния процессора и кэша во сне
Смещение 0x0140, адрес 0x6000 8140, после сброса 0x2834 0000. TRM: регистр 10.62.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| RETENTION_WAIT | RETENTION_EN | RETENTION_CLKOFF_WAIT | RETENTION_DONE_WAIT | — | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RETENTION_TARGET | — | ||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RETENTION_WAIT | 31:25 | R/W | 0x14 |
| RETENTION_EN | 24 | R/W | 0 |
| RETENTION_CLKOFF_WAIT | 23:20 | R/W | 0x3 |
| RETENTION_DONE_WAIT | 19:17 | R/W | 0x2 |
| RETENTION_TARGET | 15:14 | R/W | 0x0 |
RTC_CNTL_FIB_SEL_REG — настройка детектора просадки питания
Смещение 0x0148, адрес 0x6000 8148, после сброса 0x0000 0007. TRM: регистр 10.63 (RTC_CNTL_RTC_FIB_SEL_REG).
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| RTC_FIB_SEL | 2:0 | R/W | 0x7 | Настройка детектора просадки; бит 0 — выбор режима 1 (bod_mode1_sel) |
Частые вопросы
Какие значения RTC_WAKEUP_ENA выбирают источник пробуждения ESP32-S3?
По таблице 10.4-3 TRM значения поля: 0x1 — EXT0, 0x2 — EXT1, 0x4 — GPIO, 0x8 — RTC-таймер, 0x20 — Wi-Fi, 0x40 — UART0, 0x80 — UART1, 0x100 — касание, 0x200 — ULP-FSM, 0x400 — Bluetooth, 0x800 — ULP-RISC-V. Wi-Fi, Bluetooth и UART будят только из лёгкого сна; в глубоком сне из выводов работают только RTC GPIO.
Как отключить RTC-сторож RWDT ESP32-S3 после загрузки?
Во время загрузки из флеш-памяти RWDT включается автоматически, со сбросом системы на стадии 0. Чтобы его выключить: записать 0x50D83AA1 в RTC_CNTL_RTC_WDTWPROTECT_REG, сбросить WDT_FLASHBOOT_MOD_EN и WDT_EN в RTC_CNTL_RTC_WDTCONFIG0_REG и записать в WDTWPROTECT любое другое значение (раздел 13.2.2 TRM).
Источники
- Espressif. ESP32-S3 Technical Reference Manual, версия 1.8 — глава 10: таблица Register Summary и рисунки регистров — смещения, поля, тип доступа и значения после сброса
- Espressif. SVD svd/esp32s3.svd, версия 21 (espressif/svd, коммит be20aa1) — базовые адреса периферии, список регистров и полей; лицензия Apache-2.0
- Espressif. ESP-IDF v6.1: заголовки components/soc/esp32s3/register/soc/*_reg.h (коммит fff9895) — имена макросов регистров и полей, сверка положения полей и значений по умолчанию; лицензия Apache-2.0 OR MIT
Нашли ошибку в регистрах?
Другие регистры ESP32-S3
- Все регистры ESP32-S3Блоки периферии и базовые адреса
- GPIO — выводы общего назначения и матрица GPIOGPIO_BT_SELECT_REG, GPIO_OUT_REG, GPIO_OUT_W1TS_REG, GPIO_OUT_W1TC_REG
- IO MUX — мультиплексор функций и электрические настройки выводовPIN_CTRL, IO_MUX_GPIOn_REG
- UART — универсальный асинхронный приёмопередатчикUART_FIFO_REG, UART_INT_RAW_REG, UART_INT_ST_REG, UART_INT_ENA_REG
- SPI — контроллеры SPI общего назначения GP-SPI2 и GP-SPI3SPI_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_TnCONFIG_REG, TIMG_TnLO_REG, TIMG_TnHI_REG, TIMG_TnUPDATE_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
- APB_SARADC — цифровой контроллер АЦПAPB_SARADC_CTRL_REG, APB_SARADC_CTRL2_REG, APB_SARADC_FILTER_CTRL1_REG, APB_SARADC_SAR1_PATT_TABn_REG
- SENS — RTC-контроллеры АЦП, датчиков касания и температурыSENS_SAR_READER1_CTRL_REG, SENS_SAR_MEAS1_CTRL2_REG, SENS_SAR_MEAS1_MUX_REG, SENS_SAR_ATTENn_REG
- USB Serial/JTAG — встроенный USB-переходник на последовательный порт и 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_MAC_INTR_MAP_REG, INTERRUPT_CORE0_MAC_NMI_MAP_REG, INTERRUPT_CORE0_PWR_INTR_MAP_REG, INTERRUPT_CORE0_BB_INT_MAP_REG
Статьи, инструменты и термины
- Глубокий сон ESP32Режимы сна, токи, пробуждение по таймеру и выводам, RTC-память, расчёт батареи
- Ток ESP32 во снеDeep-sleep и light-sleep по даташитам, средний ток, Wi-Fi, батарея
- Сторожевой таймерWatchdog: сброс МК при зависании программы
- Детектор пониженного питанияBrown-out detector: сброс МК при просадке питания