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

Регистры SENS ESP32-S3

Регистры SENS ESP32-S3: RTC-контроллеры SAR ADC1 и ADC2 для разовых измерений, в том числе в глубоком сне вместе с ULP, ослабление каждого канала, датчик температуры, сенсоры касания с порогами и режимом приближения, тактирование и сброс RTC-периферии.

Блок SENS по адресу 0x6000 8800 находится в RTC-домене. RTC-контроллер ADCn запускает разовое преобразование битом MEASn_START_SAR и кладёт результат в MEASn_DATA_SAR регистра SENS_SAR_MEASn_CTRL2_REG; если MEASn_START_FORCE и SARn_EN_PAD_FORCE сброшены, запуском и выбором канала управляет сопроцессор ULP.

Ослабление задаёт регистр SENS_SAR_ATTENn_REG: по 2 бита на канал, биты 1:0 — канал 0, биты 3:2 — канал 1 и так далее; значения 0…3 — 0, 2,5, 6 и 12 дБ. Опорное напряжение АЦП — около 1100 мВ, результат 12-битный: V = V_ref / k · data / 4095, где k — коэффициент ослабления (раздел 39.3.5 TRM).

Здесь же датчик температуры (SENS_SAR_TSENS_CTRL_REG), пороги и данные 14 сенсоров касания и включение тактов RTC-периферии. Регистры, которых TRM не описывает (SAR_SLAVE_ADDRn, регистры ULP-RISC-V и отладки), на странице не показаны.

ЭкземплярБазовый адрес
SENS0x6000 8800

Пример на C

Разовое измерение SAR ADC1, канал 0, 12 дБ (soc/sens_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/sens_reg.h"

REG_CLR_BIT(SENS_SAR_MEAS1_MUX_REG, SENS_SAR1_DIG_FORCE);        // RTC-контроллер
REG_SET_BIT(SENS_SAR_MEAS1_CTRL2_REG, SENS_MEAS1_START_FORCE);   // запуск программой
REG_SET_BIT(SENS_SAR_MEAS1_CTRL2_REG, SENS_SAR1_EN_PAD_FORCE);   // канал выбирает программа
REG_SET_FIELD(SENS_SAR_MEAS1_CTRL2_REG, SENS_SAR1_EN_PAD, BIT(0)); // канал 0
REG_SET_BITS(SENS_SAR_ATTEN1_REG, 3, 3);                         // канал 0: 12 дБ

REG_CLR_BIT(SENS_SAR_MEAS1_CTRL2_REG, SENS_MEAS1_START_SAR);
REG_SET_BIT(SENS_SAR_MEAS1_CTRL2_REG, SENS_MEAS1_START_SAR);     // старт
while (!REG_GET_BIT(SENS_SAR_MEAS1_CTRL2_REG, SENS_MEAS1_DONE_SAR)) {}
uint32_t raw = REG_GET_FIELD(SENS_SAR_MEAS1_CTRL2_REG, SENS_MEAS1_DATA_SAR);

Регистры блока

Регистр (ESP-IDF)СмещениеНазначениеПосле сброса
SENS_SAR_READER1_CTRL_REG0x0000RTC-контроллер ADC1: делитель, инверсия, прерывание0x2000 0002
SENS_SAR_MEAS1_CTRL2_REG0x000CRTC-контроллер ADC1: канал, запуск, результат0x0000 0000
SENS_SAR_MEAS1_MUX_REG0x0010SAR ADC1: цифровой или RTC-контроллер0x0000 0000
SENS_SAR_ATTENn_REG0x0-10 + n · 0x0024Ослабление каналов SAR ADCn0xFFFF FFFF
SENS_SAR_READER2_CTRL_REG0x0024RTC-контроллер ADC2: делитель, инверсия, арбитр, прерывание0x4001 0002
SENS_SAR_MEAS2_CTRL2_REG0x0030RTC-контроллер ADC2: канал, запуск, результат0x0000 0000
SENS_SAR_MEAS2_MUX_REG0x0034SAR ADC2: управление RTC во сне0x0000 0000
SENS_SAR_POWER_XPD_SAR_REG0x003CПринудительное питание SAR ADC0x0000 0000
SENS_SAR_TSENS_CTRL_REG0x0050Датчик температуры: питание, такт, результат0x0001 9000
SENS_SAR_TOUCH_CONF_REG0x005CСенсоры касания: выходы, режим данных, приближение0xFFF0 7FFF
SENS_SAR_TOUCH_DENOISE_REG0x0060Сенсоры касания: значение шума0x0000 0000
SENS_SAR_TOUCH_THRESn_REG0x0060 + n · 0x0004Порог касания сенсора n0x0000 0000
SENS_SAR_TOUCH_CHN_ST_REG0x009CСенсоры касания: активные каналы, сброс0x0000 0000
SENS_SAR_TOUCH_STATUS0_REG0x00A0Сенсоры касания: текущий сканируемый вывод0x0000 0000
SENS_SAR_TOUCH_STATUS1_REG0x00A4Данные сенсора касания 10x0000 0000
SENS_SAR_TOUCH_STATUS2_REG0x00A8Данные сенсора касания 20x0000 0000
SENS_SAR_TOUCH_STATUS3_REG0x00ACДанные сенсора касания 30x0000 0000
SENS_SAR_TOUCH_STATUS4_REG0x00B0Данные сенсора касания 40x0000 0000
SENS_SAR_TOUCH_STATUS5_REG0x00B4Данные сенсора касания 50x0000 0000
SENS_SAR_TOUCH_STATUS6_REG0x00B8Данные сенсора касания 60x0000 0000
SENS_SAR_TOUCH_STATUS7_REG0x00BCДанные сенсора касания 70x0000 0000
SENS_SAR_TOUCH_STATUS8_REG0x00C0Данные сенсора касания 80x0000 0000
SENS_SAR_TOUCH_STATUS9_REG0x00C4Данные сенсора касания 90x0000 0000
SENS_SAR_TOUCH_STATUS10_REG0x00C8Данные сенсора касания 100x0000 0000
SENS_SAR_TOUCH_STATUS11_REG0x00CCДанные сенсора касания 110x0000 0000
SENS_SAR_TOUCH_STATUS12_REG0x00D0Данные сенсора касания 120x0000 0000
SENS_SAR_TOUCH_STATUS13_REG0x00D4Данные сенсора касания 130x0000 0000
SENS_SAR_TOUCH_STATUS14_REG0x00D8Данные сенсора касания 140x0000 0000
SENS_SAR_TOUCH_SLP_STATUS_REG0x00DCДанные сенсора, работающего во сне0x0000 0000
SENS_SAR_TOUCH_APPR_STATUS_REG0x00E0Счётчики касаний в режиме приближения0x0000 0000
SENS_SAR_PERI_CLK_GATE_CONF_REG0x0104Такты RTC-периферии: АЦП, датчик температуры, RTC I2C, IO MUX0x0000 0000
SENS_SAR_PERI_RESET_CONF_REG0x0108Сбросы RTC-периферии0x0000 0000

Доступ — обозначения TRM: R/W — чтение и запись, RO — только чтение, WO — только запись, WT — запись 1 запускает действие, SS и SC — бит ставится и сбрасывается аппаратно, WTC — сбрасывается записью 1.

SENS_SAR_READER1_CTRL_REG — rTC-контроллер ADC1: делитель, инверсия, прерывание

Смещение 0x0000, адрес 0x6000 8800, после сброса 0x2000 0002. TRM: регистр 39.10.

31302928272625242322212019181716
—SAR1_INT_ENSAR1_DATA_INV—
1514131211109876543210
—SAR1_CLK_DIV
ПолеБитыДоступСбросНазначение
SAR1_INT_EN29R/W11 — SAR ADC1 выдаёт прерывание
SAR1_DATA_INV28R/W01 — инвертировать данные SAR ADC1
SAR1_CLK_DIV7:0R/W0x02Делитель такта

SENS_SAR_MEAS1_CTRL2_REG — rTC-контроллер ADC1: канал, запуск, результат

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

31302928272625242322212019181716
SAR1_EN_PAD_FORCESAR1_EN_PADMEAS1_START_FORCEMEAS1_START_SARMEAS1_DONE_SAR
1514131211109876543210
MEAS1_DATA_SAR
ПолеБитыДоступСбросНазначение
SAR1_EN_PAD_FORCE31R/W01 — маску каналов задаёт программа, 0 — ULP
SAR1_EN_PAD30:19R/W0x000Маска каналов SAR ADC1; ESP-IDF ставит один бит
MEAS1_START_FORCE18R/W01 — запуск программой, 0 — сопроцессором ULP
MEAS1_START_SAR17R/W0Запуск преобразования при MEAS1_START_FORCE = 1
MEAS1_DONE_SAR16RO01 — преобразование закончено
MEAS1_DATA_SAR15:0RO0x0000Результат SAR ADC1

SENS_SAR_MEAS1_MUX_REG — sAR ADC1: цифровой или RTC-контроллер

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

ПолеБитыДоступСбросНазначение
SAR1_DIG_FORCE31R/W01 — SAR ADC1 у цифрового контроллера, 0 — у RTC

SENS_SAR_ATTENn_REG — ослабление каналов SAR ADCn

2 копии, n = 1, 2: смещение 0x0-10 + n · 0x0024, после сброса 0xFFFF FFFF. TRM: регистр 39.13.

После сброса все биты равны 1: у всех каналов ослабление 12 дБ. Номера каналов SAR ADC1 и SAR ADC2 и их выводы — в таблице 39.3-1 TRM: ADC1 — GPIO1…GPIO10, ADC2 — GPIO11…GPIO20.

ПолеБитыДоступСбросНазначение
SARn_ATTEN31:0R/W0xFFFF FFFFПо 2 бита на канал: биты 1:0 — канал 0, 3:2 — канал 1 и так далее

SENS_SAR_READER2_CTRL_REG — rTC-контроллер ADC2: делитель, инверсия, арбитр, прерывание

Смещение 0x0024, адрес 0x6000 8824, после сброса 0x4001 0002. TRM: регистр 39.14.

31302928272625242322212019181716
—SAR2_INT_ENSAR2_DATA_INV—SAR2_WAIT_ARB_CYCLE
1514131211109876543210
—SAR2_CLK_DIV
ПолеБитыДоступСбросНазначение
SAR2_INT_EN30R/W11 — SAR ADC2 выдаёт прерывание
SAR2_DATA_INV29R/W01 — инвертировать данные SAR ADC2
SAR2_WAIT_ARB_CYCLE17:16R/W0x1Ожидание стабилизации арбитра после SAR_DONE
SAR2_CLK_DIV7:0R/W0x02Делитель такта

SENS_SAR_MEAS2_CTRL2_REG — rTC-контроллер ADC2: канал, запуск, результат

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

31302928272625242322212019181716
SAR2_EN_PAD_FORCESAR2_EN_PADMEAS2_START_FORCEMEAS2_START_SARMEAS2_DONE_SAR
1514131211109876543210
MEAS2_DATA_SAR
ПолеБитыДоступСбросНазначение
SAR2_EN_PAD_FORCE31R/W01 — маску каналов задаёт программа, 0 — ULP
SAR2_EN_PAD30:19R/W0x000Маска каналов SAR ADC2
MEAS2_START_FORCE18R/W01 — запуск программой, 0 — сопроцессором ULP
MEAS2_START_SAR17R/W0Запуск преобразования при MEAS2_START_FORCE = 1
MEAS2_DONE_SAR16RO01 — преобразование закончено
MEAS2_DATA_SAR15:0RO0x0000Результат SAR ADC2

SENS_SAR_MEAS2_MUX_REG — sAR ADC2: управление RTC во сне

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

ПолеБитыДоступСбросНазначение
SAR2_RTC_FORCE31R/W01 — во сне SAR ADC2 управляет RTC

SENS_SAR_POWER_XPD_SAR_REG — принудительное питание SAR ADC

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

ПолеБитыДоступСбросНазначение
FORCE_XPD_SAR30:29R/W0x0Питание SAR ADC: по TRM 0 и 1 — без принудительного управления, 2 — включить, 3 — выключить; в ESP-IDF для похожих полей наоборот — 2 выключает, 3 включает

SENS_SAR_TSENS_CTRL_REG — датчик температуры: питание, такт, результат

Смещение 0x0050, адрес 0x6000 8850, после сброса 0x0001 9000. TRM: регистр 39.19.

31302928272625242322212019181716
—TSENS_DUMP_OUTTSENS_POWER_UP_FORCETSENS_POWER_UPTSENS_CLK_DIV
1514131211109876543210
TSENS_CLK_DIVTSENS_IN_INVTSENS_INT_EN—TSENS_READYTSENS_OUT
ПолеБитыДоступСбросНазначение
TSENS_DUMP_OUT24R/W0Выдача данных датчика при TSENS_POWER_UP_FORCE = 1
TSENS_POWER_UP_FORCE23R/W01 — питанием и выдачей данных управляет программа, 0 — автомат
TSENS_POWER_UP22R/W01 — включить датчик температуры
TSENS_CLK_DIV21:14R/W0x06Делитель такта датчика
TSENS_IN_INV13R/W01 — инвертировать данные датчика
TSENS_INT_EN12R/W11 — прерывание датчика
TSENS_READY8RO01 — результат готов
TSENS_OUT7:0RO0x00Результат датчика температуры

SENS_SAR_TOUCH_CONF_REG — сенсоры касания: выходы, режим данных, приближение

Смещение 0x005C, адрес 0x6000 885C, после сброса 0xFFF0 7FFF. TRM: регистр 39.20.

31302928272625242322212019181716
TOUCH_APPROACH_PAD0TOUCH_APPROACH_PAD1TOUCH_APPROACH_PAD2TOUCH_UNIT_ENDTOUCH_DENOISE_ENDTOUCH_DATA_SEL
1514131211109876543210
TOUCH_STATUS_CLRTOUCH_OUTEN
ПолеБитыДоступСбросНазначение
TOUCH_APPROACH_PAD031:28R/W0xFВывод для датчика приближения 0
TOUCH_APPROACH_PAD127:24R/W0xFВывод для датчика приближения 1
TOUCH_APPROACH_PAD223:20R/W0xFВывод для датчика приближения 2
TOUCH_UNIT_END19RO01 — выборка закончена
TOUCH_DENOISE_END18RO01 — измерение шума закончено
TOUCH_DATA_SEL17:16R/W0x0Данные в регистрах STATUS: 0 и 1 — сырые, 2 — опорный уровень, 3 — сглаженные
TOUCH_STATUS_CLR15WO0Запись 1 сбрасывает признаки касания
TOUCH_OUTEN14:0R/W0x7FFFВключение выходов контроллера касания

SENS_SAR_TOUCH_DENOISE_REG — сенсоры касания: значение шума

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

ПолеБитыДоступСбросНазначение
TOUCH_DENOISE_DATA21:0RO0x000000Шум, измеренный на сенсоре 0

SENS_SAR_TOUCH_THRESn_REG — порог касания сенсора n

14 копий, n = 1…14: смещение 0x0060 + n · 0x0004, после сброса 0x0000 0000. TRM: регистр 39.22.

ПолеБитыДоступСбросНазначение
TOUCH_OUT_THn21:0R/W0x000000Порог касания пальцем для сенсора n

SENS_SAR_TOUCH_CHN_ST_REG — сенсоры касания: активные каналы, сброс

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

31302928272625242322212019181716
TOUCH_MEAS_DONE—TOUCH_CHANNEL_CLR
1514131211109876543210
TOUCH_CHANNEL_CLRTOUCH_PAD_ACTIVE
ПолеБитыДоступСбросНазначение
TOUCH_MEAS_DONE31RO01 — измерение закончено
TOUCH_CHANNEL_CLR29:15WO0x0000Запись 1 сбрасывает канал касания
TOUCH_PAD_ACTIVE14:0RO0x0000Признаки касания по сенсорам

SENS_SAR_TOUCH_STATUS0_REG — сенсоры касания: текущий сканируемый вывод

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

ПолеБитыДоступСбросНазначение
TOUCH_SCAN_CURR25:22RO0x0Сенсор, который сейчас сканируется

SENS_SAR_TOUCH_STATUS1_REG — данные сенсора касания 1

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

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

SENS_SAR_TOUCH_STATUS2_REG — данные сенсора касания 2

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

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

SENS_SAR_TOUCH_STATUS3_REG — данные сенсора касания 3

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

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

SENS_SAR_TOUCH_STATUS4_REG — данные сенсора касания 4

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

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

SENS_SAR_TOUCH_STATUS5_REG — данные сенсора касания 5

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

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

SENS_SAR_TOUCH_STATUS6_REG — данные сенсора касания 6

Смещение 0x00B8, адрес 0x6000 88B8, после сброса 0x0000 0000. TRM: регистр 39.45.

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

SENS_SAR_TOUCH_STATUS7_REG — данные сенсора касания 7

Смещение 0x00BC, адрес 0x6000 88BC, после сброса 0x0000 0000. TRM: регистр 39.46.

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

SENS_SAR_TOUCH_STATUS8_REG — данные сенсора касания 8

Смещение 0x00C0, адрес 0x6000 88C0, после сброса 0x0000 0000. TRM: регистр 39.47.

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

SENS_SAR_TOUCH_STATUS9_REG — данные сенсора касания 9

Смещение 0x00C4, адрес 0x6000 88C4, после сброса 0x0000 0000. TRM: регистр 39.48.

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

SENS_SAR_TOUCH_STATUS10_REG — данные сенсора касания 10

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

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

SENS_SAR_TOUCH_STATUS11_REG — данные сенсора касания 11

Смещение 0x00CC, адрес 0x6000 88CC, после сброса 0x0000 0000. TRM: регистр 39.50.

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

SENS_SAR_TOUCH_STATUS12_REG — данные сенсора касания 12

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

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

SENS_SAR_TOUCH_STATUS13_REG — данные сенсора касания 13

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

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

SENS_SAR_TOUCH_STATUS14_REG — данные сенсора касания 14

Смещение 0x00D8, адрес 0x6000 88D8, после сброса 0x0000 0000. TRM: регистр 39.53.

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

SENS_SAR_TOUCH_SLP_STATUS_REG — данные сенсора, работающего во сне

Смещение 0x00DC, адрес 0x6000 88DC, после сброса 0x0000 0000. TRM: регистр 39.54.

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

SENS_SAR_TOUCH_APPR_STATUS_REG — счётчики касаний в режиме приближения

Смещение 0x00E0, адрес 0x6000 88E0, после сброса 0x0000 0000. TRM: регистр 39.55 (SENS_SAR_TOUCH_APPR_STATUS_REG).

31302928272625242322212019181716
TOUCH_SLP_APPROACH_CNTTOUCH_APPROACH_PAD0_CNT
1514131211109876543210
TOUCH_APPROACH_PAD1_CNTTOUCH_APPROACH_PAD2_CNT
ПолеБитыДоступСброс
TOUCH_SLP_APPROACH_CNT31:24RO0x00
TOUCH_APPROACH_PAD0_CNT23:16RO0x00
TOUCH_APPROACH_PAD1_CNT15:8RO0x00
TOUCH_APPROACH_PAD2_CNT7:0RO0x00

SENS_SAR_PERI_CLK_GATE_CONF_REG — такты RTC-периферии: АЦП, датчик температуры, RTC I2C, IO MUX

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

31302928272625242322212019181716
IOMUX_CLK_ENSARADC_CLK_ENTSENS_CLK_EN—RTC_I2C_CLK_EN—
1514131211109876543210
—
ПолеБитыДоступСбросНазначение
IOMUX_CLK_EN31R/W01 — такт RTC IO MUX
SARADC_CLK_EN30R/W01 — такт SAR ADC
TSENS_CLK_EN29R/W01 — такт датчика температуры
RTC_I2C_CLK_EN27R/W01 — такт RTC I2C

SENS_SAR_PERI_RESET_CONF_REG — сбросы RTC-периферии

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

Описания полей TSENS_RESET и SARADC_RESET в TRM («Enable SAR ADC reset» и «Enable IO MUX reset») не соответствуют их именам; что именно сбрасывает каждое поле, по TRM установить нельзя, поэтому на странице у них нет пояснений.

31302928272625242322212019181716
—SARADC_RESETTSENS_RESET—RTC_I2C_RESET—COCPU_RESET—
1514131211109876543210
—
ПолеБитыДоступСбросНазначение
SARADC_RESET30R/W0
TSENS_RESET29R/W0
RTC_I2C_RESET27R/W01 — сброс RTC I2C
COCPU_RESET25R/W01 — сброс ULP-RISC-V

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

Как сделать разовое измерение АЦП ESP32-S3 через регистры SENS?

Так же, как драйвер ESP-IDF (adc_ll.h): сбросить SAR1_DIG_FORCE, установить MEAS1_START_FORCE и SAR1_EN_PAD_FORCE, записать в SAR1_EN_PAD маску канала, задать ослабление в SENS_SAR_ATTEN1_REG, сбросить и установить MEAS1_START_SAR, дождаться MEAS1_DONE_SAR и прочитать MEAS1_DATA_SAR. Перед запуском ESP-IDF ещё ждёт освобождения АЦП по полю регистра SAR_SLAVE_ADDR1, которого нет в TRM.

Как работает поле FORCE_XPD_SAR ESP32-S3?

По описанию в TRM: 0 и 1 — принудительное управление питанием SAR ADC выключено, 2 — принудительно включить, 3 — принудительно выключить. ESP-IDF указывает обратное: в заголовке soc/sens_reg.h классического ESP32 SENS_FORCE_XPD_SAR_PD = 2, SENS_FORCE_XPD_SAR_PU = 3, а для похожего поля XPD_SAR_FORCE цифрового контроллера ESP32-S3 (adc_ll.h) пишет 3 для включения, 2 — для выключения и 0 — для управления автоматом. Какой источник прав для этого поля ESP32-S3, по документам установить нельзя.

Источники

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

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

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

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