Регистры eFuse ESP32-S3
Регистры контроллера eFuse ESP32-S3 для чтения: копии блоков однократно программируемой памяти — запреты и системные настройки 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_DATA0_REG
- EFUSE_RD_SYS_PART1_DATA1_REG
- EFUSE_RD_SYS_PART1_DATA2_REG
- EFUSE_RD_SYS_PART1_DATA3_REG
- EFUSE_RD_SYS_PART1_DATA4_REG
- EFUSE_RD_SYS_PART1_DATA5_REG
- EFUSE_RD_SYS_PART1_DATA6_REG
- EFUSE_RD_SYS_PART1_DATA7_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-S3 — 4 Кбит однократно программируемой памяти в 11 блоках: BLOCK0 — 640 бит, BLOCK1 — 288, BLOCK2…10 — по 352 бита с кодом коррекции. Контроллер по адресу 0x6000 7000 при сбросе копирует их в регистры EFUSE_RD_*. Чтобы перечитать после программирования, записывают 0x5AA5 в OP_CODE регистра EFUSE_CONF_REG, затем 1 в READ_CMD регистра EFUSE_CMD_REG и ждут, пока EFUSE_CMD_REG станет 0.
BLOCK0 хранит запреты записи (WR_DIS) и чтения ключевых блоков (RD_DIS), отключение JTAG, USB, режимов загрузки, назначение ключей KEY_PURPOSE_0…5, включение Secure Boot, счётчик шифрования флеш-памяти, задержку RTC-сторожа WDT_DELAY_SEL и выбор питания выводов. Каждый бит BLOCK0, кроме WR_DIS, записан в четырёх копиях; ошибки копий видны в RD_REPEAT_ERR0…4.
BLOCK1 — MAC-адрес и настройки выводов флеш-памяти, BLOCK2 — системные данные, BLOCK3 — данные пользователя, BLOCK4…9 — ключи KEY0…KEY5, BLOCK10 — системные данные. Блоки 1…10 защищены кодом Рида — Соломона RS(44, 32), который исправляет до 6 байт; результат декодирования — в RD_RS_ERR0 и RS_ERR1. Буфер программирования EFUSE_PGM_DATAn и EFUSE_PGM_CHECK_VALUEn на странице не показан.
| Экземпляр | Базовый адрес |
|---|---|
| EFUSE | 0x6000 7000 |
Пример на C
Чтение MAC и перечитывание eFuse (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 mac_lo = REG_READ(EFUSE_RD_MAC_SPI_SYS_0_REG); // младшие 32 бита
uint32_t mac_hi = REG_GET_FIELD(EFUSE_RD_MAC_SPI_SYS_1_REG, EFUSE_MAC_1); // старшие 16
REG_WRITE(EFUSE_CONF_REG, 0x5AA5); // код операции чтения
REG_WRITE(EFUSE_CMD_REG, EFUSE_READ_CMD);
while (REG_READ(EFUSE_CMD_REG) != 0) {} // копии в RD_* обновленыРегистры блока
Регистры записи (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 OTG, TWAI | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA1_REG | 0x0034 | BLOCK0: назначения ключей 0 и 1, отзыв ключей Secure Boot, задержка RWDT | 0x0000 0000 |
| EFUSE_RD_REPEAT_DATA2_REG | 0x0038 | BLOCK0: назначения ключей 2–5, Secure Boot, USB PHY и JTAG | 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: системные данные, биты 8…39 | 0x0000 0000 |
| EFUSE_RD_MAC_SPI_SYS_5_REG | 0x0058 | BLOCK1: системные данные, биты 40…71 | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA0_REG | 0x005C | BLOCK2: уникальный номер, биты 0…31 | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA1_REG | 0x0060 | BLOCK2: уникальный номер, биты 32…63 | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA2_REG | 0x0064 | BLOCK2: уникальный номер, биты 64…95 | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA3_REG | 0x0068 | BLOCK2: уникальный номер, биты 96…127 | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA4_REG | 0x006C | BLOCK2: системные данные | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA5_REG | 0x0070 | BLOCK2: системные данные | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA6_REG | 0x0074 | BLOCK2: системные данные | 0x0000 0000 |
| EFUSE_RD_SYS_PART1_DATA7_REG | 0x0078 | BLOCK2: системные данные | 0x0000 0000 |
| EFUSE_RD_USR_DATAn_REG | 0x007C + n · 0x0004 | BLOCK3: данные пользователя, слово n | 0x0000 0000 |
| EFUSE_RD_KEY0_DATAn_REG | 0x009C + n · 0x0004 | BLOCK4: ключ KEY0, слово n | 0x0000 0000 |
| EFUSE_RD_KEY1_DATAn_REG | 0x00BC + n · 0x0004 | BLOCK5: ключ KEY1, слово n | 0x0000 0000 |
| EFUSE_RD_KEY2_DATAn_REG | 0x00DC + n · 0x0004 | BLOCK6: ключ KEY2, слово n | 0x0000 0000 |
| EFUSE_RD_KEY3_DATAn_REG | 0x00FC + n · 0x0004 | BLOCK7: ключ KEY3, слово n | 0x0000 0000 |
| EFUSE_RD_KEY4_DATAn_REG | 0x011C + n · 0x0004 | BLOCK8: ключ KEY4, слово n | 0x0000 0000 |
| EFUSE_RD_KEY5_DATAn_REG | 0x013C + n · 0x0004 | BLOCK9: ключ KEY5, слово n | 0x0000 0000 |
| EFUSE_RD_SYS_PART2_DATAn_REG | 0x015C + n · 0x0004 | BLOCK10: системные данные, слово n | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR0_REG | 0x017C | Ошибки копий BLOCK0 к RD_REPEAT_DATA0 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR1_REG | 0x0180 | Ошибки копий BLOCK0 к RD_REPEAT_DATA1 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR2_REG | 0x0184 | Ошибки копий BLOCK0 к RD_REPEAT_DATA2 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR3_REG | 0x0188 | Ошибки копий BLOCK0 к RD_REPEAT_DATA3 | 0x0000 0000 |
| EFUSE_RD_REPEAT_ERR4_REG | 0x0190 | Ошибки копий BLOCK0 к RD_REPEAT_DATA4 | 0x0000 0000 |
| EFUSE_RD_RS_ERR0_REG | 0x01C0 | Ошибки RS-кода: BLOCK1, BLOCK2, BLOCK3, KEY0…KEY4 | 0x0000 0000 |
| EFUSE_RD_RS_ERR1_REG | 0x01C4 | Ошибки RS-кода: KEY5 и BLOCK10 | 0x0000 0000 |
| EFUSE_CLK_REG | 0x01C8 | Тактирование и питание памяти eFuse | 0x0000 0002 |
| EFUSE_CONF_REG | 0x01CC | Код операции: чтение или программирование | 0x0000 0000 |
| EFUSE_STATUS_REG | 0x01D0 | Состояние автомата и ошибки программирования BLOCK0 | 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 | 0x01F4 | Тайминг программирования: включение питания | 0x0028 8000 |
| EFUSE_WR_TIM_CONF2_REG | 0x01F8 | Тайминг программирования: выключение питания | 0x0000 0190 |
| EFUSE_DATE_REG | 0x01FC | Версия блока: дата ревизии аппаратуры | 0x0200 3310 |
Доступ — обозначения TRM: R/W — чтение и запись, RO — только чтение, WO — только запись, WT — запись 1 запускает действие, SS и SC — бит ставится и сбрасывается аппаратно, WTC — сбрасывается записью 1.
EFUSE_RD_WR_DIS_REG — bLOCK0: запреты записи
Смещение 0x002C, адрес 0x6000 702C, после сброса 0x0000 0000. TRM: регистр 5.12.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| WR_DIS | 31:0 | RO | 0x0000 0000 | Бит на группу параметров: 1 — программирование запрещено |
EFUSE_RD_REPEAT_DATA0_REG — bLOCK0: запреты чтения, отключение кэша, JTAG, USB OTG, TWAI
Смещение 0x0030, адрес 0x6000 7030, после сброса 0x0000 0000. TRM: регистр 5.13.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | EXT_PHY_ENABLE | 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 |
| DIS_APP_CPU | DIS_TWAI | DIS_USB_OTG | DIS_FORCE_DOWNLOAD | DIS_DOWNLOAD_DCACHE | DIS_DOWNLOAD_ICACHE | DIS_DCACHE | DIS_ICACHE | RPT4_RESERVED3 | RD_DIS | ||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| EXT_PHY_ENABLE | 26 | RO | 0 | 1 — внешний USB PHY |
| USB_EXCHG_PINS | 25 | RO | 0 | 1 — выводы D+ и D− USB переставлены |
| DIS_DOWNLOAD_MANUAL_ENCRYPT | 20 | RO | 0 | |
| DIS_PAD_JTAG | 19 | RO | 0 | 1 — JTAG на выводах выключен навсегда |
| SOFT_DIS_JTAG | 18:16 | RO | 0x0 | Нечётное число единиц — JTAG выключен программно |
| DIS_APP_CPU | 15 | RO | 0 | 1 — второе ядро выключено |
| DIS_TWAI | 14 | RO | 0 | 1 — TWAI выключен |
| DIS_USB_OTG | 13 | RO | 0 | 1 — USB OTG выключен |
| DIS_FORCE_DOWNLOAD | 12 | RO | 0 | 1 — запрещён принудительный вход в режим загрузки |
| DIS_DOWNLOAD_DCACHE | 11 | RO | 0 | |
| DIS_DOWNLOAD_ICACHE | 10 | RO | 0 | |
| DIS_DCACHE | 9 | RO | 0 | 1 — кэш данных выключен |
| DIS_ICACHE | 8 | RO | 0 | 1 — кэш инструкций выключен |
| RPT4_RESERVED3 | 7 | RO | 0 | |
| RD_DIS | 6:0 | RO | 0x00 | Бит на блок 4…10: 1 — чтение блока программой запрещено |
EFUSE_RD_REPEAT_DATA1_REG — bLOCK0: назначения ключей 0 и 1, отзыв ключей Secure Boot, задержка RWDT
Смещение 0x0034, адрес 0x6000 7034, после сброса 0x0000 0000. TRM: регистр 5.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 |
| — | VDD_SPI_FORCE | VDD_SPI_TIEH | VDD_SPI_XPD | — | |||||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| KEY_PURPOSE_1 | 31:28 | RO | 0x0 | Назначение ключа KEY1 |
| KEY_PURPOSE_0 | 27:24 | RO | 0x0 | Назначение ключа KEY0 |
| 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 | Множитель длительности стадии 0 RTC-сторожа |
| VDD_SPI_FORCE | 6 | RO | 0 | |
| VDD_SPI_TIEH | 5 | RO | 0 | |
| VDD_SPI_XPD | 4 | RO | 0 |
EFUSE_RD_REPEAT_DATA2_REG — bLOCK0: назначения ключей 2–5, Secure Boot, USB PHY и JTAG
Смещение 0x0038, адрес 0x6000 7038, после сброса 0x0000 0000. TRM: регистр 5.15.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FLASH_TPUW | — | USB_PHY_SEL | STRAP_JTAG_SEL | DIS_USB_SERIAL_JTAG | DIS_USB_JTAG | SECURE_BOOT_AGGRESSIVE_REVOKE | SECURE_BOOT_EN | RPT4_RESERVED0 | |||||||
| 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 | Ожидание флеш-памяти после включения питания, мс |
| USB_PHY_SEL | 25 | RO | 0 | Какой контроллер получает встроенный USB PHY |
| STRAP_JTAG_SEL | 24 | RO | 0 | |
| DIS_USB_SERIAL_JTAG | 23 | RO | 0 | 1 — USB Serial/JTAG выключен |
| DIS_USB_JTAG | 22 | RO | 0 | |
| SECURE_BOOT_AGGRESSIVE_REVOKE | 21 | RO | 0 | |
| SECURE_BOOT_EN | 20 | RO | 0 | 1 — Secure Boot включён |
| RPT4_RESERVED0 | 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 703C, после сброса 0x0000 0000. TRM: регистр 5.16.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DIS_USB_OTG_DOWNLOAD_MODE | — | SECURE_VERSION | |||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| SECURE_VERSION | FORCE_SEND_RESUME | FLASH_ECC_EN | FLASH_PAGE_SIZE | FLASH_TYPE | PIN_POWER_SELECTION | UART_PRINT_CONTROL | ENABLE_SECURITY_DOWNLOAD | DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE | FLASH_ECC_MODE | DIS_USB_PRINT | DIS_LEGACY_SPI_BOOT | DIS_DOWNLOAD_MODE | |||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| DIS_USB_OTG_DOWNLOAD_MODE | 31 | RO | 0 | |
| SECURE_VERSION | 29:14 | RO | 0x0000 | Версия безопасности для защиты от отката прошивки |
| FORCE_SEND_RESUME | 13 | RO | 0 | |
| FLASH_ECC_EN | 12 | RO | 0 | |
| FLASH_PAGE_SIZE | 11:10 | RO | 0x0 | Страница флеш-памяти: 0 — 256 байт, 1 — 512, 2 — 1 КБ, 3 — 2 КБ |
| FLASH_TYPE | 9 | RO | 0 | Линий данных флеш-памяти: 0 — четыре, 1 — восемь |
| PIN_POWER_SELECTION | 8 | RO | 0 | Питание GPIO33…37, GPIO47 и GPIO48 |
| UART_PRINT_CONTROL | 7:6 | RO | 0x0 | Вывод сообщений ROM в UART при загрузке |
| ENABLE_SECURITY_DOWNLOAD | 5 | RO | 0 | |
| DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE | 4 | RO | 0 | |
| FLASH_ECC_MODE | 3 | RO | 0 | |
| DIS_USB_PRINT | 2 | RO | 0 | |
| DIS_LEGACY_SPI_BOOT | 1 | RO | 0 | |
| DIS_DOWNLOAD_MODE | 0 | RO | 0 | 1 — режим загрузки запрещён |
EFUSE_RD_REPEAT_DATA4_REG — bLOCK0: зарезервированные биты
Смещение 0x0040, адрес 0x6000 7040, после сброса 0x0000 0000. TRM: регистр 5.17.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RPT4_RESERVED2 | 23:0 | RO | 0x000000 |
EFUSE_RD_MAC_SPI_SYS_0_REG — bLOCK1: MAC-адрес, младшие 32 бита
Смещение 0x0044, адрес 0x6000 7044, после сброса 0x0000 0000. TRM: регистр 5.18.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| MAC_0 | 31:0 | RO | 0x0000 0000 | Младшие 32 бита MAC-адреса |
EFUSE_RD_MAC_SPI_SYS_1_REG — bLOCK1: MAC-адрес, старшие 16 бит, выводы флеш-памяти
Смещение 0x0048, адрес 0x6000 7048, после сброса 0x0000 0000. TRM: регистр 5.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 704C, после сброса 0x0000 0000. TRM: регистр 5.20.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SPI_PAD_CONF_1 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_MAC_SPI_SYS_3_REG — bLOCK1: выводы флеш-памяти, версии кристалла и корпуса
Смещение 0x0050, адрес 0x6000 7050, после сброса 0x0000 0000. TRM: регистр 5.21.
TRM делит биты 23:18 на PKG_VERSION и WAFER_VERSION, SVD объединяет биты 31:18 в одно поле SYS_DATA_PART0_0; страница следует TRM. В ESP-IDF биты 20:18 называются WAFER_VERSION_MINOR_LO, биты 26:24 — BLK_VERSION_MINOR.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| SYS_DATA_PART0_0 | PKG_VERSION | WAFER_VERSION | 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:24 | RO | 0x00 | Системные данные, биты 0…7 (в ESP-IDF здесь BLK_VERSION_MINOR и другие поля) |
| PKG_VERSION | 23:21 | RO | 0x0 | Версия корпуса |
| WAFER_VERSION | 20:18 | RO | 0x0 | Версия кристалла (WAFER_VERSION_MINOR_LO в ESP-IDF) |
| SPI_PAD_CONF_2 | 17:0 | RO | 0x00000 |
EFUSE_RD_MAC_SPI_SYS_4_REG — bLOCK1: системные данные, биты 8…39
Смещение 0x0054, адрес 0x6000 7054, после сброса 0x0000 0000. TRM: регистр 5.22.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART0_1 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_MAC_SPI_SYS_5_REG — bLOCK1: системные данные, биты 40…71
Смещение 0x0058, адрес 0x6000 7058, после сброса 0x0000 0000. TRM: регистр 5.23.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART0_2 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA0_REG — bLOCK2: уникальный номер, биты 0…31
Смещение 0x005C, адрес 0x6000 705C, после сброса 0x0000 0000. TRM: регистр 5.24.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| OPTIONAL_UNIQUE_ID_0 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA1_REG — bLOCK2: уникальный номер, биты 32…63
Смещение 0x0060, адрес 0x6000 7060, после сброса 0x0000 0000. TRM: регистр 5.25.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| OPTIONAL_UNIQUE_ID_1 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA2_REG — bLOCK2: уникальный номер, биты 64…95
Смещение 0x0064, адрес 0x6000 7064, после сброса 0x0000 0000. TRM: регистр 5.26.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| OPTIONAL_UNIQUE_ID_2 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA3_REG — bLOCK2: уникальный номер, биты 96…127
Смещение 0x0068, адрес 0x6000 7068, после сброса 0x0000 0000. TRM: регистр 5.27.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| OPTIONAL_UNIQUE_ID_3 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA4_REG — bLOCK2: системные данные
Смещение 0x006C, адрес 0x6000 706C, после сброса 0x0000 0000. TRM: регистр 5.28.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART1_0 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA5_REG — bLOCK2: системные данные
Смещение 0x0070, адрес 0x6000 7070, после сброса 0x0000 0000. TRM: регистр 5.29.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART1_1 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA6_REG — bLOCK2: системные данные
Смещение 0x0074, адрес 0x6000 7074, после сброса 0x0000 0000. TRM: регистр 5.30.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART1_2 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_SYS_PART1_DATA7_REG — bLOCK2: системные данные
Смещение 0x0078, адрес 0x6000 7078, после сброса 0x0000 0000. TRM: регистр 5.31.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART1_3 | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_USR_DATAn_REG — bLOCK3: данные пользователя, слово n
8 копий, n = 0…7: смещение 0x007C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.32.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| USR_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY0_DATAn_REG — bLOCK4: ключ KEY0, слово n
8 копий, n = 0…7: смещение 0x009C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.40.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY0_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY1_DATAn_REG — bLOCK5: ключ KEY1, слово n
8 копий, n = 0…7: смещение 0x00BC + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.48.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY1_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY2_DATAn_REG — bLOCK6: ключ KEY2, слово n
8 копий, n = 0…7: смещение 0x00DC + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.56.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY2_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY3_DATAn_REG — bLOCK7: ключ KEY3, слово n
8 копий, n = 0…7: смещение 0x00FC + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.64.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY3_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY4_DATAn_REG — bLOCK8: ключ KEY4, слово n
8 копий, n = 0…7: смещение 0x011C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.72.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| KEY4_DATAn | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_KEY5_DATAn_REG — bLOCK9: ключ KEY5, слово n
8 копий, n = 0…7: смещение 0x013C + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 5.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: регистр 5.88.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_DATA_PART2_n | 31:0 | RO | 0x0000 0000 |
EFUSE_RD_REPEAT_ERR0_REG — ошибки копий BLOCK0 к RD_REPEAT_DATA0
Смещение 0x017C, адрес 0x6000 717C, после сброса 0x0000 0000. TRM: регистр 5.96.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| — | EXT_PHY_ENABLE_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 |
| DIS_APP_CPU_ERR | DIS_TWAI_ERR | DIS_USB_OTG_ERR | DIS_FORCE_DOWNLOAD_ERR | DIS_DOWNLOAD_DCACHE_ERR | DIS_DOWNLOAD_ICACHE_ERR | DIS_DCACHE_ERR | DIS_ICACHE_ERR | DIS_RTC_RAM_BOOT_ERR | RD_DIS_ERR | ||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| EXT_PHY_ENABLE_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 |
| DIS_APP_CPU_ERR | 15 | RO | 0 |
| DIS_TWAI_ERR | 14 | RO | 0 |
| DIS_USB_OTG_ERR | 13 | RO | 0 |
| DIS_FORCE_DOWNLOAD_ERR | 12 | RO | 0 |
| DIS_DOWNLOAD_DCACHE_ERR | 11 | RO | 0 |
| DIS_DOWNLOAD_ICACHE_ERR | 10 | RO | 0 |
| DIS_DCACHE_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 к RD_REPEAT_DATA1
Смещение 0x0180, адрес 0x6000 7180, после сброса 0x0000 0000. TRM: регистр 5.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 |
| — | VDD_SPI_FORCE_ERR | VDD_SPI_TIEH_ERR | VDD_SPI_XPD_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 |
| VDD_SPI_FORCE_ERR | 6 | RO | 0 |
| VDD_SPI_TIEH_ERR | 5 | RO | 0 |
| VDD_SPI_XPD_ERR | 4 | RO | 0 |
EFUSE_RD_REPEAT_ERR2_REG — ошибки копий BLOCK0 к RD_REPEAT_DATA2
Смещение 0x0184, адрес 0x6000 7184, после сброса 0x0000 0000. TRM: регистр 5.98.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| FLASH_TPUW_ERR | — | USB_PHY_SEL_ERR | STRAP_JTAG_SEL_ERR | DIS_USB_SERIAL_JTAG_ERR | DIS_USB_JTAG_ERR | SECURE_BOOT_AGGRESSIVE_REVOKE_ERR | SECURE_BOOT_EN_ERR | RPT4_RESERVED0_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 |
| USB_PHY_SEL_ERR | 25 | RO | 0 |
| STRAP_JTAG_SEL_ERR | 24 | RO | 0 |
| DIS_USB_SERIAL_JTAG_ERR | 23 | RO | 0 |
| DIS_USB_JTAG_ERR | 22 | RO | 0 |
| SECURE_BOOT_AGGRESSIVE_REVOKE_ERR | 21 | RO | 0 |
| SECURE_BOOT_EN_ERR | 20 | RO | 0 |
| RPT4_RESERVED0_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 к RD_REPEAT_DATA3
Смещение 0x0188, адрес 0x6000 7188, после сброса 0x0000 0000. TRM: регистр 5.99.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| DIS_USB_OTG_DOWNLOAD_MODE_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 | FLASH_ECC_EN_ERR | FLASH_PAGE_SIZE_ERR | FLASH_TYPE_ERR | PIN_POWER_SELECTION_ERR | UART_PRINT_CONTROL_ERR | ENABLE_SECURITY_DOWNLOAD_ERR | DIS_USB_SERIAL_JTAG_DOWNLOAD_MODE_ERR | FLASH_ECC_MODE_ERR | DIS_USB_PRINT_ERR | DIS_LEGACY_SPI_BOOT_ERR | DIS_DOWNLOAD_MODE_ERR | |||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DIS_USB_OTG_DOWNLOAD_MODE_ERR | 31 | RO | 0 |
| SECURE_VERSION_ERR | 29:14 | RO | 0x0000 |
| FORCE_SEND_RESUME_ERR | 13 | RO | 0 |
| FLASH_ECC_EN_ERR | 12 | RO | 0 |
| FLASH_PAGE_SIZE_ERR | 11:10 | RO | 0x0 |
| FLASH_TYPE_ERR | 9 | RO | 0 |
| PIN_POWER_SELECTION_ERR | 8 | RO | 0 |
| 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 |
| FLASH_ECC_MODE_ERR | 3 | RO | 0 |
| DIS_USB_PRINT_ERR | 2 | RO | 0 |
| DIS_LEGACY_SPI_BOOT_ERR | 1 | RO | 0 |
| DIS_DOWNLOAD_MODE_ERR | 0 | RO | 0 |
EFUSE_RD_REPEAT_ERR4_REG — ошибки копий BLOCK0 к RD_REPEAT_DATA4
Смещение 0x0190, адрес 0x6000 7190, после сброса 0x0000 0000. TRM: регистр 5.100.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| RPT4_RESERVED2_ERR | 23:0 | RO | 0x000000 |
EFUSE_RD_RS_ERR0_REG — ошибки RS-кода: BLOCK1, BLOCK2, BLOCK3, KEY0…KEY4
Смещение 0x01C0, адрес 0x6000 71C0, после сброса 0x0000 0000. TRM: регистр 5.101.
Рисунок 5.101 TRM в текстовом виде противоречив: флаг KEY4_FAIL и MAC_SPI_8M_FAIL оба в бите 3, бита 7 нет. Показаны поля SVD, совпадающие с ESP-IDF v6.1: флаг *_FAIL каждого блока лежит сразу над его счётчиком *_ERR_NUM.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
| KEY4_FAIL | KEY4_ERR_NUM | KEY3_FAIL | KEY3_ERR_NUM | KEY2_FAIL | KEY2_ERR_NUM | KEY1_FAIL | KEY1_ERR_NUM | ||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| KEY0_FAIL | KEY0_ERR_NUM | USR_DATA_FAIL | USR_DATA_ERR_NUM | SYS_PART1_FAIL | SYS_PART1_NUM | MAC_SPI_8M_FAIL | MAC_SPI_8M_ERR_NUM | ||||||||
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| KEY4_FAIL | 31 | RO | 0 | |
| KEY4_ERR_NUM | 30:28 | RO | 0x0 | |
| KEY3_FAIL | 27 | RO | 0 | |
| KEY3_ERR_NUM | 26:24 | RO | 0x0 | |
| KEY2_FAIL | 23 | RO | 0 | |
| KEY2_ERR_NUM | 22:20 | RO | 0x0 | |
| KEY1_FAIL | 19 | RO | 0 | |
| KEY1_ERR_NUM | 18:16 | RO | 0x0 | |
| KEY0_FAIL | 15 | RO | 0 | |
| KEY0_ERR_NUM | 14:12 | RO | 0x0 | |
| USR_DATA_FAIL | 11 | RO | 0 | 1 — данные BLOCK3 недостоверны |
| USR_DATA_ERR_NUM | 10:8 | RO | 0x0 | Число исправленных байтов BLOCK3 |
| SYS_PART1_FAIL | 7 | RO | 0 | 1 — данные BLOCK2 недостоверны |
| SYS_PART1_NUM | 6:4 | RO | 0x0 | Число исправленных байтов BLOCK2 |
| MAC_SPI_8M_FAIL | 3 | RO | 0 | 1 — данные BLOCK1 недостоверны |
| MAC_SPI_8M_ERR_NUM | 2:0 | RO | 0x0 | Число исправленных байтов BLOCK1 |
EFUSE_RD_RS_ERR1_REG — ошибки RS-кода: KEY5 и BLOCK10
Смещение 0x01C4, адрес 0x6000 71C4, после сброса 0x0000 0000. TRM: регистр 5.102.
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| — | SYS_PART2_FAIL | SYS_PART2_ERR_NUM | KEY5_FAIL | KEY5_ERR_NUM | |||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| SYS_PART2_FAIL | 7 | RO | 0 |
| SYS_PART2_ERR_NUM | 6:4 | RO | 0x0 |
| KEY5_FAIL | 3 | RO | 0 |
| KEY5_ERR_NUM | 2:0 | RO | 0x0 |
EFUSE_CLK_REG — тактирование и питание памяти eFuse
Смещение 0x01C8, адрес 0x6000 71C8, после сброса 0x0000 0002. TRM: регистр 5.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 71CC, после сброса 0x0000 0000. TRM: регистр 5.104.
| Поле | Биты | Доступ | Сброс | Назначение |
|---|---|---|---|---|
| OP_CODE | 15:0 | R/W | 0x0000 | Код операции: 0x5AA5 — чтение |
EFUSE_STATUS_REG — состояние автомата и ошибки программирования BLOCK0
Смещение 0x01D0, адрес 0x6000 71D0, после сброса 0x0000 0000. TRM: регистр 5.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 |
EFUSE_CMD_REG — команды чтения и программирования, номер блока
Смещение 0x01D4, адрес 0x6000 71D4, после сброса 0x0000 0000. TRM: регистр 5.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 | Номер программируемого блока 0…10 |
| PGM_CMD | 1 | R/WS/SC | 0 | Запись 1 — программирование; сбрасывается по окончании |
| READ_CMD | 0 | R/WS/SC | 0 | Запись 1 — перечитать eFuse; сбрасывается по окончании |
EFUSE_INT_RAW_REG — необработанные флаги прерываний
Смещение 0x01D8, адрес 0x6000 71D8, после сброса 0x0000 0000. TRM: регистр 5.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 71DC, после сброса 0x0000 0000. TRM: регистр 5.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 71E0, после сброса 0x0000 0000. TRM: регистр 5.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 71E4, после сброса 0x0000 0000. TRM: регистр 5.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 71E8, после сброса 0x0001 FE1C. TRM: регистр 5.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_DIV | |||||||||||||
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| OE_CLR | 17 | R/W | 0 |
| DAC_NUM | 16:9 | R/W | 0xFF |
| DAC_CLK_DIV | 7:0 | R/W | 0x1C |
EFUSE_RD_TIM_CONF_REG — тайминг чтения
Смещение 0x01EC, адрес 0x6000 71EC, после сброса 0x1200 0000. TRM: регистр 5.107.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| READ_INIT_NUM | 31:24 | R/W | 0x12 |
EFUSE_WR_TIM_CONF1_REG — тайминг программирования: включение питания
Смещение 0x01F4, адрес 0x6000 71F4, после сброса 0x0028 8000. TRM: регистр 5.108 (EFUSE_WR_TIME_CONF1_REG).
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PWR_ON_NUM | 23:8 | R/W | 0x2880 |
EFUSE_WR_TIM_CONF2_REG — тайминг программирования: выключение питания
Смещение 0x01F8, адрес 0x6000 71F8, после сброса 0x0000 0190. TRM: регистр 5.109.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| PWR_OFF_NUM | 15:0 | R/W | 0x0190 |
EFUSE_DATE_REG — версия блока: дата ревизии аппаратуры
Смещение 0x01FC, адрес 0x6000 71FC, после сброса 0x0200 3310. TRM: регистр 5.115.
| Поле | Биты | Доступ | Сброс |
|---|---|---|---|
| DATE | 27:0 | R/W | 0x2003310 |
Частые вопросы
Как прочитать MAC-адрес ESP32-S3 из регистров eFuse?
По TRM младшие 32 бита MAC лежат в EFUSE_RD_MAC_SPI_SYS_0_REG (поле MAC_0), старшие 16 — в поле MAC_1 регистра EFUSE_RD_MAC_SPI_SYS_1_REG. Готовый 6-байтный адрес возвращает функция esp_efuse_mac_get_default из mac_addr.c ESP-IDF: она читает поле ESP_EFUSE_MAC_FACTORY функцией esp_efuse_read_field_blob.
Что показывают регистры EFUSE_RD_RS_ERR ESP32-S3?
Для каждого блока 1…10 — число байтов, исправленных кодом RS(44, 32) (поля *_ERR_NUM), и флаг *_FAIL: 1 означает, что ошибок больше шести и данные блока недостоверны. Регистры обновляются при каждом чтении eFuse.
Источники
- Espressif. ESP32-S3 Technical Reference Manual, версия 1.8 — глава 5: таблица 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
- RTC_CNTL — управление питанием, сном и RTC-доменомRTC_CNTL_OPTIONS0_REG, RTC_CNTL_SLP_TIMER0_REG, RTC_CNTL_SLP_TIMER1_REG, RTC_CNTL_TIME_UPDATE_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
- 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
Статьи, инструменты и термины
- eFuse и OTPОднократно программируемые биты: настройки, ключи, калибровка
- Strapping-выводы ESP32Какие GPIO читаются при сбросе: загрузка, напряжение флеш-памяти, JTAG — для ESP32, S2, S3, C2, C3, C5, C6, H2, P4
- ESP32-S3: выводы и GPIO45 GPIO: функции, свободные и занятые выводы, флеш и PSRAM, strapping, USB, JTAG, токи