Перейти к содержанию

Регистры RTC_CNTL ESP32-C3

Регистры RTC_CNTL ESP32-C3: переход в лёгкий и глубокий сон, источники пробуждения и причины отказа от сна, 48-битный RTC-таймер, сторожевые таймеры RWDT и SWD, детектор просадки питания, причина последнего сброса и восемь регистров, которые сохраняются в глубоком сне.

Блок 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_CNTL0x6000 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_REG0x0000Программный сброс, остановка ядра, питание генераторов0x0000 2000
RTC_CNTL_SLP_TIMER0_REG0x0004Будильник RTC-таймера, младшие 32 бита0x0000 0000
RTC_CNTL_SLP_TIMER1_REG0x0008Будильник RTC-таймера, старшие 16 бит и включение0x0000 0000
RTC_CNTL_TIME_UPDATE_REG0x000CЗащёлкнуть значение RTC-таймера0x0000 0000
RTC_CNTL_TIME_LOWn_REG0x0010 + n · 0x00CCЗащёлкнутое значение RTC-таймера n, младшие 32 бита0x0000 0000
RTC_CNTL_TIME_HIGHn_REG0x0014 + n · 0x00CCЗащёлкнутое значение RTC-таймера n, старшие 16 бит0x0000 0000
RTC_CNTL_STATE0_REG0x0018Вход в сон и программное прерывание0x0000 0000
RTC_CNTL_TIMER1_REG0x001CОжидание стабилизации генераторов0x2814 0403
RTC_CNTL_TIMER2_REG0x0020Минимальное время выключения RC-генератора0x0100 0000
RTC_CNTL_TIMER5_REG0x002CМинимальная длительность сна0x0000 8000
RTC_CNTL_ANA_CONF_REG0x0034Питание аналоговых узлов0x0044 0000
RTC_CNTL_RESET_STATE_REG0x0038Причина сброса и флаги JTAG0x0000 2000
RTC_CNTL_WAKEUP_STATE_REG0x003CИсточники пробуждения0x0006 0000
RTC_CNTL_INT_ENA_REG0x0040Разрешение прерываний0x0000 0000
RTC_CNTL_INT_RAW_REG0x0044Необработанные флаги прерываний0x0000 0000
RTC_CNTL_INT_ST_REG0x0048Флаги прерываний после маски разрешения0x0000 0000
RTC_CNTL_INT_CLR_REG0x004CСброс флагов прерываний записью 10x0000 0000
RTC_CNTL_STOREn_REGпо выводуРегистр n, сохраняемый в глубоком сне0x0000 0000
RTC_CNTL_EXT_XTL_CONF_REG0x0060Кварц 32 кГц и его сторож0x0006 6C80
RTC_CNTL_EXT_WAKEUP_CONF_REG0x0064Фильтр пробуждения по выводам0x0000 0000
RTC_CNTL_SLP_REJECT_CONF_REG0x0068Причины отказа от сна0x0000 0000
RTC_CNTL_CLK_CONF_REG0x0070Источники и делители медленных тактов0x1158 3218
RTC_CNTL_SLOW_CLK_CONF_REG0x0074Делитель медленного такта0x0040 0000
RTC_CNTL_REG0x0080Стабилизатор и калибровка0x8000 0000
RTC_CNTL_PWC_REG0x0084Удержание выводов0x0000 0000
RTC_CNTL_DIG_PWC_REG0x0088Выключение цифровых доменов во сне0x0055 4010
RTC_CNTL_DIG_ISO_REG0x008CИзоляция цифровых доменов и удержание выводов0xAA00 5000
RTC_CNTL_WDTCONFIG0_REG0x0090RTC-сторож: включение и действия стадий0x0001 3200
RTC_CNTL_WDTCONFIG1_REG0x0094RTC-сторож: длительность стадии 00x0003 0D40
RTC_CNTL_WDTCONFIG2_REG0x0098RTC-сторож: длительность стадии 10x0001 3880
RTC_CNTL_WDTCONFIG3_REG0x009CRTC-сторож: длительность стадии 20x0000 0FFF
RTC_CNTL_WDTCONFIG4_REG0x00A0RTC-сторож: длительность стадии 30x0000 0FFF
RTC_CNTL_WDTFEED_REG0x00A4RTC-сторож: кормление0x0000 0000
RTC_CNTL_WDTWPROTECT_REG0x00A8RTC-сторож: защита записи0x0000 0000
RTC_CNTL_SWD_CONF_REG0x00ACСупер-сторож: кормление и выключение0x04B0 0000
RTC_CNTL_SWD_WPROTECT_REG0x00B0Супер-сторож: защита записи0x0000 0000
RTC_CNTL_SW_CPU_STALL_REG0x00B4Программная остановка ядра0x0000 0000
RTC_CNTL_LOW_POWER_ST_REG0x00C8Состояние автомата питания0x0000 0000
RTC_CNTL_PAD_HOLD_REG0x00D0Удержание состояния выводов GPIO0…50x0000 0000
RTC_CNTL_DIG_PAD_HOLD_REG0x00D4Удержание цифровых выводов0x0000 0000
RTC_CNTL_BROWN_OUT_REG0x00D8Детектор просадки питания0x43FF 0010
RTC_CNTL_XTAL32K_CLK_FACTOR_REG0x00E4Множитель резервного такта при отказе кварца 32 кГц0x0000 0000
RTC_CNTL_XTAL32K_CONF_REG0x00E8Сторож кварца 32 кГц: пороги и ожидания0x0FF0 0000
RTC_CNTL_USB_CONF_REG0x00ECСброс IO MUX выводов USB0x0000 0000
RTC_CNTL_SLP_REJECT_CAUSE_REG0x00F0Причина отказа от сна0x0000 0000
RTC_CNTL_OPTION1_REG0x00F4Принудительная загрузка в режим прошивки0x0000 0000
RTC_CNTL_SLP_WAKEUP_CAUSE_REG0x00F8Причина последнего пробуждения0x0000 0000
RTC_CNTL_INT_ENA_W1TS_REG0x0100Разрешение прерываний: запись 1 включает бит0x0000 0000
RTC_CNTL_INT_ENA_W1TC_REG0x0104Разрешение прерываний: запись 1 выключает бит0x0000 0000
RTC_CNTL_RETENTION_CTRL_REG0x0108Сохранение состояния ядра во сне0x0000 0000
RTC_CNTL_GPIO_WAKEUP_REG0x0110Пробуждение по выводам GPIO0…50x0000 0000
RTC_CNTL_SENSOR_CTRL_REG0x011CПитание 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.

31302928272625242322212019181716
SW_SYS_RSTDG_WRAP_FORCE_NORSTDG_WRAP_FORCE_RST—
1514131211109876543210
—XTL_FORCE_PUXTL_FORCE_PDBBPLL_FORCE_PUBBPLL_FORCE_PDBBPLL_I2C_FORCE_PUBBPLL_I2C_FORCE_PDBB_I2C_FORCE_PUBB_I2C_FORCE_PDSW_PROCPU_RST—SW_STALL_PROCPU_C0—
ПолеБитыДоступСбросНазначение
SW_SYS_RST31WO0Запись 1 сбрасывает систему, включая цифровое ядро
DG_WRAP_FORCE_NORST30R/W0
DG_WRAP_FORCE_RST29R/W0
XTL_FORCE_PU13R/W1
XTL_FORCE_PD12R/W0
BBPLL_FORCE_PU11R/W0
BBPLL_FORCE_PD10R/W0
BBPLL_I2C_FORCE_PU9R/W0
BBPLL_I2C_FORCE_PD8R/W0
BB_I2C_FORCE_PU7R/W0
BB_I2C_FORCE_PD6R/W0
SW_PROCPU_RST5WO0Запись 1 сбрасывает ядро
SW_STALL_PROCPU_C03:2R/W0x0Вместе с SW_STALL_PROCPU_C1 = 0x21 и 0x2 останавливает ядро

RTC_CNTL_SLP_TIMER0_REG — будильник RTC-таймера, младшие 32 бита

Смещение 0x0004, адрес 0x6000 8004, после сброса 0x0000 0000. TRM: регистр 9.2.

ПолеБитыДоступСбросНазначение
SLP_VAL_LO31:0R/W0x0000 0000Будильник RTC-таймера, младшие 32 бита

RTC_CNTL_SLP_TIMER1_REG — будильник RTC-таймера, старшие 16 бит и включение

Смещение 0x0008, адрес 0x6000 8008, после сброса 0x0000 0000. TRM: регистр 9.3.

31302928272625242322212019181716
—MAIN_TIMER_ALARM_EN
1514131211109876543210
SLP_VAL_HI
ПолеБитыДоступСбросНазначение
MAIN_TIMER_ALARM_EN16WO0Включить будильник RTC-таймера
SLP_VAL_HI15:0R/W0x0000Будильник RTC-таймера, старшие 16 бит

RTC_CNTL_TIME_UPDATE_REG — защёлкнуть значение RTC-таймера

Смещение 0x000C, адрес 0x6000 800C, после сброса 0x0000 0000. TRM: регистр 9.4.

31302928272625242322212019181716
TIME_UPDATE—TIMER_SYS_RSTTIMER_XTL_OFFTIMER_SYS_STALL—
1514131211109876543210
—
ПолеБитыДоступСбросНазначение
TIME_UPDATE31WO0Запись 1 защёлкивает RTC-таймер в TIME_LOW0 и TIME_HIGH0
TIMER_SYS_RST29R/W0
TIMER_XTL_OFF28R/W0
TIMER_SYS_STALL27R/W0

RTC_CNTL_TIME_LOWn_REG — защёлкнутое значение RTC-таймера n, младшие 32 бита

2 копии, n = 0, 1: смещение 0x0010 + n · 0x00CC, после сброса 0x0000 0000. TRM: регистр 9.5.

ПолеБитыДоступСброс
TIMER_VALUEn_LOW31:0RO0x0000 0000

RTC_CNTL_TIME_HIGHn_REG — защёлкнутое значение RTC-таймера n, старшие 16 бит

2 копии, n = 0, 1: смещение 0x0014 + n · 0x00CC, после сброса 0x0000 0000. TRM: регистр 9.6.

ПолеБитыДоступСброс
TIMER_VALUEn_HIGH15:0RO0x0000

RTC_CNTL_STATE0_REG — вход в сон и программное прерывание

Смещение 0x0018, адрес 0x6000 8018, после сброса 0x0000 0000. TRM: регистр 9.7.

31302928272625242322212019181716
SLEEP_ENSLP_REJECTSLP_WAKEUP—APB2RTC_BRIDGE_SEL—
1514131211109876543210
—SLP_REJECT_CAUSE_CLRSW_CPU_INT
ПолеБитыДоступСбросНазначение
SLEEP_EN31R/W0Запись 1 переводит чип в сон
SLP_REJECT30R/W0Сон отклонён
SLP_WAKEUP29R/W0Чип проснулся
APB2RTC_BRIDGE_SEL22R/W0
SLP_REJECT_CAUSE_CLR1WO0
SW_CPU_INT0WO0Запись 1 вызывает программное прерывание RTC

RTC_CNTL_TIMER1_REG — ожидание стабилизации генераторов

Смещение 0x001C, адрес 0x6000 801C, после сброса 0x2814 0403. TRM: регистр 9.8.

31302928272625242322212019181716
PLL_BUF_WAITXTL_BUF_WAIT
1514131211109876543210
XTL_BUF_WAITFOSC_WAITCPU_STALL_WAITCPU_STALL_EN
ПолеБитыДоступСброс
PLL_BUF_WAIT31:24R/W0x28
XTL_BUF_WAIT23:14R/W0x050
FOSC_WAIT13:6R/W0x10
CPU_STALL_WAIT5:1R/W0x01
CPU_STALL_EN0R/W1

RTC_CNTL_TIMER2_REG — минимальное время выключения RC-генератора

Смещение 0x0020, адрес 0x6000 8020, после сброса 0x0100 0000. TRM: регистр 9.9.

ПолеБитыДоступСброс
MIN_TIME_FOSC_OFF31:24R/W0x01

RTC_CNTL_TIMER5_REG — минимальная длительность сна

Смещение 0x002C, адрес 0x6000 802C, после сброса 0x0000 8000. TRM: регистр 9.10.

ПолеБитыДоступСброс
MIN_SLP_VAL15:8R/W0x80

RTC_CNTL_ANA_CONF_REG — питание аналоговых узлов

Смещение 0x0034, адрес 0x6000 8034, после сброса 0x0044 0000. TRM: регистр 9.11.

31302928272625242322212019181716
PLL_I2C_PUCKGEN_I2C_PU—RFRX_PBUS_PUTXRF_I2C_PU—SAR_I2C_PU—GLITCH_RST_ENRESET_POR_FORCE_PURESET_POR_FORCE_PD—
1514131211109876543210
—
ПолеБитыДоступСброс
PLL_I2C_PU31R/W0
CKGEN_I2C_PU30R/W0
RFRX_PBUS_PU28R/W0
TXRF_I2C_PU27R/W0
SAR_I2C_PU22R/W1
GLITCH_RST_EN20R/W0
RESET_POR_FORCE_PU19R/W0
RESET_POR_FORCE_PD18R/W1

RTC_CNTL_RESET_STATE_REG — причина сброса и флаги JTAG

Смещение 0x0038, адрес 0x6000 8038, после сброса 0x0000 2000. TRM: регистр 9.12.

31302928272625242322212019181716
—DRESET_MASK_PROCPU—JTAG_RESET_FLAG_CLR_PROCPU—JTAG_RESET_FLAG_PROCPUOCD_HALT_ON_RESET_PROCPU—ALL_RESET_FLAG_CLR_PROCPU
1514131211109876543210
—ALL_RESET_FLAG_PROCPUSTAT_VECTOR_SEL_PROCPU—RESET_CAUSE_PROCPU
ПолеБитыДоступСбросНазначение
DRESET_MASK_PROCPU25R/W0
JTAG_RESET_FLAG_CLR_PROCPU22WO0
JTAG_RESET_FLAG_PROCPU20RO0
OCD_HALT_ON_RESET_PROCPU19R/W0
ALL_RESET_FLAG_CLR_PROCPU16WO0
ALL_RESET_FLAG_PROCPU14RO0Был сброс
STAT_VECTOR_SEL_PROCPU13R/W1
RESET_CAUSE_PROCPU5:0RO0x00Причина последнего сброса ядра: 1 — сброс чипа (питание или просадка), 3 — программный сброс, 5 — глубокий сон, 9 — RTC-сторож, 15 — просадка

RTC_CNTL_WAKEUP_STATE_REG — источники пробуждения

Смещение 0x003C, адрес 0x6000 803C, после сброса 0x0006 0000. TRM: регистр 9.13.

ПолеБитыДоступСбросНазначение
WAKEUP_ENA31:15R/W0x0000CМаска источников пробуждения, бит на источник

RTC_CNTL_INT_ENA_REG — разрешение прерываний

Смещение 0x0040, адрес 0x6000 8040, после сброса 0x0000 0000. TRM: регистр 9.14.

31302928272625242322212019181716
—BBPLL_CAL_INT_ENAGLITCH_DET_INT_ENA—XTAL32K_DEAD_INT_ENA
1514131211109876543210
SWD_INT_ENA—MAIN_TIMER_INT_ENABROWN_OUT_INT_ENA—WDT_INT_ENA—SLP_REJECT_INT_ENASLP_WAKEUP_INT_ENA
ПолеБитыДоступСбросНазначение
BBPLL_CAL_INT_ENA20R/W0Закончена калибровка BBPLL
GLITCH_DET_INT_ENA19R/W0Детектор помех заметил выброс на питании или тактах
XTAL32K_DEAD_INT_ENA16R/W0Кварц 32 кГц перестал генерировать
SWD_INT_ENA15R/W0Супер-сторож (SWD) просит его покормить
MAIN_TIMER_INT_ENA10R/W0Сработал будильник RTC-таймера
BROWN_OUT_INT_ENA9R/W0Детектор просадки питания заметил снижение напряжения
WDT_INT_ENA3R/W0Сработал RTC-сторож (RWDT) в режиме прерывания
SLP_REJECT_INT_ENA1R/W0Переход в сон отклонён
SLP_WAKEUP_INT_ENA0R/W0Чип проснулся

RTC_CNTL_INT_RAW_REG — необработанные флаги прерываний

Смещение 0x0044, адрес 0x6000 8044, после сброса 0x0000 0000. TRM: регистр 9.15.

31302928272625242322212019181716
—BBPLL_CAL_INT_RAWGLITCH_DET_INT_RAW—XTAL32K_DEAD_INT_RAW
1514131211109876543210
SWD_INT_RAW—MAIN_TIMER_INT_RAWBROWN_OUT_INT_RAW—WDT_INT_RAW—SLP_REJECT_INT_RAWSLP_WAKEUP_INT_RAW
ПолеБитыДоступСбросНазначение
BBPLL_CAL_INT_RAW20RO0Закончена калибровка BBPLL
GLITCH_DET_INT_RAW19RO0Детектор помех заметил выброс на питании или тактах
XTAL32K_DEAD_INT_RAW16RO0Кварц 32 кГц перестал генерировать
SWD_INT_RAW15RO0Супер-сторож (SWD) просит его покормить
MAIN_TIMER_INT_RAW10RO0Сработал будильник RTC-таймера
BROWN_OUT_INT_RAW9RO0Детектор просадки питания заметил снижение напряжения
WDT_INT_RAW3RO0Сработал RTC-сторож (RWDT) в режиме прерывания
SLP_REJECT_INT_RAW1RO0Переход в сон отклонён
SLP_WAKEUP_INT_RAW0RO0Чип проснулся

RTC_CNTL_INT_ST_REG — флаги прерываний после маски разрешения

Смещение 0x0048, адрес 0x6000 8048, после сброса 0x0000 0000. TRM: регистр 9.16.

31302928272625242322212019181716
—BBPLL_CAL_INT_STGLITCH_DET_INT_ST—XTAL32K_DEAD_INT_ST
1514131211109876543210
SWD_INT_ST—MAIN_TIMER_INT_STBROWN_OUT_INT_ST—WDT_INT_ST—SLP_REJECT_INT_STSLP_WAKEUP_INT_ST
ПолеБитыДоступСбросНазначение
BBPLL_CAL_INT_ST20RO0Закончена калибровка BBPLL
GLITCH_DET_INT_ST19RO0Детектор помех заметил выброс на питании или тактах
XTAL32K_DEAD_INT_ST16RO0Кварц 32 кГц перестал генерировать
SWD_INT_ST15RO0Супер-сторож (SWD) просит его покормить
MAIN_TIMER_INT_ST10RO0Сработал будильник RTC-таймера
BROWN_OUT_INT_ST9RO0Детектор просадки питания заметил снижение напряжения
WDT_INT_ST3RO0Сработал RTC-сторож (RWDT) в режиме прерывания
SLP_REJECT_INT_ST1RO0Переход в сон отклонён
SLP_WAKEUP_INT_ST0RO0Чип проснулся

RTC_CNTL_INT_CLR_REG — сброс флагов прерываний записью 1

Смещение 0x004C, адрес 0x6000 804C, после сброса 0x0000 0000. TRM: регистр 9.17.

31302928272625242322212019181716
—BBPLL_CAL_INT_CLRGLITCH_DET_INT_CLR—XTAL32K_DEAD_INT_CLR
1514131211109876543210
SWD_INT_CLR—MAIN_TIMER_INT_CLRBROWN_OUT_INT_CLR—WDT_INT_CLR—SLP_REJECT_INT_CLRSLP_WAKEUP_INT_CLR
ПолеБитыДоступСбросНазначение
BBPLL_CAL_INT_CLR20WO0Закончена калибровка BBPLL
GLITCH_DET_INT_CLR19WO0Детектор помех заметил выброс на питании или тактах
XTAL32K_DEAD_INT_CLR16WO0Кварц 32 кГц перестал генерировать
SWD_INT_CLR15WO0Супер-сторож (SWD) просит его покормить
MAIN_TIMER_INT_CLR10WO0Сработал будильник RTC-таймера
BROWN_OUT_INT_CLR9WO0Детектор просадки питания заметил снижение напряжения
WDT_INT_CLR3WO0Сработал RTC-сторож (RWDT) в режиме прерывания
SLP_REJECT_INT_CLR1WO0Переход в сон отклонён
SLP_WAKEUP_INT_CLR0WO0Чип проснулся

RTC_CNTL_STOREn_REG — регистр n, сохраняемый в глубоком сне

8 копий, n = 0…7: адреса — в таблице, после сброса 0x0000 0000. TRM: регистр 9.18.

КопияСмещениеАдрес
STORE00x00500x6000 8050
STORE10x00540x6000 8054
STORE20x00580x6000 8058
STORE30x005C0x6000 805C
STORE40x00B80x6000 80B8
STORE50x00BC0x6000 80BC
STORE60x00C00x6000 80C0
STORE70x00C40x6000 80C4
ПолеБитыДоступСбросНазначение
SCRATCHn31:0R/W0x0000 000032 бита данных, сохраняемых в глубоком сне

RTC_CNTL_EXT_XTL_CONF_REG — кварц 32 кГц и его сторож

Смещение 0x0060, адрес 0x6000 8060, после сброса 0x0006 6C80. TRM: регистр 9.22.

31302928272625242322212019181716
—XTAL32K_GPIO_SELWDT_STATEDAC_XTAL_32KXPD_XTAL_32K
1514131211109876543210
DRES_XTAL_32KDGM_XTAL_32KDBUF_XTAL_32KENCKINIT_XTAL_32KXTAL32K_XPD_FORCEXTAL32K_AUTO_RETURNXTAL32K_AUTO_RESTARTXTAL32K_AUTO_BACKUPXTAL32K_EXT_CLK_FOXTAL32K_WDT_RESETXTAL32K_WDT_CLK_FOXTAL32K_WDT_EN
ПолеБитыДоступСброс
XTAL32K_GPIO_SEL23R/W0
WDT_STATE22:20RO0x0
DAC_XTAL_32K19:17R/W0x3
XPD_XTAL_32K16R/W0
DRES_XTAL_32K15:13R/W0x3
DGM_XTAL_32K12:10R/W0x3
DBUF_XTAL_32K9R/W0
ENCKINIT_XTAL_32K8R/W0
XTAL32K_XPD_FORCE7R/W1
XTAL32K_AUTO_RETURN6R/W0
XTAL32K_AUTO_RESTART5R/W0
XTAL32K_AUTO_BACKUP4R/W0
XTAL32K_EXT_CLK_FO3R/W0
XTAL32K_WDT_RESET2R/W0
XTAL32K_WDT_CLK_FO1R/W0
XTAL32K_WDT_EN0R/W0

RTC_CNTL_EXT_WAKEUP_CONF_REG — фильтр пробуждения по выводам

Смещение 0x0064, адрес 0x6000 8064, после сброса 0x0000 0000. TRM: регистр 9.23.

ПолеБитыДоступСброс
GPIO_WAKEUP_FILTER31R/W0

RTC_CNTL_SLP_REJECT_CONF_REG — причины отказа от сна

Смещение 0x0068, адрес 0x6000 8068, после сброса 0x0000 0000. TRM: регистр 9.24.

31302928272625242322212019181716
DEEP_SLP_REJECT_ENLIGHT_SLP_REJECT_ENSLEEP_REJECT_ENA
1514131211109876543210
SLEEP_REJECT_ENA—
ПолеБитыДоступСброс
DEEP_SLP_REJECT_EN31R/W0
LIGHT_SLP_REJECT_EN30R/W0
SLEEP_REJECT_ENA29:12R/W0x00000

RTC_CNTL_CLK_CONF_REG — источники и делители медленных тактов

Смещение 0x0070, адрес 0x6000 8070, после сброса 0x1158 3218. TRM: регистр 9.25.

ПолеБитыДоступСброс
ANA_CLK_RTC_SEL31:30R/W0x0
FAST_CLK_RTC_SEL29R/W0
XTAL_GLOBAL_FORCE_NOGATING28R/W1
XTAL_GLOBAL_FORCE_GATING27R/W0
FOSC_FORCE_PU26R/W0
FOSC_FORCE_PD25R/W0
FOSC_DFREQ24:17R/W0xAC
FOSC_FORCE_NOGATING16R/W0
XTAL_FORCE_NOGATING15R/W0
FOSC_DIV_SEL14:12R/W0x3
DIG_FOSC_EN10R/W0
DIG_FOSC_D256_EN9R/W1
DIG_XTAL32K_EN8R/W0
ENB_FOSC_DIV7R/W0
ENB_FOSC6R/W0
FOSC_DIV5:4R/W0x1
FOSC_DIV_SEL_VLD3R/W1
EFUSE_CLK_FORCE_NOGATING2R/W0
EFUSE_CLK_FORCE_GATING1R/W0

RTC_CNTL_SLOW_CLK_CONF_REG — делитель медленного такта

Смещение 0x0074, адрес 0x6000 8074, после сброса 0x0040 0000. TRM: регистр 9.26.

31302928272625242322212019181716
—ANA_CLK_DIVANA_CLK_DIV_VLD—
1514131211109876543210
—
ПолеБитыДоступСброс
ANA_CLK_DIV30:23R/W0x00
ANA_CLK_DIV_VLD22R/W1

RTC_CNTL_REG — стабилизатор и калибровка

Смещение 0x0080, адрес 0x6000 8080, после сброса 0x8000 0000. TRM: регистр 9.27.

31302928272625242322212019181716
REGULATOR_FORCE_PUREGULATOR_FORCE_PD—SCK_DCAP
1514131211109876543210
SCK_DCAP—DIG_REG_CAL_EN—
ПолеБитыДоступСброс
REGULATOR_FORCE_PU31R/W1
REGULATOR_FORCE_PD30R/W0
SCK_DCAP21:14R/W0x00
DIG_REG_CAL_EN7R/W0

RTC_CNTL_PWC_REG — удержание выводов

Смещение 0x0084, адрес 0x6000 8084, после сброса 0x0000 0000. TRM: регистр 9.28.

ПолеБитыДоступСброс
PAD_FORCE_HOLD21R/W0

RTC_CNTL_DIG_PWC_REG — выключение цифровых доменов во сне

Смещение 0x0088, адрес 0x6000 8088, после сброса 0x0055 4010. TRM: регистр 9.29.

ПолеБитыДоступСброс
DG_WRAP_PD_EN31R/W0
WIFI_PD_EN30R/W0
CPU_TOP_PD_EN29R/W0
DG_PERI_PD_EN28R/W0
CPU_TOP_FORCE_PU22R/W1
CPU_TOP_FORCE_PD21R/W0
DG_WRAP_FORCE_PU20R/W1
DG_WRAP_FORCE_PD19R/W0
WIFI_FORCE_PU18R/W1
WIFI_FORCE_PD17R/W0
FASTMEM_FORCE_LPU16R/W1
FASTMEM_FORCE_LPD15R/W0
DG_PERI_FORCE_PU14R/W1
DG_PERI_FORCE_PD13R/W0
LSLP_MEM_FORCE_PU4R/W1
LSLP_MEM_FORCE_PD3R/W0
VDD_SPI_PWR_FORCE2R/W0
VDD_SPI_PWR_DRV1:0R/W0x0

RTC_CNTL_DIG_ISO_REG — изоляция цифровых доменов и удержание выводов

Смещение 0x008C, адрес 0x6000 808C, после сброса 0xAA00 5000. TRM: регистр 9.30.

31302928272625242322212019181716
DG_WRAP_FORCE_NOISODG_WRAP_FORCE_ISOWIFI_FORCE_NOISOWIFI_FORCE_ISOCPU_TOP_FORCE_NOISOCPU_TOP_FORCE_ISODG_PERI_FORCE_NOISODG_PERI_FORCE_ISO—
1514131211109876543210
DG_PAD_FORCE_HOLDDG_PAD_FORCE_UNHOLDDG_PAD_FORCE_ISODG_PAD_FORCE_NOISODG_PAD_AUTOHOLD_ENCLR_DG_PAD_AUTOHOLDDG_PAD_AUTOHOLD—
ПолеБитыДоступСброс
DG_WRAP_FORCE_NOISO31R/W1
DG_WRAP_FORCE_ISO30R/W0
WIFI_FORCE_NOISO29R/W1
WIFI_FORCE_ISO28R/W0
CPU_TOP_FORCE_NOISO27R/W1
CPU_TOP_FORCE_ISO26R/W0
DG_PERI_FORCE_NOISO25R/W1
DG_PERI_FORCE_ISO24R/W0
DG_PAD_FORCE_HOLD15R/W0
DG_PAD_FORCE_UNHOLD14R/W1
DG_PAD_FORCE_ISO13R/W0
DG_PAD_FORCE_NOISO12R/W1
DG_PAD_AUTOHOLD_EN11R/W0
CLR_DG_PAD_AUTOHOLD10WO0
DG_PAD_AUTOHOLD9RO0

RTC_CNTL_WDTCONFIG0_REG — rTC-сторож: включение и действия стадий

Смещение 0x0090, адрес 0x6000 8090, после сброса 0x0001 3200. TRM: регистр 9.31.

31302928272625242322212019181716
WDT_ENWDT_STG0WDT_STG1WDT_STG2WDT_STG3WDT_CPU_RESET_LENGTH
1514131211109876543210
WDT_SYS_RESET_LENGTHWDT_FLASHBOOT_MOD_ENWDT_PROCPU_RESET_EN—WDT_PAUSE_IN_SLP—
ПолеБитыДоступСбросНазначение
WDT_EN31R/W0Включить RTC-сторож
WDT_STG030:28R/W0x0Действие стадии 0: 0 — нет, 1 — прерывание, 2 — сброс процессора, 3 — сброс цифровой части, 4 — полный сброс вместе с RTC
WDT_STG127:25R/W0x0Действие стадии 1
WDT_STG224:22R/W0x0Действие стадии 2
WDT_STG321:19R/W0x0Действие стадии 3
WDT_CPU_RESET_LENGTH18:16R/W0x1
WDT_SYS_RESET_LENGTH15:13R/W0x1
WDT_FLASHBOOT_MOD_EN12R/W1Сторож работает с начальной загрузки из флеш-памяти
WDT_PROCPU_RESET_EN11R/W0
WDT_PAUSE_IN_SLP9R/W1Останавливать сторож во сне

RTC_CNTL_WDTCONFIG1_REG — rTC-сторож: длительность стадии 0

Смещение 0x0094, адрес 0x6000 8094, после сброса 0x0003 0D40. TRM: регистр 9.32.

ПолеБитыДоступСбросНазначение
WDT_STG0_HOLD31:0R/W0x0003 0D40Длительность стадии 0 в тактах медленного RTC-генератора

RTC_CNTL_WDTCONFIG2_REG — rTC-сторож: длительность стадии 1

Смещение 0x0098, адрес 0x6000 8098, после сброса 0x0001 3880. TRM: регистр 9.33.

ПолеБитыДоступСбросНазначение
WDT_STG1_HOLD31:0R/W0x0001 3880Длительность стадии 1

RTC_CNTL_WDTCONFIG3_REG — rTC-сторож: длительность стадии 2

Смещение 0x009C, адрес 0x6000 809C, после сброса 0x0000 0FFF. TRM: регистр 9.34.

ПолеБитыДоступСбросНазначение
WDT_STG2_HOLD31:0R/W0x0000 0FFFДлительность стадии 2

RTC_CNTL_WDTCONFIG4_REG — rTC-сторож: длительность стадии 3

Смещение 0x00A0, адрес 0x6000 80A0, после сброса 0x0000 0FFF. TRM: регистр 9.35.

ПолеБитыДоступСбросНазначение
WDT_STG3_HOLD31:0R/W0x0000 0FFFДлительность стадии 3

RTC_CNTL_WDTFEED_REG — rTC-сторож: кормление

Смещение 0x00A4, адрес 0x6000 80A4, после сброса 0x0000 0000. TRM: регистр 9.36.

ПолеБитыДоступСбросНазначение
WDT_FEED31WO0Запись 1 кормит RTC-сторож

RTC_CNTL_WDTWPROTECT_REG — rTC-сторож: защита записи

Смещение 0x00A8, адрес 0x6000 80A8, после сброса 0x0000 0000. TRM: регистр 9.37.

ПолеБитыДоступСбросНазначение
WDT_WKEY31:0R/W0x0000 0000Ключ 0x50D83AA1 снимает защиту записи регистров RWDT

RTC_CNTL_SWD_CONF_REG — супер-сторож: кормление и выключение

Смещение 0x00AC, адрес 0x6000 80AC, после сброса 0x04B0 0000. TRM: регистр 9.38.

31302928272625242322212019181716
SWD_AUTO_FEED_ENSWD_DISABLESWD_FEEDSWD_RST_FLAG_CLRSWD_SIGNAL_WIDTHSWD_BYPASS_RST—
1514131211109876543210
—SWD_FEED_INTSWD_RESET_FLAG
ПолеБитыДоступСбросНазначение
SWD_AUTO_FEED_EN31R/W0Кормить супер-сторож автоматически
SWD_DISABLE30R/W0Выключить супер-сторож
SWD_FEED29WO0Запись 1 кормит супер-сторож
SWD_RST_FLAG_CLR28WO0
SWD_SIGNAL_WIDTH27:18R/W0x12C
SWD_BYPASS_RST17R/W0
SWD_FEED_INT1RO0
SWD_RESET_FLAG0RO0

RTC_CNTL_SWD_WPROTECT_REG — супер-сторож: защита записи

Смещение 0x00B0, адрес 0x6000 80B0, после сброса 0x0000 0000. TRM: регистр 9.39.

ПолеБитыДоступСбросНазначение
SWD_WKEY31:0R/W0x0000 0000Ключ 0x8F1D312A снимает защиту регистров супер-сторожа

RTC_CNTL_SW_CPU_STALL_REG — программная остановка ядра

Смещение 0x00B4, адрес 0x6000 80B4, после сброса 0x0000 0000. TRM: регистр 9.40.

ПолеБитыДоступСброс
SW_STALL_PROCPU_C131:26R/W0x00

RTC_CNTL_LOW_POWER_ST_REG — состояние автомата питания

Смещение 0x00C8, адрес 0x6000 80C8, после сброса 0x0000 0000. TRM: регистр 9.45.

31302928272625242322212019181716
—MAIN_STATE_IN_IDLE—RDY_FOR_WAKEUP—
1514131211109876543210
—
ПолеБитыДоступСброс
MAIN_STATE_IN_IDLE27RO0
RDY_FOR_WAKEUP19RO0

RTC_CNTL_PAD_HOLD_REG — удержание состояния выводов GPIO0…5

Смещение 0x00D0, адрес 0x6000 80D0, после сброса 0x0000 0000. TRM: регистр 9.46.

1514131211109876543210
—GPIO_PIN5_HOLDGPIO_PIN4_HOLDGPIO_PIN3_HOLDGPIO_PIN2_HOLDGPIO_PIN1_HOLDGPIO_PIN0_HOLD
ПолеБитыДоступСброс
GPIO_PIN5_HOLD5R/W0
GPIO_PIN4_HOLD4R/W0
GPIO_PIN3_HOLD3R/W0
GPIO_PIN2_HOLD2R/W0
GPIO_PIN1_HOLD1R/W0
GPIO_PIN0_HOLD0R/W0

RTC_CNTL_DIG_PAD_HOLD_REG — удержание цифровых выводов

Смещение 0x00D4, адрес 0x6000 80D4, после сброса 0x0000 0000. TRM: регистр 9.47.

ПолеБитыДоступСброс
DIG_PAD_HOLD31:0R/W0x0000 0000

RTC_CNTL_BROWN_OUT_REG — детектор просадки питания

Смещение 0x00D8, адрес 0x6000 80D8, после сброса 0x43FF 0010. TRM: регистр 9.48.

31302928272625242322212019181716
BROWN_OUT_DETBROWN_OUT_ENABROWN_OUT_CNT_CLRBROWN_OUT_ANA_RST_ENBROWN_OUT_RST_SELBROWN_OUT_RST_ENABROWN_OUT_RST_WAIT
1514131211109876543210
BROWN_OUT_PD_RF_ENABROWN_OUT_CLOSE_FLASH_ENABROWN_OUT_INT_WAIT—
ПолеБитыДоступСбросНазначение
BROWN_OUT_DET31RO0Текущий выход детектора просадки
BROWN_OUT_ENA30R/W1Включить детектор просадки
BROWN_OUT_CNT_CLR29WO0
BROWN_OUT_ANA_RST_EN28R/W0
BROWN_OUT_RST_SEL27R/W0
BROWN_OUT_RST_ENA26R/W0Сбрасывать чип при просадке
BROWN_OUT_RST_WAIT25:16R/W0x3FFЗадержка сброса после обнаружения просадки
BROWN_OUT_PD_RF_ENA15R/W0
BROWN_OUT_CLOSE_FLASH_ENA14R/W0Отключать флеш-память при просадке
BROWN_OUT_INT_WAIT13:4R/W0x001Задержка прерывания после обнаружения просадки

RTC_CNTL_XTAL32K_CLK_FACTOR_REG — множитель резервного такта при отказе кварца 32 кГц

Смещение 0x00E4, адрес 0x6000 80E4, после сброса 0x0000 0000. TRM: регистр 9.51.

ПолеБитыДоступСброс
XTAL32K_CLK_FACTOR31:0R/W0x0000 0000

RTC_CNTL_XTAL32K_CONF_REG — сторож кварца 32 кГц: пороги и ожидания

Смещение 0x00E8, адрес 0x6000 80E8, после сброса 0x0FF0 0000. TRM: регистр 9.52.

31302928272625242322212019181716
XTAL32K_STABLE_THRESXTAL32K_WDT_TIMEOUTXTAL32K_RESTART_WAIT
1514131211109876543210
XTAL32K_RESTART_WAITXTAL32K_RETURN_WAIT
ПолеБитыДоступСброс
XTAL32K_STABLE_THRES31:28R/W0x0
XTAL32K_WDT_TIMEOUT27:20R/W0xFF
XTAL32K_RESTART_WAIT19:4R/W0x0000
XTAL32K_RETURN_WAIT3:0R/W0x0

RTC_CNTL_USB_CONF_REG — сброс IO MUX выводов USB

Смещение 0x00EC, адрес 0x6000 80EC, после сброса 0x0000 0000. TRM: регистр 9.53.

ПолеБитыДоступСброс
IO_MUX_RESET_DISABLE18R/W0

RTC_CNTL_SLP_REJECT_CAUSE_REG — причина отказа от сна

Смещение 0x00F0, адрес 0x6000 80F0, после сброса 0x0000 0000. TRM: регистр 9.54.

ПолеБитыДоступСбросНазначение
REJECT_CAUSE17:0RO0x00000Источник, отклонивший последний сон

RTC_CNTL_OPTION1_REG — принудительная загрузка в режим прошивки

Смещение 0x00F4, адрес 0x6000 80F4, после сброса 0x0000 0000. TRM: регистр 9.55.

ПолеБитыДоступСбросНазначение
FORCE_DOWNLOAD_BOOT0R/W0После сброса войти в режим прошивки независимо от strapping-выводов

RTC_CNTL_SLP_WAKEUP_CAUSE_REG — причина последнего пробуждения

Смещение 0x00F8, адрес 0x6000 80F8, после сброса 0x0000 0000. TRM: регистр 9.56.

ПолеБитыДоступСбросНазначение
WAKEUP_CAUSE16:0RO0x00000Источник последнего пробуждения, бит на источник

RTC_CNTL_INT_ENA_W1TS_REG — разрешение прерываний: запись 1 включает бит

Смещение 0x0100, адрес 0x6000 8100, после сброса 0x0000 0000. TRM: регистр 9.57.

31302928272625242322212019181716
—BBPLL_CAL_INT_ENA_W1TSGLITCH_DET_INT_ENA_W1TS—XTAL32K_DEAD_INT_ENA_W1TS
1514131211109876543210
SWD_INT_ENA_W1TS—MAIN_TIMER_INT_ENA_W1TSBROWN_OUT_INT_ENA_W1TS—WDT_INT_ENA_W1TS—SLP_REJECT_INT_ENA_W1TSSLP_WAKEUP_INT_ENA_W1TS
ПолеБитыДоступСбросНазначение
BBPLL_CAL_INT_ENA_W1TS20WO0Закончена калибровка BBPLL
GLITCH_DET_INT_ENA_W1TS19WO0Детектор помех заметил выброс на питании или тактах
XTAL32K_DEAD_INT_ENA_W1TS16WO0Кварц 32 кГц перестал генерировать
SWD_INT_ENA_W1TS15WO0Супер-сторож (SWD) просит его покормить
MAIN_TIMER_INT_ENA_W1TS10WO0Сработал будильник RTC-таймера
BROWN_OUT_INT_ENA_W1TS9WO0Детектор просадки питания заметил снижение напряжения
WDT_INT_ENA_W1TS3WO0Сработал RTC-сторож (RWDT) в режиме прерывания
SLP_REJECT_INT_ENA_W1TS1WO0Переход в сон отклонён
SLP_WAKEUP_INT_ENA_W1TS0WO0Чип проснулся

RTC_CNTL_INT_ENA_W1TC_REG — разрешение прерываний: запись 1 выключает бит

Смещение 0x0104, адрес 0x6000 8104, после сброса 0x0000 0000. TRM: регистр 9.58.

31302928272625242322212019181716
—BBPLL_CAL_INT_ENA_W1TCGLITCH_DET_INT_ENA_W1TC—XTAL32K_DEAD_INT_ENA_W1TC
1514131211109876543210
SWD_INT_ENA_W1TC—MAIN_TIMER_INT_ENA_W1TCBROWN_OUT_INT_ENA_W1TC—WDT_INT_ENA_W1TC—SLP_REJECT_INT_ENA_W1TCSLP_WAKEUP_INT_ENA_W1TC
ПолеБитыДоступСбросНазначение
BBPLL_CAL_INT_ENA_W1TC20WO0Закончена калибровка BBPLL
GLITCH_DET_INT_ENA_W1TC19WO0Детектор помех заметил выброс на питании или тактах
XTAL32K_DEAD_INT_ENA_W1TC16WO0Кварц 32 кГц перестал генерировать
SWD_INT_ENA_W1TC15WO0Супер-сторож (SWD) просит его покормить
MAIN_TIMER_INT_ENA_W1TC10WO0Сработал будильник RTC-таймера
BROWN_OUT_INT_ENA_W1TC9WO0Детектор просадки питания заметил снижение напряжения
WDT_INT_ENA_W1TC3WO0Сработал RTC-сторож (RWDT) в режиме прерывания
SLP_REJECT_INT_ENA_W1TC1WO0Переход в сон отклонён
SLP_WAKEUP_INT_ENA_W1TC0WO0Чип проснулся

RTC_CNTL_RETENTION_CTRL_REG — сохранение состояния ядра во сне

Смещение 0x0108, адрес 0x6000 8108, после сброса 0x0000 0000. TRM: регистр 9.59.

31302928272625242322212019181716
—RETENTION_EN—RETENTION_CLK_SEL—
1514131211109876543210
—
ПолеБитыДоступСброс
RETENTION_EN26R/W0
RETENTION_CLK_SEL18R/W0

RTC_CNTL_GPIO_WAKEUP_REG — пробуждение по выводам GPIO0…5

Смещение 0x0110, адрес 0x6000 8110, после сброса 0x0000 0000. TRM: регистр 9.60.

31302928272625242322212019181716
GPIO_PIN0_WAKEUP_ENABLEGPIO_PIN1_WAKEUP_ENABLEGPIO_PIN2_WAKEUP_ENABLEGPIO_PIN3_WAKEUP_ENABLEGPIO_PIN4_WAKEUP_ENABLEGPIO_PIN5_WAKEUP_ENABLEGPIO_PIN0_INT_TYPEGPIO_PIN1_INT_TYPEGPIO_PIN2_INT_TYPEGPIO_PIN3_INT_TYPE
1514131211109876543210
GPIO_PIN3_INT_TYPEGPIO_PIN4_INT_TYPEGPIO_PIN5_INT_TYPEGPIO_PIN_CLK_GATEGPIO_WAKEUP_STATUS_CLRGPIO_WAKEUP_STATUS
ПолеБитыДоступСброс
GPIO_PIN0_WAKEUP_ENABLE31R/W0
GPIO_PIN1_WAKEUP_ENABLE30R/W0
GPIO_PIN2_WAKEUP_ENABLE29R/W0
GPIO_PIN3_WAKEUP_ENABLE28R/W0
GPIO_PIN4_WAKEUP_ENABLE27R/W0
GPIO_PIN5_WAKEUP_ENABLE26R/W0
GPIO_PIN0_INT_TYPE25:23R/W0x0
GPIO_PIN1_INT_TYPE22:20R/W0x0
GPIO_PIN2_INT_TYPE19:17R/W0x0
GPIO_PIN3_INT_TYPE16:14R/W0x0
GPIO_PIN4_INT_TYPE13:11R/W0x0
GPIO_PIN5_INT_TYPE10:8R/W0x0
GPIO_PIN_CLK_GATE7R/W0
GPIO_WAKEUP_STATUS_CLR6R/W0
GPIO_WAKEUP_STATUS5:0RO0x00

RTC_CNTL_SENSOR_CTRL_REG — питание SAR АЦП

Смещение 0x011C, адрес 0x6000 811C, после сброса 0x0000 0000. TRM: регистр 9.61.

ПолеБитыДоступСброс
FORCE_XPD_SAR31:30R/W0x0

Частые вопросы

Где 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.

Источники

  1. Espressif. ESP32-C3 Technical Reference Manual, версия 1.4 — глава 9: таблица Register Summary и рисунки регистров — смещения, поля, тип доступа и значения после сброса
  2. Espressif. SVD svd/esp32c3.svd, версия 18 (espressif/svd, коммит be20aa1) — базовые адреса периферии, список регистров и полей; лицензия Apache-2.0
  3. Espressif. ESP-IDF v6.1: заголовки components/soc/esp32c3/register/soc/*_reg.h (коммит fff9895) — имена макросов регистров и полей, сверка положения полей и значений по умолчанию; лицензия Apache-2.0 OR MIT

Нашли ошибку в регистрах?

Другие регистры ESP32-C3

Статьи, инструменты и термины