Регистры eFuse ESP32-C3
Регистры контроллера eFuse ESP32-C3 для чтения: зеркала блоков однократно программируемой памяти — системные настройки и запреты BLOCK0, MAC-адрес в BLOCK1, пользовательские данные BLOCK3, ключи BLOCK4–9 — и регистры ошибок, тактирования и команд. Регистры программирования на этой странице не показаны.
Содержание
- Пример на C
- Регистры блока
- EFUSE_RD_WR_DIS_REG
- EFUSE_RD_REPEAT_DATA0_REG
- EFUSE_RD_REPEAT_DATA1_REG
- EFUSE_RD_REPEAT_DATA2_REG
- EFUSE_RD_REPEAT_DATA3_REG
- EFUSE_RD_REPEAT_DATA4_REG
- EFUSE_RD_MAC_SPI_SYS_0_REG
- EFUSE_RD_MAC_SPI_SYS_1_REG
- EFUSE_RD_MAC_SPI_SYS_2_REG
- EFUSE_RD_MAC_SPI_SYS_3_REG
- EFUSE_RD_MAC_SPI_SYS_4_REG
- EFUSE_RD_MAC_SPI_SYS_5_REG
- EFUSE_RD_SYS_PART1_DATAn_REG
- EFUSE_RD_USR_DATAn_REG
- EFUSE_RD_KEY0_DATAn_REG
- EFUSE_RD_KEY1_DATAn_REG
- EFUSE_RD_KEY2_DATAn_REG
- EFUSE_RD_KEY3_DATAn_REG
- EFUSE_RD_KEY4_DATAn_REG
- EFUSE_RD_KEY5_DATAn_REG
- EFUSE_RD_SYS_PART2_DATAn_REG
- EFUSE_RD_REPEAT_ERR0_REG
- EFUSE_RD_REPEAT_ERR1_REG
- EFUSE_RD_REPEAT_ERR2_REG
- EFUSE_RD_REPEAT_ERR3_REG
- EFUSE_RD_REPEAT_ERR4_REG
- EFUSE_RD_RS_ERR0_REG
- EFUSE_RD_RS_ERR1_REG
- EFUSE_CLK_REG
- EFUSE_CONF_REG
- EFUSE_STATUS_REG
- EFUSE_CMD_REG
- EFUSE_INT_RAW_REG
- EFUSE_INT_ST_REG
- EFUSE_INT_ENA_REG
- EFUSE_INT_CLR_REG
- EFUSE_DAC_CONF_REG
- EFUSE_RD_TIM_CONF_REG
- EFUSE_WR_TIM_CONF1_REG
- EFUSE_WR_TIM_CONF2_REG
- EFUSE_DATE_REG
eFuse ESP32-C3 — 4096 бит однократно программируемой памяти в 11 блоках. Контроллер по адресу 0x6000 8800 при сбросе копирует их в регистры EFUSE_RD_*, и программа читает настройки оттуда, не трогая сами перемычки. После программирования новое состояние видно только после команды чтения (бит READ_CMD регистра EFUSE_CMD_REG) или сброса.
BLOCK0 хранит системные параметры: запреты записи и чтения других блоков, отключение JTAG и режима прошивки, назначения ключей KEY_PURPOSE, включение Secure Boot и счётчик шифрования флеш-памяти. BLOCK1 содержит MAC-адрес и настройки выводов флеш-памяти, BLOCK2 — калибровку АЦП и данные производителя, BLOCK3 свободен для пользователя, BLOCK4–9 — шесть 256-битных ключей.
Пережжённый бит вернуть нельзя, поэтому программировать eFuse лучше утилитой espefuse.py, которая проверяет зависимости. Регистры EFUSE_PGM_DATAn и EFUSE_PGM_CHECK_VALUEn — буфер программирования — здесь не описаны.
| Экземпляр | Базовый адрес |
|---|---|
| EFUSE | 0x6000 8800 |
Пример на C
Чтение MAC-адреса из BLOCK1 (soc/efuse_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/efuse_reg.h"
uint32_t lo = REG_READ(EFUSE_RD_MAC_SPI_SYS_0_REG);
uint32_t hi = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_1_REG, EFUSE_MAC_1);
uint8_t mac[6] = { hi >> 8, hi, lo >> 24, lo >> 16, lo >> 8, lo };Регистры блока
Регистры записи (PGM_DATAn, PGM_CHECK_VALUEn) на этой странице не показаны: она описывает чтение eFuse.
| Регистр (ESP-IDF) | Смещение | Назначение | После сброса |
|---|---|---|---|
| EFUSE_RD_WR_DIS_REG | 0x002C | BLOCK0: запреты записи | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA0_REG | 0x0030 | BLOCK0: запреты чтения, отключение JTAG, USB и кэша | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA1_REG | 0x0034 | BLOCK0: назначения ключей 0 и 1, отзыв ключей Secure Boot | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA2_REG | 0x0038 | BLOCK0: назначения ключей 2–5, включение Secure Boot | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA3_REG | 0x003C | BLOCK0: режим прошивки, вывод ROM, версия безопасности | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA4_REG | 0x0040 | BLOCK0: зарезервированные биты | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_0_REG | 0x0044 | BLOCK1: MAC-адрес, младшие 32 бита | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_1_REG | 0x0048 | BLOCK1: MAC-адрес, старшие 16 бит, выводы флеш-памяти | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_2_REG | 0x004C | BLOCK1: настройки выводов флеш-памяти | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_3_REG | 0x0050 | BLOCK1: выводы флеш-памяти и системные данные | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_4_REG | 0x0054 | BLOCK1: системные данные | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_5_REG | 0x0058 | BLOCK1: системные данные | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATAn_REG | 0x005C + n · 0x0004 | BLOCK2: системные данные, слово n | 0x0000 0000 |
| EFUSE_RD_USR_DATAn_REG | 0x007C + n · 0x0004 | BLOCK3: данные пользователя, слово n | 0x0000 0000 |
| EFUSE_RD_KEY0_DATAn_REG | 0x009C + n · 0x0004 | BLOCK4: ключ 0, слово n | 0x0000 0000 |
| EFUSE_RD_KEY1_DATAn_REG | 0x00BC + n · 0x0004 | BLOCK5: ключ 1, слово n | 0x0000 0000 |
| EFUSE_RD_KEY2_DATAn_REG | 0x00DC + n · 0x0004 | BLOCK6: ключ 2, слово n | 0x0000 0000 |
| EFUSE_RD_KEY3_DATAn_REG | 0x00FC + n · 0x0004 | BLOCK7: ключ 3, слово n | 0x0000 0000 |
| EFUSE_RD_KEY4_DATAn_REG | 0x011C + n · 0x0004 | BLOCK8: ключ 4, слово n | 0x0000 0000 |
| EFUSE_RD_KEY5_DATAn_REG | 0x013C + n · 0x0004 | BLOCK9: ключ 5, слово n | 0x0000 0000 |
| EFUSE_RD_SYS_PART2_DATAn_REG | 0x015C + n · 0x0004 | BLOCK10: системные данные, слово n | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR0_REG | 0x017C | Ошибки программирования BLOCK0, слово 1 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR1_REG | 0x0180 | Ошибки программирования BLOCK0, слово 2 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR2_REG | 0x0184 | Ошибки программирования BLOCK0, слово 3 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR3_REG | 0x0188 | Ошибки программирования BLOCK0, слово 4 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR4_REG | 0x0190 | Ошибки программирования BLOCK0, слово 5 | 0x0000 0000 |
| EFUSE_RD_RS_ERR0_REG | 0x01C0 | Ошибки кода Рида — Соломона BLOCK1–8 | 0x0000 0000 |
| EFUSE_RD_RS_ERR1_REG | 0x01C4 | Ошибки кода Рида — Соломона BLOCK9–10 | 0x0000 0000 |
| EFUSE_CLK_REG | 0x01C8 | Тактирование и питание памяти eFuse | 0x0000 0002 |
| EFUSE_CONF_REG | 0x01CC | Код операции: чтение или программирование | 0x0000 0000 |
| EFUSE_STATUS_REG | 0x01D0 | Состояние контроллера | 0x0000 0000 |
| EFUSE_CMD_REG | 0x01D4 | Команды чтения и программирования | 0x0000 0000 |
| EFUSE_INT_RAW_REG | 0x01D8 | Необработанные флаги прерываний | 0x0000 0000 |
| EFUSE_INT_ST_REG | 0x01DC | Флаги прерываний после маски разрешения | 0x0000 0000 |
| EFUSE_INT_ENA_REG | 0x01E0 | Разрешение прерываний | 0x0000 0000 |
| EFUSE_INT_CLR_REG | 0x01E4 | Сброс флагов прерываний записью 1 | 0x0000 0000 |
| EFUSE_DAC_CONF_REG | 0x01E8 | Напряжение программирования | 0x0001 FE1C |
| EFUSE_RD_TIM_CONF_REG | 0x01EC | Тайминги чтения | 0x1200 0000 |
| EFUSE_WR_TIM_CONF1_REG | 0x01F0 | Тайминги программирования: включение питания | 0x0028 8000 |
| EFUSE_WR_TIM_CONF2_REG | 0x01F4 | Тайминги программирования: выключение питания | 0x0000 0190 |
| EFUSE_DATE_REG | 0x01FC | Версия блока: дата ревизии аппаратуры | 0x0200 6300 |
Доступ — обозначения TRM: R/W — чтение и запись, RO — только чтение, WO — только запись, WT — запись 1 запускает действие, SS и SC — бит ставится и сбрасывается аппаратно, WTC — сбрасывается записью 1.
EFUSE_RD_WR_DIS_REG — bLOCK0: запреты записи
Смещение 0x002C, адрес 0x6000 882C, после сброса 0x0000 0000. TRM: регистр 4.12.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WR_DIS | 31:0 | RO | 0x0000 0000 | Бит на группу параметров: 1 — запись в неё запрещена |
EFUSE_RD_REPEAT_DATA0_REG — bLOCK0: запреты чтения, отключение JTAG, USB и кэша
Смещение 0x0030, адрес 0x6000 8830, после сброса 0x0000 0000. TRM: регистр 4.13.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | VDD_SPI_AS_GPIO | USB_EXCHG_PINS | — | DIS_DOWNLOAD_MANUAL_ENCRYPT | DIS_PAD_JTAG | SOFT_DIS_JTAG | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JTAG_SEL_ENABLE | DIS_TWAI | RPT4_RESERVED6 | DIS_FORCE_DOWNLOAD | DIS_USB_SERIAL_JTAG | DIS_DOWNLOAD_ICACHE | DIS_USB_JTAG | DIS_ICACHE | DIS_RTC_RAM_BOOT | RD_DIS | ||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| VDD_SPI_AS_GPIO | 26 | RO | 0 | Вывод VDD_SPI работает как GPIO |
| USB_EXCHG_PINS | 25 | RO | 0 | Поменять местами D+ и D− USB |
| DIS_DOWNLOAD_MANUAL_ENCRYPT | 20 | RO | 0 | Запретить шифрование флеш-памяти в режиме прошивки |
| DIS_PAD_JTAG | 19 | RO | 0 | Отключить JTAG на выводах навсегда |
| SOFT_DIS_JTAG | 18:16 | RO | 0x0 | Программное отключение JTAG; снимается модулем HMAC |
| JTAG_SEL_ENABLE | 15 | RO | 0 | |
| DIS_TWAI | 14 | RO | 0 | Отключить контроллер TWAI (CAN) |
| RPT4_RESERVED6 | 13 | RO | 0 | |
| DIS_FORCE_DOWNLOAD | 12 | RO | 0 | Запретить принудительный вход в режим прошивки |
| DIS_USB_SERIAL_JTAG | 11 | RO | 0 | Отключить контроллер USB Serial/JTAG |
| DIS_DOWNLOAD_ICACHE | 10 | RO | 0 | |
| DIS_USB_JTAG | 9 | RO | 0 | Отключить JTAG через USB |
| DIS_ICACHE | 8 | RO | 0 | Отключить кэш инструкций |
| DIS_RTC_RAM_BOOT | 7 | RO | 0 | |
| RD_DIS | 6:0 | RO | 0x00 | Запрет чтения блоков 4–10 программой |
EFUSE_RD_REPEAT_DATA1_REG — bLOCK0: назначения ключей 0 и 1, отзыв ключей Secure Boot
Смещение 0x0034, адрес 0x6000 8834, после сброса 0x0000 0000. TRM: регистр 4.14.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| KEY_PURPOSE_1 | KEY_PURPOSE_0 | SECURE_BOOT_KEY_REVOKE2 | SECURE_BOOT_KEY_REVOKE1 | SECURE_BOOT_KEY_REVOKE0 | SPI_BOOT_CRYPT_CNT | WDT_DELAY_SEL | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RPT4_RESERVED2 | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| KEY_PURPOSE_1 | 31:28 | RO | 0x0 | Назначение ключа 1 |
| KEY_PURPOSE_0 | 27:24 | RO | 0x0 | Назначение ключа 0 |
| SECURE_BOOT_KEY_REVOKE2 | 23 | RO | 0 | |
| SECURE_BOOT_KEY_REVOKE1 | 22 | RO | 0 | |
| SECURE_BOOT_KEY_REVOKE0 | 21 | RO | 0 | |
| SPI_BOOT_CRYPT_CNT | 20:18 | RO | 0x0 | Шифрование флеш-памяти: нечётное число единиц — включено |
| WDT_DELAY_SEL | 17:16 | RO | 0x0 | Порог сторожа RWDT при загрузке |
| RPT4_RESERVED2 | 15:0 | RO | 0x0000 |
EFUSE_RD_REPEAT_DATA2_REG — bLOCK0: назначения ключей 2–5, включение Secure Boot
Смещение 0x0038, адрес 0x6000 8838, после сброса 0x0000 0000. TRM: регистр 4.15.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FLASH_TPUW | RPT4_RESERVED0 | SECURE_BOOT_AGGRESSIVE_REVOKE | SECURE_BOOT_EN | RPT4_RESERVED3 | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| KEY_PURPOSE_5 | KEY_PURPOSE_4 | KEY_PURPOSE_3 | KEY_PURPOSE_2 | ||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| FLASH_TPUW | 31:28 | RO | 0x0 | Ожидание после включения питания флеш-памяти |
| RPT4_RESERVED0 | 27:22 | RO | 0x00 | |
| SECURE_BOOT_AGGRESSIVE_REVOKE | 21 | RO | 0 | Агрессивный отзыв ключей Secure Boot |
| SECURE_BOOT_EN | 20 | RO | 0 | Secure Boot включён |
| RPT4_RESERVED3 | 19:16 | RO | 0x0 | |
| KEY_PURPOSE_5 | 15:12 | RO | 0x0 | |
| KEY_PURPOSE_4 | 11:8 | RO | 0x0 | |
| KEY_PURPOSE_3 | 7:4 | RO | 0x0 | |
| KEY_PURPOSE_2 | 3:0 | RO | 0x0 |
EFUSE_RD_REPEAT_DATA3_REG — bLOCK0: режим прошивки, вывод ROM, версия безопасности
Смещение 0x003C, адрес 0x6000 883C, после сброса 0x0000 0000. TRM: регистр 4.16.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ERR_RST_ENABLE | RPT4_RESERVED1 | SECURE_VERSION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SECURE_VERSION | FORCE_SEND_RESUME | RPT4_RESERVED5 | UART_PRINT_CONTROL | ENABLE_SECURITY_DOWNLOAD | DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE | RPT4_RESERVED7 | USB_PRINT_CHANNEL | RPT4_RESERVED8 | DIS_DOWNLOAD_MODE | ||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| ERR_RST_ENABLE | 31 | RO | 0 | |
| RPT4_RESERVED1 | 30 | RO | 0 | |
| SECURE_VERSION | 29:14 | RO | 0x0000 | Версия безопасности для защиты от отката прошивки |
| FORCE_SEND_RESUME | 13 | RO | 0 | |
| RPT4_RESERVED5 | 12:8 | RO | 0x00 | |
| UART_PRINT_CONTROL | 7:6 | RO | 0x0 | Вывод сообщений ПЗУ при загрузке |
| ENABLE_SECURITY_DOWNLOAD | 5 | RO | 0 | Безопасный режим прошивки: только ограниченные команды |
| DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE | 4 | RO | 0 | |
| RPT4_RESERVED7 | 3 | RO | 0 | |
| USB_PRINT_CHANNEL | 2 | RO | 0 | |
| RPT4_RESERVED8 | 1 | RO | 0 | |
| DIS_DOWNLOAD_MODE | 0 | RO | 0 | Запретить режим прошивки |
EFUSE_RD_REPEAT_DATA4_REG — bLOCK0: зарезервированные биты
Смещение 0x0040, адрес 0x6000 8840, после сброса 0x0000 0000. TRM: регистр 4.17.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RPT4_RESERVED4 | 23:0 | RO | 0x000000 |
EFUSE_RD_MAC_SPI_SYS_0_REG — bLOCK1: MAC-адрес, младшие 32 бита
Смещение 0x0044, адрес 0x6000 8844, после сброса 0x0000 0000. TRM: регистр 4.18.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| MAC_0 | 31:0 | RO | 0x0000 0000 | Младшие 32 бита MAC-адреса |
EFUSE_RD_MAC_SPI_SYS_1_REG — bLOCK1: MAC-адрес, старшие 16 бит, выводы флеш-памяти
Смещение 0x0048, адрес 0x6000 8848, после сброса 0x0000 0000. TRM: регистр 4.19.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SPI_PAD_CONF_0 | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| MAC_1 | |||||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| SPI_PAD_CONF_0 | 31:16 | RO | 0x0000 | |
| MAC_1 | 15:0 | RO | 0x0000 | Старшие 16 бит MAC-адреса |
EFUSE_RD_MAC_SPI_SYS_2_REG — bLOCK1: настройки выводов флеш-памяти
Смещение 0x004C, адрес 0x6000 884C, после сброса 0x0000 0000. TRM: регистр 4.20.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SPI_PAD_CONF_1 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_MAC_SPI_SYS_3_REG — bLOCK1: выводы флеш-памяти и системные данные
Смещение 0x0050, адрес 0x6000 8850, после сброса 0x0000 0000. TRM: регистр 4.21.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SYS_DATA_PART0_0 | SPI_PAD_CONF_2 | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SPI_PAD_CONF_2 | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART0_0 | 31:18 | RO | 0x0000 |
| SPI_PAD_CONF_2 | 17:0 | RO | 0x00000 |
EFUSE_RD_MAC_SPI_SYS_4_REG — bLOCK1: системные данные
Смещение 0x0054, адрес 0x6000 8854, после сброса 0x0000 0000. TRM: регистр 4.22.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART0_1 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_MAC_SPI_SYS_5_REG — bLOCK1: системные данные
Смещение 0x0058, адрес 0x6000 8858, после сброса 0x0000 0000. TRM: регистр 4.23.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART0_2 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATAn_REG — bLOCK2: системные данные, слово n
8 копий, n = 0…7: смещение 0x005C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.24.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART1_n | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_USR_DATAn_REG — bLOCK3: данные пользователя, слово n
8 копий, n = 0…7: смещение 0x007C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.32.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| USR_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY0_DATAn_REG — bLOCK4: ключ 0, слово n
8 копий, n = 0…7: смещение 0x009C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.40.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY0_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY1_DATAn_REG — bLOCK5: ключ 1, слово n
8 копий, n = 0…7: смещение 0x00BC + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.48.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY1_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY2_DATAn_REG — bLOCK6: ключ 2, слово n
8 копий, n = 0…7: смещение 0x00DC + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.56.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY2_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY3_DATAn_REG — bLOCK7: ключ 3, слово n
8 копий, n = 0…7: смещение 0x00FC + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.64.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY3_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY4_DATAn_REG — bLOCK8: ключ 4, слово n
8 копий, n = 0…7: смещение 0x011C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.72.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY4_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY5_DATAn_REG — bLOCK9: ключ 5, слово n
8 копий, n = 0…7: смещение 0x013C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.80.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY5_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART2_DATAn_REG — bLOCK10: системные данные, слово n
8 копий, n = 0…7: смещение 0x015C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 4.88.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART2_n | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_REPEAT_ERR0_REG — ошибки программирования BLOCK0, слово 1
Смещение 0x017C, адрес 0x6000 897C, после сброса 0x0000 0000. TRM: регистр 4.96.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | VDD_SPI_AS_GPIO_ERR | USB_EXCHG_PINS_ERR | — | DIS_DOWNLOAD_MANUAL_ENCRYPT_ERR | DIS_PAD_JTAG_ERR | SOFT_DIS_JTAG_ERR | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| JTAG_SEL_ENABLE_ERR | DIS_TWAI_ERR | RPT4_RESERVED6_ERR | DIS_FORCE_DOWNLOAD_ERR | DIS_USB_SERIAL_JTAG_ERR | DIS_DOWNLOAD_ICACHE_ERR | DIS_USB_JTAG_ERR | DIS_ICACHE_ERR | DIS_RTC_RAM_BOOT_ERR | RD_DIS_ERR | ||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| VDD_SPI_AS_GPIO_ERR | 26 | RO | 0 |
| USB_EXCHG_PINS_ERR | 25 | RO | 0 |
| DIS_DOWNLOAD_MANUAL_ENCRYPT_ERR | 20 | RO | 0 |
| DIS_PAD_JTAG_ERR | 19 | RO | 0 |
| SOFT_DIS_JTAG_ERR | 18:16 | RO | 0x0 |
| JTAG_SEL_ENABLE_ERR | 15 | RO | 0 |
| DIS_TWAI_ERR | 14 | RO | 0 |
| RPT4_RESERVED6_ERR | 13 | RO | 0 |
| DIS_FORCE_DOWNLOAD_ERR | 12 | RO | 0 |
| DIS_USB_SERIAL_JTAG_ERR | 11 | RO | 0 |
| DIS_DOWNLOAD_ICACHE_ERR | 10 | RO | 0 |
| DIS_USB_JTAG_ERR | 9 | RO | 0 |
| DIS_ICACHE_ERR | 8 | RO | 0 |
| DIS_RTC_RAM_BOOT_ERR | 7 | RO | 0 |
| RD_DIS_ERR | 6:0 | RO | 0x00 |
EFUSE_RD_REPEAT_ERR1_REG — ошибки программирования BLOCK0, слово 2
Смещение 0x0180, адрес 0x6000 8980, после сброса 0x0000 0000. TRM: регистр 4.97.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| KEY_PURPOSE_1_ERR | KEY_PURPOSE_0_ERR | SECURE_BOOT_KEY_REVOKE2_ERR | SECURE_BOOT_KEY_REVOKE1_ERR | SECURE_BOOT_KEY_REVOKE0_ERR | SPI_BOOT_CRYPT_CNT_ERR | WDT_DELAY_SEL_ERR | |||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| RPT4_RESERVED2_ERR | |||||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY_PURPOSE_1_ERR | 31:28 | RO | 0x0 |
| KEY_PURPOSE_0_ERR | 27:24 | RO | 0x0 |
| SECURE_BOOT_KEY_REVOKE2_ERR | 23 | RO | 0 |
| SECURE_BOOT_KEY_REVOKE1_ERR | 22 | RO | 0 |
| SECURE_BOOT_KEY_REVOKE0_ERR | 21 | RO | 0 |
| SPI_BOOT_CRYPT_CNT_ERR | 20:18 | RO | 0x0 |
| WDT_DELAY_SEL_ERR | 17:16 | RO | 0x0 |
| RPT4_RESERVED2_ERR | 15:0 | RO | 0x0000 |
EFUSE_RD_REPEAT_ERR2_REG — ошибки программирования BLOCK0, слово 3
Смещение 0x0184, адрес 0x6000 8984, после сброса 0x0000 0000. TRM: регистр 4.98.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FLASH_TPUW_ERR | RPT4_RESERVED0_ERR | SECURE_BOOT_AGGRESSIVE_REVOKE_ERR | SECURE_BOOT_EN_ERR | RPT4_RESERVED3_ERR | |||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| KEY_PURPOSE_5_ERR | KEY_PURPOSE_4_ERR | KEY_PURPOSE_3_ERR | KEY_PURPOSE_2_ERR | ||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| FLASH_TPUW_ERR | 31:28 | RO | 0x0 |
| RPT4_RESERVED0_ERR | 27:22 | RO | 0x00 |
| SECURE_BOOT_AGGRESSIVE_REVOKE_ERR | 21 | RO | 0 |
| SECURE_BOOT_EN_ERR | 20 | RO | 0 |
| RPT4_RESERVED3_ERR | 19:16 | RO | 0x0 |
| KEY_PURPOSE_5_ERR | 15:12 | RO | 0x0 |
| KEY_PURPOSE_4_ERR | 11:8 | RO | 0x0 |
| KEY_PURPOSE_3_ERR | 7:4 | RO | 0x0 |
| KEY_PURPOSE_2_ERR | 3:0 | RO | 0x0 |
EFUSE_RD_REPEAT_ERR3_REG — ошибки программирования BLOCK0, слово 4
Смещение 0x0188, адрес 0x6000 8988, после сброса 0x0000 0000. TRM: регистр 4.99.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| ERR_RST_ENABLE_ERR | RPT4_RESERVED1_ERR | SECURE_VERSION_ERR | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SECURE_VERSION_ERR | FORCE_SEND_RESUME_ERR | RPT4_RESERVED5_ERR | UART_PRINT_CONTROL_ERR | ENABLE_SECURITY_DOWNLOAD_ERR | DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE_ERR | RPT4_RESERVED7_ERR | USB_PRINT_CHANNEL_ERR | RPT4_RESERVED8_ERR | DIS_DOWNLOAD_MODE_ERR | ||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| ERR_RST_ENABLE_ERR | 31 | RO | 0 |
| RPT4_RESERVED1_ERR | 30 | RO | 0 |
| SECURE_VERSION_ERR | 29:14 | RO | 0x0000 |
| FORCE_SEND_RESUME_ERR | 13 | RO | 0 |
| RPT4_RESERVED5_ERR | 12:8 | RO | 0x00 |
| UART_PRINT_CONTROL_ERR | 7:6 | RO | 0x0 |
| ENABLE_SECURITY_DOWNLOAD_ERR | 5 | RO | 0 |
| DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE_ERR | 4 | RO | 0 |
| RPT4_RESERVED7_ERR | 3 | RO | 0 |
| USB_PRINT_CHANNEL_ERR | 2 | RO | 0 |
| RPT4_RESERVED8_ERR | 1 | RO | 0 |
| DIS_DOWNLOAD_MODE_ERR | 0 | RO | 0 |
EFUSE_RD_REPEAT_ERR4_REG — ошибки программирования BLOCK0, слово 5
Смещение 0x0190, адрес 0x6000 8990, после сброса 0x0000 0000. TRM: регистр 4.100.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RPT4_RESERVED4_ERR | 23:0 | RO | 0x000000 |
EFUSE_RD_RS_ERR0_REG — ошибки кода Рида — Соломона BLOCK1–8
Смещение 0x01C0, адрес 0x6000 89C0, после сброса 0x0000 0000. TRM: регистр 4.101.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| KEY3_FAIL | KEY4_ERR_NUM | KEY2_FAIL | KEY3_ERR_NUM | KEY1_FAIL | KEY2_ERR_NUM | KEY0_FAIL | KEY1_ERR_NUM | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| USR_DATA_FAIL | KEY0_ERR_NUM | SYS_PART1_FAIL | USR_DATA_ERR_NUM | MAC_SPI_8M_FAIL | SYS_PART1_NUM | — | MAC_SPI_8M_ERR_NUM | ||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| KEY3_FAIL | 31 | RO | 0 | |
| KEY4_ERR_NUM | 30:28 | RO | 0x0 | |
| KEY2_FAIL | 27 | RO | 0 | |
| KEY3_ERR_NUM | 26:24 | RO | 0x0 | |
| KEY1_FAIL | 23 | RO | 0 | |
| KEY2_ERR_NUM | 22:20 | RO | 0x0 | |
| KEY0_FAIL | 19 | RO | 0 | |
| KEY1_ERR_NUM | 18:16 | RO | 0x0 | |
| USR_DATA_FAIL | 15 | RO | 0 | |
| KEY0_ERR_NUM | 14:12 | RO | 0x0 | |
| SYS_PART1_FAIL | 11 | RO | 0 | |
| USR_DATA_ERR_NUM | 10:8 | RO | 0x0 | |
| MAC_SPI_8M_FAIL | 7 | RO | 0 | BLOCK1: ошибок больше, чем исправимо |
| SYS_PART1_NUM | 6:4 | RO | 0x0 | |
| MAC_SPI_8M_ERR_NUM | 2:0 | RO | 0x0 | BLOCK1: число исправленных ошибок |
EFUSE_RD_RS_ERR1_REG — ошибки кода Рида — Соломона BLOCK9–10
Смещение 0x01C4, адрес 0x6000 89C4, после сброса 0x0000 0000. TRM: регистр 4.102.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | KEY5_FAIL | SYS_PART2_ERR_NUM | KEY4_FAIL | KEY5_ERR_NUM | |||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY5_FAIL | 7 | RO | 0 |
| SYS_PART2_ERR_NUM | 6:4 | RO | 0x0 |
| KEY4_FAIL | 3 | RO | 0 |
| KEY5_ERR_NUM | 2:0 | RO | 0x0 |
EFUSE_CLK_REG — тактирование и питание памяти eFuse
Смещение 0x01C8, адрес 0x6000 89C8, после сброса 0x0000 0002. TRM: регистр 4.103.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | CLK_EN | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | EFUSE_MEM_FORCE_PU | MEM_CLK_FORCE_ON | EFUSE_MEM_FORCE_PD | ||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| CLK_EN | 16 | R/W | 0 |
| EFUSE_MEM_FORCE_PU | 2 | R/W | 0 |
| MEM_CLK_FORCE_ON | 1 | R/W | 1 |
| EFUSE_MEM_FORCE_PD | 0 | R/W | 0 |
EFUSE_CONF_REG — код операции: чтение или программирование
Смещение 0x01CC, адрес 0x6000 89CC, после сброса 0x0000 0000. TRM: регистр 4.104.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| OP_CODE | 15:0 | R/W | 0x0000 | Код операции: 0x5AA5 — чтение, 0x5A5A — программирование |
EFUSE_STATUS_REG — состояние контроллера
Смещение 0x01D0, адрес 0x6000 89D0, после сброса 0x0000 0000. TRM: регистр 4.110.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | REPEAT_ERR_CNT | ||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| REPEAT_ERR_CNT | — | STATE | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| REPEAT_ERR_CNT | 17:10 | RO | 0x00 | Число ошибок программирования BLOCK0 |
| STATE | 3:0 | RO | 0x0 | Состояние автомата контроллера |
EFUSE_CMD_REG — команды чтения и программирования
Смещение 0x01D4, адрес 0x6000 89D4, после сброса 0x0000 0000. TRM: регистр 4.105.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | BLK_NUM | PGM_CMD | READ_CMD | ||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| BLK_NUM | 5:2 | R/W | 0x0 | Номер программируемого блока |
| PGM_CMD | 1 | R/WS/SC | 0 | Запись 1 запускает программирование |
| READ_CMD | 0 | R/WS/SC | 0 | Запись 1 перечитывает eFuse в регистры EFUSE_RD_* |
EFUSE_INT_RAW_REG — необработанные флаги прерываний
Смещение 0x01D8, адрес 0x6000 89D8, после сброса 0x0000 0000. TRM: регистр 4.111.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PGM_DONE_INT_RAW | READ_DONE_INT_RAW | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| PGM_DONE_INT_RAW | 1 | R/WC/SS | 0 | Программирование закончено |
| READ_DONE_INT_RAW | 0 | R/WC/SS | 0 | Чтение eFuse в регистры закончено |
EFUSE_INT_ST_REG — флаги прерываний после маски разрешения
Смещение 0x01DC, адрес 0x6000 89DC, после сброса 0x0000 0000. TRM: регистр 4.112.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PGM_DONE_INT_ST | READ_DONE_INT_ST | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| PGM_DONE_INT_ST | 1 | RO | 0 | Программирование закончено |
| READ_DONE_INT_ST | 0 | RO | 0 | Чтение eFuse в регистры закончено |
EFUSE_INT_ENA_REG — разрешение прерываний
Смещение 0x01E0, адрес 0x6000 89E0, после сброса 0x0000 0000. TRM: регистр 4.113.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PGM_DONE_INT_ENA | READ_DONE_INT_ENA | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| PGM_DONE_INT_ENA | 1 | R/W | 0 | Программирование закончено |
| READ_DONE_INT_ENA | 0 | R/W | 0 | Чтение eFuse в регистры закончено |
EFUSE_INT_CLR_REG — сброс флагов прерываний записью 1
Смещение 0x01E4, адрес 0x6000 89E4, после сброса 0x0000 0000. TRM: регистр 4.114.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | PGM_DONE_INT_CLR | READ_DONE_INT_CLR | |||||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| PGM_DONE_INT_CLR | 1 | WO | 0 | Программирование закончено |
| READ_DONE_INT_CLR | 0 | WO | 0 | Чтение eFuse в регистры закончено |
EFUSE_DAC_CONF_REG — напряжение программирования
Смещение 0x01E8, адрес 0x6000 89E8, после сброса 0x0001 FE1C. TRM: регистр 4.106.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | OE_CLR | DAC_NUM | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| DAC_NUM | DAC_CLK_PAD_SEL | DAC_CLK_DIV | |||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| OE_CLR | 17 | R/W | 0 |
| DAC_NUM | 16:9 | R/W | 0xFF |
| DAC_CLK_PAD_SEL | 8 | R/W | 0 |
| DAC_CLK_DIV | 7:0 | R/W | 0x1C |
EFUSE_RD_TIM_CONF_REG — тайминги чтения
Смещение 0x01EC, адрес 0x6000 89EC, после сброса 0x1200 0000. TRM: регистр 4.107.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| READ_INIT_NUM | 31:24 | R/W | 0x12 |
EFUSE_WR_TIM_CONF1_REG — тайминги программирования: включение питания
Смещение 0x01F0, адрес 0x6000 89F0, после сброса 0x0028 8000. TRM: регистр 4.108.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PWR_ON_NUM | 23:8 | R/W | 0x2880 |
EFUSE_WR_TIM_CONF2_REG — тайминги программирования: выключение питания
Смещение 0x01F4, адрес 0x6000 89F4, после сброса 0x0000 0190. TRM: регистр 4.109.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PWR_OFF_NUM | 15:0 | R/W | 0x0190 |
EFUSE_DATE_REG — версия блока: дата ревизии аппаратуры
Смещение 0x01FC, адрес 0x6000 89FC, после сброса 0x0200 6300. TRM: регистр 4.115.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DATE | 27:0 | R/W | 0x2006300 |
Частые вопросы
Как прочитать MAC-адрес ESP32-C3 из регистров eFuse?
Младшие 32 бита MAC лежат в EFUSE_RD_MAC_SPI_SYS_0_REG, старшие 16 — в поле MAC_1 регистра EFUSE_RD_MAC_SPI_SYS_1_REG. Байты идут в обратном порядке: старший байт регистра 1 — первый байт адреса. Функция esp_efuse_mac_get_default делает то же; CRC заводского MAC в eFuse ESP32-C3 нет — он есть только у ESP32.
Что означают регистры EFUSE_RD_RS_ERR ESP32-C3?
Блоки 1–10 защищены кодом Рида — Соломона. В EFUSE_RD_RS_ERR0_REG и RS_ERR1_REG на каждый блок есть число исправленных ошибок (поле *_ERR_NUM) и флаг *_FAIL: если он установлен, ошибок больше, чем код может исправить, и данные блока недостоверны.
Источники
- Espressif. ESP32-C3 Technical Reference Manual, версия 1.4 — глава 4: таблица 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
- RTC_CNTL — управление питанием, сном и RTCRTC_CNTL_OPTIONS0_REG, RTC_CNTL_SLP_TIMER0_REG, RTC_CNTL_SLP_TIMER1_REG, RTC_CNTL_TIME_UPDATE_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
- 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
Статьи, инструменты и термины
- eFuse и OTPОднократно программируемые биты: настройки, ключи, калибровка
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- ESP32-C3: выводы и GPIO22 GPIO: функции, свободные и занятые выводы, флеш-память, strapping, USB, JTAG, токи