У ESP32 есть несколько энергонезависимых, однократно устанавливаемых настроек eFuse, в которых сохраняются системные параметры. Фундаментально eFuse это одиночный бит, который если запрограммирован в 1, то больше не может быть возвращен в 0. Программа может инструктировать контроллер eFuse запрограммировать каждый бит в каждой для каждого системного параметра, как это необходимо.
Примечание: здесь приведен перевод главы "eFuse Controller" документа [1].
Некоторые из этих параметров можно прочитать программно, используя контроллер eFuse. Некоторые из параметров напрямую использует аппаратура ESP32.
• Конфигурация eFuse содержит 33 системных параметра. • Имеется опция защиты от записи. • Имеется опция защиты от чтения программой.
[Функциональное описание eFuse]
Имена каждого из 33 системных параметров и их соответствующее номера и количество бит показаны в таблице 82. Среди этих параметров напрямую используются контроллером eFuse параметры efuse_wr_disable, efuse_rd_disable, BLK3_part_reserve и coding_scheme.
Таблица 82. Системные параметры.
Имя |
Ширина в битах |
Программная защита по efuse_wr_disable |
Защита от чтения по efuse_rd_disable |
Описание |
efuse_wr_disable |
16 |
1 |
- |
Управляется контроллером eFuse. |
efuse_rd_disable |
4 |
0 |
- |
flash_crypt_cnt |
7 |
2 |
- |
Управляет шифрованием/декодированием Flash. |
WIFI_MAC_Address |
56 |
3 |
- |
Wi-Fi MAC-адрес и CRC. |
SPI_pad_config_hd |
5 |
3 |
- |
Конфигурирует SPI I/O на определенные выводы. |
XPD_SDIO_REG |
1 |
5 |
- |
Включает регулятор питания Flash. |
SDIO_TIEH |
1 |
5 |
- |
Конфигурирует напряжение регулятора питания Flash: установите в для 3.3V, и установите в 0 для 1.8V. |
sdio_force |
1 |
5 |
- |
Определяет, могут ли XPD_SDIO_REG и SDIO_TIEH управлять регулятором питания Flash. |
BLK3_part_reserve |
2 |
10 |
3 |
Управляет контроллером eFuse. |
SPI_pad_config_clk |
5 |
6 |
- |
Конфигурирует SPI I/O на определенный контакт. |
SPI_pad_config_q |
5 |
6 |
- |
SPI_pad_config_d |
5 |
6 |
- |
SPI_pad_config_cs0 |
5 |
6 |
- |
flash_crypt_config |
4 |
10 |
3 |
Управляет шифрованием/декодированием Flash. |
coding_scheme* |
2 |
10 |
3 |
Управляет контроллером eFuse. |
console_debug_disable |
1 |
15 |
- |
Отключает режим восстановления консоли отладки ROM BASIC, если установлено значение 1. |
abstract_done_0 |
1 |
12 |
- |
Определяет состояние Secure Boot. |
abstract_done_1 |
1 |
13 |
- |
JTAG_disable |
1 |
14 |
- |
Запрещает доступ к контроллерам JTAG, что эффективно запрещает внешнее использование JTAG. |
download_dis_encrypt |
1 |
15 |
- |
Управляет шифрованием/декодированием Flash. |
download_dis_decrypt |
1 |
15 |
- |
download_dis_cache |
1 |
15 |
- |
Запрещает кэш, когда режим загрузки (boot mode) находится в (Download Mode). |
key_status |
1 |
10 |
3 |
Определяет, развертывается ли BLOCK3 для целей пользователя. |
BLOCK1* |
256/192/128 |
7 |
0 |
Управляет шифрованием/декодированием Flash. |
BLOCK2* |
8 |
1 |
Ключ шифрования для Secure Boot. |
BLOCK3* |
9 |
2 |
Ключ шифрования для пользователя. |
disable_app_cpu |
1 |
3 |
- |
Запрещает APP CPU. |
disable_bt |
1 |
3 |
- |
Запрещает Bluetooth. |
pkg_version |
4 |
3 |
- |
Версия упаковки. |
disable_cache |
1 |
3 |
- |
Запрещает кэш. |
CK8M Frequency |
8 |
4 |
- |
Частота RTC8M_CLK. |
vol_level_hp_inv |
2 |
3 |
- |
Сохраняет уровень напряжения для CPU при работе на 240 МГц, или для flash/PSRAM при работе на 80 МГц. |
dig_vol_l6 |
4 |
11 |
- |
Сохраняет разницу между цифровым регулятором напряжения на уровне 6 и 1.2V. |
uart_download_dis |
1 |
2 |
- |
Когда установлен в 1, окончательно запрещает режим Download. Допустимо только для ESP32 ECO V3. |
efuse_wr_disable. Системный параметр efuse_wr_disable определяет, защищены ли все системные параметры от записи.
Поскольку efuse_wr_disable также является системным параметром, он также он определяет, защищен ли он от записи. Если системный параметр не защищен от записи, то его не запрограммированные биты могут быть запрограммированы из значения 0 в значение 1. Биты, которые ранее были запрограммированы в 1, останутся в состоянии 1. Когда системный параметр защищен от записи, то никакие его биты не могут быть запрограммированы: не запрограммированные биты останутся в 0, и запрограммированные биты останутся в 1.
Состояние защиты от записи каждого системного параметра соответствует биту в efuse_wr_disable. Когда этот бит находится в состоянии 0, системный параметр не защищен от записи. Когда бит efuse_wr_disable установлен в 1, системный параметр защищен от записи. Если системный параметр уже защищен от записи, то он останется защищенным. В столбце "Program-Protection by efuse_wr_disable" таблицы 82 перечисляет биты, которые определяют состояние защиты от записи каждого системного параметра.
efuse_rd_disable. Из 33 системных параметров 27 не защищены от чтения. Они помечены '-' в столбце "Защита от чтения по efuse_rd_disable" в таблице 82. Эти системные параметры, некоторые из которых используются программными и аппаратными модулями одновременно, могут быть в любое время считаны программным обеспечением через контроллер eFuse.
Остальные 6 системных параметров, если они не защищены от чтения программно, могут быть прочитаны как программой, и могут использоваться модулями аппаратуры. Когда они защищены от чтения программно, то могут использоваться только модулями аппаратуры.
Столбец "Программная защита по efuse_wr_disable" в таблице 82 перечисляет соответствующие биты в efuse_rd_disable, которые определяют состояние программной защиты от записи шести системных параметров. Если бит в системном параметре efuse_rd_disable 0, то системный параметр управляемый этим битом, не защищен от чтения программным обеспечением. Если бит в системном параметре efuse_rd_disable 1, то системный параметр, управляемый этим битом, защищен от чтения со стороны программного обеспечения. Если системный параметр защищен от чтения программным обеспечением, то он останется в этом состоянии.
coding_scheme. Как показано в таблице 82, только 3 системных параметра, BLOCK1, BLOCK2 и BLOCK3, имеют переменное количество бит. Их количество бит управляется другим системным параметром, coding_scheme. Несмотря на их переменную ширину в битах, параметрам BLOCK1, BLOCK2 и BLOCK3 назначается фиксированное количество битов в eFuse. Подробности см. в таблице 83.
Таблица 83. Кодирование BLOCK1, BLOCK2, BLOCK3.
coding_scheme[1:0] |
Ширина BLOCK1/2/3 |
Схема кодирования |
Количество бит в eFuse |
00/11 |
256 |
None |
256 |
01 |
192 |
3/4 |
10 |
128 |
Repeat |
Три схемы кодирования объясняются следующим образом:
• BLOCKN представляет любой из следующих трех системных параметров: BLOCK1, BLOCK2 или BLOCK3. • BLOCKN[255:0], BLOCKN[191:0] и BLOCKN[127:0] представляют каждый бит трех системных параметров в этих трех схемах кодирования. • eBLOCKN[255:0] представляет каждый соответствующий бит этих системных параметров в eFuse после кодирования.
BLK3_part_reserve. Системные параметры coding_scheme, BLOCK1, BLOCK2 и BLOCK3 управляются параметром BLK3_part_reserve.
Когда значение BLK3_part_reserve равно 0, то coding_scheme, BLOCK1, BLOCK2 и BLOCK3 можно установить в любое значение.
Когда BLK3_part_reserve 1, coding_scheme, BLOCK1, BLOCK2 и BLOCK3 управляются схемой кодирования 3/4. Между тем недоступен BLOCK3[143 : 96], а именно eBLOCK3[191 : 128].
[Программирование системных параметров]
Программирование системных параметров переменной длины BLOCK1, BLOCK2 и BLOCK3 отличается от программирования системных параметров фиксированной длины. Мы программируем значение eBLOCKN[255:0] закодированных системных параметров BLOCK1, BLOCK2 и BLOCK3 вместо прямого программирования системных параметров. Ширина бит eBLOCKN[255:0] всегда 256. Системные параметры фиксированной длины, напротив, программируются без предварительного кодирования.
Каждый бит 30 системных параметров фиксированной длины и 3 кодированных системных параметра переменной длины соответствуют программированию бита регистра, как показано в таблице 84. Биты регистра будут использоваться, когда программируются системные параметры.
Таблица 84. Программирование регистров.
Системный параметр
|
Регистр
|
Имя |
Ширина |
Бит |
Имя |
Бит |
efuse_wr_disable |
16 |
[15:0] |
EFUSE_BLK0_WDATA0_REG |
[15:0] |
efuse_rd_disable |
4 |
[3:0] |
[19:16] |
flash_crypt_cnt |
7 |
[6:0] |
[26:20] |
uart_download_dis |
1 |
[0] |
[27] |
WIFI_MAC_Address |
56 |
[31:0] |
EFUSE_BLK0_WDATA1_REG |
[31:0] |
[55:32] |
EFUSE_BLK0_WDATA2_REG |
[23:0] |
disable_app_cpu |
1 |
[0] |
EFUSE_BLK0_WDATA3_REG |
[0] |
disable_bt |
1 |
[0] |
[1] |
pkg_version |
4 |
[3:0] |
[2], [11:9] |
disable_cache |
1 |
[0] |
[3] |
SPI_pad_config_hd |
5 |
[4:0] |
[8:4] |
BLK3_part_reserve |
1 |
[0] |
[14] |
CK8M Frequency |
8 |
[7:0] |
EFUSE_BLK0_WDATA4_REG |
[7:0] |
XPD_SDIO_REG |
1 |
[0] |
[14] |
SDIO_TIEH |
1 |
[0] |
[15] |
sdio_force |
1 |
[0] |
[16] |
SPI_pad_config_clk |
5 |
[4:0] |
EFUSE_BLK0_WDATA5_REG |
[4:0] |
SPI_pad_config_q |
5 |
[4:0] |
[9:5] |
SPI_pad_config_d |
5 |
[4:0] |
[14:10] |
SPI_pad_config_cs0 |
5 |
[4:0] |
[19:15] |
vol_level_hp_inv |
2 |
[1:0] |
[23:22] |
dig_vol_l6 |
4 |
[3:0] |
[27:24] |
flash_crypt_config |
4 |
[3:0] |
[31:28] |
coding_scheme |
2 |
[1:0] |
EFUSE_BLK0_WDATA6_REG |
[1:0] |
console_debug_disable |
1 |
[0] |
[2] |
abstract_done_0 |
1 |
[0] |
[4] |
abstract_done_1 |
1 |
[0] |
[5] |
JTAG_disable |
1 |
[0] |
[6] |
download_dis_encrypt |
1 |
[0] |
[7] |
download_dis_decrypt |
1 |
[0] |
[8] |
download_dis_cache |
1 |
[0] |
[9] |
key_status |
1 |
[0] |
[10] |
BLOCK1 |
256/192/128 |
[31:0] |
EFUSE_BLK1_WDATA0_REG |
[31:0] |
[63:32] |
EFUSE_BLK1_WDATA1_REG |
[31:0] |
[95:64] |
EFUSE_BLK1_WDATA2_REG |
[31:0] |
[127:96] |
EFUSE_BLK1_WDATA3_REG |
[31:0] |
[159:128] |
EFUSE_BLK1_WDATA4_REG |
[31:0] |
[191:160] |
EFUSE_BLK1_WDATA5_REG |
[31:0] |
[223:192] |
EFUSE_BLK1_WDATA6_REG |
[31:0] |
[255:224] |
EFUSE_BLK1_WDATA7_REG |
[31:0] |
BLOCK2 |
256/192/128 |
[31:0] |
EFUSE_BLK2_WDATA0_REG |
[31:0] |
[63:32] |
EFUSE_BLK2_WDATA1_REG |
[31:0] |
[95:64] |
EFUSE_BLK2_WDATA2_REG |
[31:0] |
[127:96] |
EFUSE_BLK2_WDATA3_REG |
[31:0] |
[159:128] |
EFUSE_BLK2_WDATA4_REG |
[31:0] |
[191:160] |
EFUSE_BLK2_WDATA5_REG |
[31:0] |
[223:192] |
EFUSE_BLK2_WDATA6_REG |
[31:0] |
[255:224] |
EFUSE_BLK2_WDATA7_REG |
[31:0] |
BLOCK3 |
256/192/128 |
[31:0] |
EFUSE_BLK3_WDATA0_REG |
[31:0] |
[63:32] |
EFUSE_BLK3_WDATA1_REG |
[31:0] |
[95:64] |
EFUSE_BLK3_WDATA2_REG |
[31:0] |
[127:96] |
EFUSE_BLK3_WDATA3_REG |
[31:0] |
[159:128] |
EFUSE_BLK3_WDATA4_REG |
[31:0] |
[191:160] |
EFUSE_BLK3_WDATA5_REG |
[31:0] |
[223:192] |
EFUSE_BLK3_WDATA6_REG |
[31:0] |
[255:224] |
EFUSE_BLK3_WDATA7_REG |
[31:0] |
Процесс программирования системных параметров следующий:
1. Конфигурируется биты EFUSE_CLK_SEL0 bit, EFUSE_CLK_SEL1 регистра EFUSE_CLK, и бит EFUSE_DAC_CLK_DIV регистра EFUSE_DAC_CONF. 2. Устанавливается соответствующий бит регистра системного параметра, который должен быть запрограммирован в 1. 3. Записывается 0x5A5A в регистр EFUSE_CONF. 4. Записывается 0x2 в регистр EFUSE_CMD. 5. Опрашивается регистр EFUSE_CMD, пока он не станет равным 0x0, либо ожидается срабатывания прерывания завершения программирования. 6. Записывается 0x5A5A в регистр EFUSE_CONF. 7. Записывается 0x1 в регистр EFUSE_CMD. 8. Опрашивается регистр EFUSE_CMD, пока он не станет равным 0x0, либо ожидается срабатывания прерывания завершения программирования. 9. Устанавливается в 0 соответствующий бит регистре, который был запрограммирован.
Конфигурационные значения бит EFUSE_CLK_SEL0 bit, EFUSE_CLK_SEL1 регистра EFUSE_CLK, и бита EFUSE_DAC_CLK_DIV регистра EFUSE_DAC_CONF основываются на текущей частоте шины APB_CLK, как показано в таблице 85.
Таблица 85. Конфигурация тайминга программирования.
Регистр
|
Конфигурационное значение
|
Частота APB_CLK
|
26 МГц |
40 МГц |
80 МГц |
EFUSE_CLK |
EFUSE_CLK_SEL0[7:0] |
250 |
160 |
80 |
EFUSE_CLK_SEL1[7:0] |
255 |
255 |
128 |
EFUSE_DAC_CONF |
EFUSE_DAC_CLK_DIV[7:0] |
52 |
89 |
100 |
Существует 2 метода проверки генерации прерываний программирования и завершения чтения (program/read-done interrupt). Метод 1:
1. Опрашивать бит 1/0 в регистре EFUSE_INT_RAW, пока бит 1/0 не установится в 1, что означает генерацию прерываний program/readdone. 2. Установить бит 1/0 в регистре EFUSE_INT_CLR в 1, чтобы очистить статус прерываний program/read-done.
Метод 2:
1. Установить бит 1/0 в регистре EFUSE_INT_ENA в 1, чтобы разрешить контроллеру eFuse генерировать прерывания program/read-done. 2. Сконфигурировать Interrupt Matrix для разрешения ядру CPU отвечать на прерывание EFUSE_INT. 3. Когда сгенерируется прерывание program/read-done, выполнить чтение бита 1/0 в регистре EFUSE_INT_ST чтобы идентифицировать прерывание program/read-done. 5. Установить бит 1/0 в регистре EFUSE_INT_CLR в 1, чтобы очистить статус прерываний program/read-done.
Программирование различных системных параметров, и даже программирование различных бит в одного и того же системного параметра может быть выполнено по отдельности, несколькими процедурами программирования. Однако рекомендуется минимизировать количество циклов программирования, и программировать за одно действие все биты, которые должны быть запрограммированы в системном параметре. Кроме того, после программирования всех системных параметров, управляемых определенным битом efuse_wr_disable, этот бит должен быть немедленно запрограммирован. Программирование системных параметров, управляемых определенным битом efuse_wr_disable, и программирование этого бита может быть завершено одновременно.
Повторное программирование уже запрограммированных бит строго запрещено.
Программное чтение системных параметров. Каждый бит из 30 системных параметров фиксированной длины и 3 параметра переменной длины соответствуют биту регистра, считываемому программно, как показано в таблице 86. Программа может использовать значение каждого системного параметра путем чтения соответствующего регистра.
Битовая ширина системных параметров BLOCK1, BLOCK2 и BLOCK3 изменяемая. Хотя 256 бит регистров назначены каждому из трех параметров, как показано в таблице 86, некоторые из этих 256 бит бесполезны в схемах кодирования 3/4 и Repeat. В схеме кодирования None используется каждый соответствующий бит BLOCKN[255:0]. В схеме кодирования 3/4 полезны только соответствующие биты регистра BLOCKN[191:0]. В схеме кодирования Repeat полезны только соответствующие биты регистра BLOCKN[127:0]. В различных схемах кодирования значения бесполезных бит регистров, прочитанных программой, содержат недостоверные значения. Значения полезных бит регистров, прочитанных программой, являются системными параметрами BLOCK1, BLOCK2 и BLOCK3, а не их значениями после кодирования.
Таблица 86. Программное чтение регистров.
Системный параметр
|
Регистр
|
Имя |
Ширина |
Бит |
Имя |
Бит |
efuse_wr_disable |
16 |
[15:0] |
EFUSE_BLK0_WDATA0_REG |
[15:0] |
efuse_rd_disable |
4 |
[3:0] |
[19:16] |
flash_crypt_cnt |
7 |
[6:0] |
[26:20] |
uart_download_dis |
1 |
[0] |
[27] |
WIFI_MAC_Address |
56 |
[31:0] |
EFUSE_BLK0_WDATA1_REG |
[31:0] |
[55:32] |
EFUSE_BLK0_WDATA2_REG |
[23:0] |
disable_app_cpu |
1 |
[0] |
EFUSE_BLK0_WDATA3_REG |
[0] |
disable_bt |
1 |
[0] |
[1] |
pkg_version |
4 |
[3:0] |
[2], [11:9] |
disable_cache |
1 |
[0] |
[3] |
SPI_pad_config_hd |
5 |
[4:0] |
[8:4] |
BLK3_part_reserve |
1 |
[0] |
[14] |
CK8M Frequency |
8 |
[7:0] |
EFUSE_BLK0_WDATA4_REG |
[7:0] |
XPD_SDIO_REG |
1 |
[0] |
[14] |
SDIO_TIEH |
1 |
[0] |
[15] |
sdio_force |
1 |
[0] |
[16] |
SPI_pad_config_clk |
5 |
[4:0] |
EFUSE_BLK0_WDATA5_REG |
[4:0] |
SPI_pad_config_q |
5 |
[4:0] |
[9:5] |
SPI_pad_config_d |
5 |
[4:0] |
[14:10] |
SPI_pad_config_cs0 |
5 |
[4:0] |
[19:15] |
vol_level_hp_inv |
2 |
[1:0] |
[23:22] |
dig_vol_l6 |
4 |
[3:0] |
[27:24] |
flash_crypt_config |
4 |
[3:0] |
[31:28] |
coding_scheme |
2 |
[1:0] |
EFUSE_BLK0_WDATA6_REG |
[1:0] |
console_debug_disable |
1 |
[0] |
[2] |
abstract_done_0 |
1 |
[0] |
[4] |
abstract_done_1 |
1 |
[0] |
[5] |
JTAG_disable |
1 |
[0] |
[6] |
download_dis_encrypt |
1 |
[0] |
[7] |
download_dis_decrypt |
1 |
[0] |
[8] |
download_dis_cache |
1 |
[0] |
[9] |
key_status |
1 |
[0] |
[10] |
BLOCK1 |
256/192/128 |
[31:0] |
EFUSE_BLK1_WDATA0_REG |
[31:0] |
[63:32] |
EFUSE_BLK1_WDATA1_REG |
[31:0] |
[95:64] |
EFUSE_BLK1_WDATA2_REG |
[31:0] |
[127:96] |
EFUSE_BLK1_WDATA3_REG |
[31:0] |
[159:128] |
EFUSE_BLK1_WDATA4_REG |
[31:0] |
[191:160] |
EFUSE_BLK1_WDATA5_REG |
[31:0] |
[223:192] |
EFUSE_BLK1_WDATA6_REG |
[31:0] |
[255:224] |
EFUSE_BLK1_WDATA7_REG |
[31:0] |
BLOCK2 |
256/192/128 |
[31:0] |
EFUSE_BLK2_WDATA0_REG |
[31:0] |
[63:32] |
EFUSE_BLK2_WDATA1_REG |
[31:0] |
[95:64] |
EFUSE_BLK2_WDATA2_REG |
[31:0] |
[127:96] |
EFUSE_BLK2_WDATA3_REG |
[31:0] |
[159:128] |
EFUSE_BLK2_WDATA4_REG |
[31:0] |
[191:160] |
EFUSE_BLK2_WDATA5_REG |
[31:0] |
[223:192] |
EFUSE_BLK2_WDATA6_REG |
[31:0] |
[255:224] |
EFUSE_BLK2_WDATA7_REG |
[31:0] |
BLOCK3 |
256/192/128 |
[31:0] |
EFUSE_BLK3_WDATA0_REG |
[31:0] |
[63:32] |
EFUSE_BLK3_WDATA1_REG |
[31:0] |
[95:64] |
EFUSE_BLK3_WDATA2_REG |
[31:0] |
[127:96] |
EFUSE_BLK3_WDATA3_REG |
[31:0] |
[159:128] |
EFUSE_BLK3_WDATA4_REG |
[31:0] |
[191:160] |
EFUSE_BLK3_WDATA5_REG |
[31:0] |
[223:192] |
EFUSE_BLK3_WDATA6_REG |
[31:0] |
[255:224] |
EFUSE_BLK3_WDATA7_REG |
[31:0] |
Использование системных параметров модулями аппаратуры. Аппаратные модули напрямую соединены с используемыми ими системными параметрами. Программное обеспечение не может изменить это поведение. Аппаратные модули используются декодированные значения системных параметров BLOCK1, BLOCK2 и BLOCK3, а не их закодированные значения.
Прерывания. Для реакции на события eFuse существуют следующие прерывания:
EFUSE_PGM_DONE_INT: срабатывает, когда процесс программирования eFuse завершился. EFUSE_READ_DONE_INT: срабатывает, когда чтение eFuse завершилось.
[Общее описание регистров eFuse]
Подробное описание регистров и бит eFuse см. в документе [1].
Имя |
Описание |
Адрес |
Доступ |
Регистры eFuse data read |
EFUSE_BLK0_RDATA0_REG |
Возвратит слово 0 в eFuse BLOCK 0 |
0x3FF5A000 |
RO |
EFUSE_BLK0_RDATA1_REG |
Возвратит слово 1 в eFuse BLOCK 0 |
0x3FF5A004 |
RO |
EFUSE_BLK0_RDATA2_REG |
Возвратит слово 2 в eFuse BLOCK 0 |
0x3FF5A008 |
RO |
EFUSE_BLK0_RDATA3_REG |
Возвратит слово 3 в eFuse BLOCK 0 |
0x3FF5A00C |
RO |
EFUSE_BLK0_RDATA4_REG |
Возвратит слово 4 в eFuse BLOCK 0 |
0x3FF5A010 |
RO |
EFUSE_BLK0_RDATA5_REG |
Возвратит слово 5 в eFuse BLOCK 0 |
0x3FF5A014 |
RO |
EFUSE_BLK0_RDATA6_REG |
Возвратит слово 6 в eFuse BLOCK 0 |
0x3FF5A018 |
RO |
EFUSE_BLK1_RDATA0_REG |
Возвратит слово 0 в eFuse BLOCK 1 |
0x3FF5A038 |
RO |
EFUSE_BLK1_RDATA1_REG |
Возвратит слово 1 в eFuse BLOCK 1 |
0x3FF5A03C |
RO |
EFUSE_BLK1_RDATA2_REG |
Возвратит слово 2 в eFuse BLOCK 1 |
0x3FF5A040 |
RO |
EFUSE_BLK1_RDATA3_REG |
Возвратит слово 3 в eFuse BLOCK 1 |
0x3FF5A044 |
RO |
EFUSE_BLK1_RDATA4_REG |
Возвратит слово 4 в eFuse BLOCK 1 |
0x3FF5A048 |
RO |
EFUSE_BLK1_RDATA5_REG |
Возвратит слово 5 в eFuse BLOCK 1 |
0x3FF5A04C |
RO |
EFUSE_BLK1_RDATA6_REG |
Возвратит слово 6 в eFuse BLOCK 1 |
0x3FF5A050 |
RO |
EFUSE_BLK1_RDATA7_REG |
Возвратит слово 7 в eFuse BLOCK 1 |
0x3FF5A054 |
RO |
EFUSE_BLK2_RDATA0_REG |
Возвратит слово 0 в eFuse BLOCK 2 |
0x3FF5A068 |
RO |
EFUSE_BLK2_RDATA1_REG |
Возвратит слово 1 в eFuse BLOCK 2 |
0x3FF5A06C |
RO |
EFUSE_BLK2_RDATA2_REG |
Возвратит слово 2 в eFuse BLOCK 2 |
0x3FF5A060 |
RO |
EFUSE_BLK2_RDATA3_REG |
Возвратит слово 3 в eFuse BLOCK 2 |
0x3FF5A064 |
RO |
EFUSE_BLK2_RDATA4_REG |
Возвратит слово 4 в eFuse BLOCK 2 |
0x3FF5A068 |
RO |
EFUSE_BLK2_RDATA5_REG |
Возвратит слово 5 в eFuse BLOCK 2 |
0x3FF5A06C |
RO |
EFUSE_BLK2_RDATA6_REG |
Возвратит слово 6 в eFuse BLOCK 2 |
0x3FF5A070 |
RO |
EFUSE_BLK2_RDATA7_REG |
Возвратит слово 7 в eFuse BLOCK 2 |
0x3FF5A074 |
RO |
EFUSE_BLK3_RDATA0_REG |
Возвратит слово 0 в eFuse BLOCK 3 |
0x3FF5A078 |
RO |
EFUSE_BLK3_RDATA1_REG |
Возвратит слово 1 в eFuse BLOCK 3 |
0x3FF5A07C |
RO |
EFUSE_BLK3_RDATA2_REG |
Возвратит слово 2 в eFuse BLOCK 3 |
0x3FF5A080 |
RO |
EFUSE_BLK3_RDATA3_REG |
Возвратит слово 3 в eFuse BLOCK 3 |
0x3FF5A084 |
RO |
EFUSE_BLK3_RDATA4_REG |
Возвратит слово 4 в eFuse BLOCK 3 |
0x3FF5A088 |
RO |
EFUSE_BLK3_RDATA5_REG |
Возвратит слово 5 в eFuse BLOCK 3 |
0x3FF5A08C |
RO |
EFUSE_BLK3_RDATA6_REG |
Возвратит слово 6 в eFuse BLOCK 3 |
0x3FF5A090 |
RO |
EFUSE_BLK3_RDATA7_REG |
Возвратит слово 7 в eFuse BLOCK 3 |
0x3FF5A094 |
RO |
Регистры eFuse data write |
EFUSE_BLK0_WDATA0_REG |
Запишет данные в слово 0 eFuse BLOCK 0 |
0x3FF5A01C |
R/W |
EFUSE_BLK0_WDATA1_REG |
Запишет данные в слово 1 eFuse BLOCK 0 |
0x3FF5A020 |
R/W |
EFUSE_BLK0_WDATA2_REG |
Запишет данные в слово 2 eFuse BLOCK 0 |
0x3FF5A024 |
R/W |
EFUSE_BLK0_WDATA3_REG |
Запишет данные в слово 3 eFuse BLOCK 0 |
0x3FF5A028 |
R/W |
EFUSE_BLK0_WDATA4_REG |
Запишет данные в слово 4 eFuse BLOCK 0 |
0x3FF5A02C |
R/W |
EFUSE_BLK0_WDATA5_REG |
Запишет данные в слово 5 eFuse BLOCK 0 |
0x3FF5A030 |
R/W |
EFUSE_BLK0_WDATA6_REG |
Запишет данные в слово 6 eFuse BLOCK 0 |
0x3FF5A034 |
R/W |
EFUSE_BLK1_WDATA0_REG |
Запишет данные в слово 0 eFuse BLOCK 1 |
0x3FF5A098 |
R/W |
EFUSE_BLK1_WDATA1_REG |
Запишет данные в слово 1 eFuse BLOCK 1 |
0x3FF5A09C |
R/W |
EFUSE_BLK1_WDATA2_REG |
Запишет данные в слово 2 eFuse BLOCK 1 |
0x3FF5A0A0 |
R/W |
EFUSE_BLK1_WDATA3_REG |
Запишет данные в слово 3 eFuse BLOCK 1 |
0x3FF5A0A4 |
R/W |
EFUSE_BLK1_WDATA4_REG |
Запишет данные в слово 4 eFuse BLOCK 1 |
0x3FF5A0A8 |
R/W |
EFUSE_BLK1_WDATA5_REG |
Запишет данные в слово 5 eFuse BLOCK 1 |
0x3FF5A0AC |
R/W |
EFUSE_BLK1_WDATA6_REG |
Запишет данные в слово 6 eFuse BLOCK 1 |
0x3FF5A0B0 |
R/W |
EFUSE_BLK1_WDATA7_REG |
Запишет данные в слово 7 eFuse BLOCK 1 |
0x3FF5A0B4 |
R/W |
EFUSE_BLK2_WDATA0_REG |
Запишет данные в слово 0 eFuse BLOCK 2 |
0x3FF5A0B8 |
R/W |
EFUSE_BLK2_WDATA1_REG |
Запишет данные в слово 1 eFuse BLOCK 2 |
0x3FF5A0BC |
R/W |
EFUSE_BLK2_WDATA2_REG |
Запишет данные в слово 2 eFuse BLOCK 2 |
0x3FF5A0C0 |
R/W |
EFUSE_BLK2_WDATA3_REG |
Запишет данные в слово 3 eFuse BLOCK 2 |
0x3FF5A0C4 |
R/W |
EFUSE_BLK2_WDATA4_REG |
Запишет данные в слово 4 eFuse BLOCK 2 |
0x3FF5A0C8 |
R/W |
EFUSE_BLK2_WDATA5_REG |
Запишет данные в слово 5 eFuse BLOCK 2 |
0x3FF5A0CC |
R/W |
EFUSE_BLK2_WDATA6_REG |
Запишет данные в слово 6 eFuse BLOCK 2 |
0x3FF5A0D0 |
R/W |
EFUSE_BLK2_WDATA7_REG |
Запишет данные в слово 7 eFuse BLOCK 2 |
0x3FF5A0D4 |
R/W |
EFUSE_BLK3_WDATA0_REG |
Запишет данные в слово 0 eFuse BLOCK 3 |
0x3FF5A0D8 |
R/W |
EFUSE_BLK3_WDATA1_REG |
Запишет данные в слово 1 eFuse BLOCK 3 |
0x3FF5A0DC |
R/W |
EFUSE_BLK3_WDATA2_REG |
Запишет данные в слово 2 eFuse BLOCK 3 |
0x3FF5A0E0 |
R/W |
EFUSE_BLK3_WDATA3_REG |
Запишет данные в слово 3 eFuse BLOCK 3 |
0x3FF5A0E4 |
R/W |
EFUSE_BLK3_WDATA4_REG |
Запишет данные в слово 4 eFuse BLOCK 3 |
0x3FF5A0E8 |
R/W |
EFUSE_BLK3_WDATA5_REG |
Запишет данные в слово 5 eFuse BLOCK 3 |
0x3FF5A0EC |
R/W |
EFUSE_BLK3_WDATA6_REG |
Запишет данные в слово 6 eFuse BLOCK 3 |
0x3FF5A0F0 |
R/W |
EFUSE_BLK3_WDATA7_REG |
Запишет данные в слово 7 eFuse BLOCK 3 |
0x3FF5A0F4 |
R/W |
Регистры управления |
EFUSE_CLK_REG |
Регистр управления таймингом |
0x3FF5A0F8 |
R/W |
EFUSE_CONF_REG |
Регистр кода операции |
0x3FF5A0FC |
R/W |
EFUSE_CMD_REG |
Регистр команды чтения/записи |
0x3FF5A104 |
R/W |
Регистры прерывания |
EFUSE_INT_RAW_REG |
Сырое состояние прерываний |
0x3FF5A108 |
RO |
EFUSE_INT_ST_REG |
Маскируемое состояние прерываний |
0x3FF5A10C |
RO |
EFUSE_INT_ENA_REG |
Биты разрешения прерываний |
0x3FF5A110 |
R/W |
EFUSE_INT_CLR_REG |
Биты очистки прерываний |
0x3FF5A114 |
WO |
Прочие регистры |
EFUSE_DAC_CONF_REG |
Конфигурация тайминга eFuse |
0x3FF5A118 |
R/W |
EFUSE_DEC_STATUS_REG |
Состояние схемы кодирования 3/4 |
0x3FF5A11C |
RO |
Примечание: в столбце "Доступ" RO означает только чтение (read only), R/W чтение/запись (read/write), WO только запись (write only).
[Словарик]
APB Advanced Peripheral Bus, продвинутая шина периферийных устройств.
ECO Engineering Change Orders, указания по исправлению ошибок кристалла в зависимости от его версии [2].
[Ссылки]
1. ESP32 Technical Reference Manual site:docs.espressif.com. 2. ESP32 ECO and Workarounds for Bugs site:espressif.com. 3. ESP32 eFuse Manager. |