SoC Capabilities
This section lists definitions of the ESP32-C3's SoC hardware capabilities. These definitions are commonly used in IDF to control which hardware dependent features are supported and thus compiled into the binary.
Note
These defines are currently not considered to be part of the public API, and may be changed at any time.
API Reference
Header File
Macros
- 
SOC_ADC_SUPPORTED
 
- 
SOC_DEDICATED_GPIO_SUPPORTED
 
- 
SOC_UART_SUPPORTED
 
- 
SOC_GDMA_SUPPORTED
 
- 
SOC_GPTIMER_SUPPORTED
 
- 
SOC_TWAI_SUPPORTED
 
- 
SOC_BT_SUPPORTED
 
- 
SOC_ASYNC_MEMCPY_SUPPORTED
 
- 
SOC_USB_SERIAL_JTAG_SUPPORTED
 
- 
SOC_TEMP_SENSOR_SUPPORTED
 
- 
SOC_XT_WDT_SUPPORTED
 
- 
SOC_WIFI_SUPPORTED
 
- 
SOC_SUPPORTS_SECURE_DL_MODE
 
- 
SOC_EFUSE_KEY_PURPOSE_FIELD
 
- 
SOC_EFUSE_HAS_EFUSE_RST_BUG
 
- 
SOC_RTC_FAST_MEM_SUPPORTED
 
- 
SOC_RTC_MEM_SUPPORTED
 
- 
SOC_I2S_SUPPORTED
 
- 
SOC_RMT_SUPPORTED
 
- 
SOC_SDM_SUPPORTED
 
- 
SOC_GPSPI_SUPPORTED
 
- 
SOC_LEDC_SUPPORTED
 
- 
SOC_I2C_SUPPORTED
 
- 
SOC_SYSTIMER_SUPPORTED
 
- 
SOC_SUPPORT_COEXISTENCE
 
- 
SOC_AES_SUPPORTED
 
- 
SOC_MPI_SUPPORTED
 
- 
SOC_SHA_SUPPORTED
 
- 
SOC_HMAC_SUPPORTED
 
- 
SOC_DIG_SIGN_SUPPORTED
 
- 
SOC_FLASH_ENC_SUPPORTED
 
- 
SOC_SECURE_BOOT_SUPPORTED
 
- 
SOC_MEMPROT_SUPPORTED
 
- 
SOC_BOD_SUPPORTED
 
- 
SOC_XTAL_SUPPORT_40M
 
- 
SOC_AES_SUPPORT_DMA
 
- 
SOC_AES_GDMA
 
- 
SOC_AES_SUPPORT_AES_128
 
- 
SOC_AES_SUPPORT_AES_256
 
- 
SOC_ADC_DIG_CTRL_SUPPORTED
 < SAR ADC Module
- 
SOC_ADC_ARBITER_SUPPORTED
 
- 
SOC_ADC_DIG_IIR_FILTER_SUPPORTED
 
- 
SOC_ADC_MONITOR_SUPPORTED
 
- 
SOC_ADC_DMA_SUPPORTED
 
- 
SOC_ADC_DIG_SUPPORTED_UNIT(UNIT)
 
- 
SOC_ADC_PERIPH_NUM
 
- 
SOC_ADC_CHANNEL_NUM(PERIPH_NUM)
 
- 
SOC_ADC_MAX_CHANNEL_NUM
 
- 
SOC_ADC_ATTEN_NUM
 Digital
- 
SOC_ADC_DIGI_CONTROLLER_NUM
 
- 
SOC_ADC_PATT_LEN_MAX
 One pattern table, each contains 8 items. Each item takes 1 byte
- 
SOC_ADC_DIGI_MIN_BITWIDTH
 
- 
SOC_ADC_DIGI_MAX_BITWIDTH
 
- 
SOC_ADC_DIGI_RESULT_BYTES
 
- 
SOC_ADC_DIGI_DATA_BYTES_PER_CONV
 
- 
SOC_ADC_DIGI_IIR_FILTER_NUM
 
- 
SOC_ADC_DIGI_MONITOR_NUM
 F_sample = F_digi_con / 2 / interval. F_digi_con = 5M for now. 30 <= interval <= 4095
- 
SOC_ADC_SAMPLE_FREQ_THRES_HIGH
 
- 
SOC_ADC_SAMPLE_FREQ_THRES_LOW
 RTC
- 
SOC_ADC_RTC_MIN_BITWIDTH
 
- 
SOC_ADC_RTC_MAX_BITWIDTH
 Calibration
- 
SOC_ADC_CALIBRATION_V1_SUPPORTED
 support HW offset calibration version 1
- 
SOC_ADC_SELF_HW_CALI_SUPPORTED
 support HW offset self calibration
- 
SOC_APB_BACKUP_DMA
 
- 
SOC_BROWNOUT_RESET_SUPPORTED
 
- 
SOC_SHARED_IDCACHE_SUPPORTED
 
- 
SOC_CACHE_MEMORY_IBANK_SIZE
 
- 
SOC_CPU_CORES_NUM
 
- 
SOC_CPU_INTR_NUM
 
- 
SOC_CPU_HAS_FLEXIBLE_INTC
 
- 
SOC_CPU_BREAKPOINTS_NUM
 
- 
SOC_CPU_WATCHPOINTS_NUM
 
- 
SOC_CPU_WATCHPOINT_MAX_REGION_SIZE
 
- 
SOC_DS_SIGNATURE_MAX_BIT_LEN
 The maximum length of a Digital Signature in bits.
- 
SOC_DS_KEY_PARAM_MD_IV_LENGTH
 Initialization vector (IV) length for the RSA key parameter message digest (MD) in bytes.
- 
SOC_DS_KEY_CHECK_MAX_WAIT_US
 Maximum wait time for DS parameter decryption key. If overdue, then key error. See TRM DS chapter for more details
- 
SOC_GDMA_GROUPS
 
- 
SOC_GDMA_PAIRS_PER_GROUP
 
- 
SOC_GDMA_TX_RX_SHARE_INTERRUPT
 
- 
SOC_GPIO_PORT
 
- 
SOC_GPIO_PIN_COUNT
 
- 
SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER
 
- 
SOC_GPIO_FILTER_CLK_SUPPORT_APB
 
- 
SOC_GPIO_SUPPORT_FORCE_HOLD
 
- 
SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP
 
- 
SOC_GPIO_VALID_GPIO_MASK
 
- 
SOC_GPIO_VALID_OUTPUT_GPIO_MASK
 
- 
SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK
 
- 
SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK
 
- 
SOC_DEDIC_GPIO_OUT_CHANNELS_NUM
 8 outward channels on each CPU core
- 
SOC_DEDIC_GPIO_IN_CHANNELS_NUM
 8 inward channels on each CPU core
- 
SOC_DEDIC_PERIPH_ALWAYS_ENABLE
 The dedicated GPIO (a.k.a. fast GPIO) is featured by some customized CPU instructions, which is always enabled
- 
SOC_I2C_NUM
 
- 
SOC_I2C_FIFO_LEN
 I2C hardware FIFO depth
- 
SOC_I2C_CMD_REG_NUM
 Number of I2C command registers
- 
SOC_I2C_SUPPORT_SLAVE
 
- 
SOC_I2C_SUPPORT_HW_CLR_BUS
 
- 
SOC_I2C_SUPPORT_XTAL
 
- 
SOC_I2C_SUPPORT_RTC
 
- 
SOC_I2S_NUM
 
- 
SOC_I2S_HW_VERSION_2
 
- 
SOC_I2S_SUPPORTS_XTAL
 
- 
SOC_I2S_SUPPORTS_PLL_F160M
 
- 
SOC_I2S_SUPPORTS_PCM
 
- 
SOC_I2S_SUPPORTS_PDM
 
- 
SOC_I2S_SUPPORTS_PDM_TX
 
- 
SOC_I2S_PDM_MAX_TX_LINES
 
- 
SOC_I2S_SUPPORTS_TDM
 
- 
SOC_LEDC_SUPPORT_APB_CLOCK
 
- 
SOC_LEDC_SUPPORT_XTAL_CLOCK
 
- 
SOC_LEDC_CHANNEL_NUM
 
- 
SOC_LEDC_TIMER_BIT_WIDTH
 
- 
SOC_LEDC_SUPPORT_FADE_STOP
 
- 
SOC_MMU_LINEAR_ADDRESS_REGION_NUM
 
- 
SOC_MMU_PERIPH_NUM
 
- 
SOC_MPU_CONFIGURABLE_REGIONS_SUPPORTED
 
- 
SOC_MPU_MIN_REGION_SIZE
 
- 
SOC_MPU_REGIONS_MAX_NUM
 
- 
SOC_MPU_REGION_RO_SUPPORTED
 
- 
SOC_MPU_REGION_WO_SUPPORTED
 
- 
SOC_RMT_GROUPS
 One RMT group
- 
SOC_RMT_TX_CANDIDATES_PER_GROUP
 Number of channels that capable of Transmit
- 
SOC_RMT_RX_CANDIDATES_PER_GROUP
 Number of channels that capable of Receive
- 
SOC_RMT_CHANNELS_PER_GROUP
 Total 4 channels
- 
SOC_RMT_MEM_WORDS_PER_CHANNEL
 Each channel owns 48 words memory (1 word = 4 Bytes)
- 
SOC_RMT_SUPPORT_RX_PINGPONG
 Support Ping-Pong mode on RX path
- 
SOC_RMT_SUPPORT_RX_DEMODULATION
 Support signal demodulation on RX path (i.e. remove carrier)
- 
SOC_RMT_SUPPORT_TX_ASYNC_STOP
 Support stop transmission asynchronously
- 
SOC_RMT_SUPPORT_TX_LOOP_COUNT
 Support transmit specified number of cycles in loop mode
- 
SOC_RMT_SUPPORT_TX_SYNCHRO
 Support coordinate a group of TX channels to start simultaneously
- 
SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY
 TX carrier can be modulated to data phase only
- 
SOC_RMT_SUPPORT_XTAL
 Support set XTAL clock as the RMT clock source
- 
SOC_RMT_SUPPORT_APB
 Support set APB as the RMT clock source
- 
SOC_RMT_SUPPORT_RC_FAST
 Support set RC_FAST clock as the RMT clock source
- 
SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH
 
- 
SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM
 
- 
SOC_RTC_CNTL_CPU_PD_DMA_ADDR_ALIGN
 
- 
SOC_RTC_CNTL_CPU_PD_DMA_BLOCK_SIZE
 
- 
SOC_RTC_CNTL_CPU_PD_RETENTION_MEM_SIZE
 
- 
SOC_SLEEP_SYSTIMER_STALL_WORKAROUND
 
- 
SOC_SLEEP_TGWDT_STOP_WORKAROUND
 
- 
SOC_RTCIO_PIN_COUNT
 
- 
SOC_RSA_MAX_BIT_LEN
 
- 
SOC_SHA_DMA_MAX_BUFFER_SIZE
 
- 
SOC_SHA_SUPPORT_DMA
 
- 
SOC_SHA_SUPPORT_RESUME
 
- 
SOC_SHA_GDMA
 
- 
SOC_SHA_SUPPORT_SHA1
 
- 
SOC_SHA_SUPPORT_SHA224
 
- 
SOC_SHA_SUPPORT_SHA256
 
- 
SOC_SDM_GROUPS
 
- 
SOC_SDM_CHANNELS_PER_GROUP
 
- 
SOC_SDM_CLK_SUPPORT_APB
 
- 
SOC_SPI_PERIPH_NUM
 
- 
SOC_SPI_PERIPH_CS_NUM(i)
 
- 
SOC_SPI_MAX_CS_NUM
 
- 
SOC_SPI_MAXIMUM_BUFFER_SIZE
 
- 
SOC_SPI_SUPPORT_DDRCLK
 
- 
SOC_SPI_SLAVE_SUPPORT_SEG_TRANS
 
- 
SOC_SPI_SUPPORT_CD_SIG
 
- 
SOC_SPI_SUPPORT_CONTINUOUS_TRANS
 
- 
SOC_SPI_SUPPORT_SLAVE_HD_VER2
 
- 
SOC_SPI_SUPPORT_CLK_APB
 
- 
SOC_SPI_SUPPORT_CLK_XTAL
 
- 
SOC_SPI_PERIPH_SUPPORT_MULTILINE_MODE(host_id)
 
- 
SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT
 
- 
SOC_MEMSPI_IS_INDEPENDENT
 
- 
SOC_SPI_MAX_PRE_DIVIDER
 
- 
SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE
 
- 
SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND
 
- 
SOC_SPI_MEM_SUPPORT_AUTO_RESUME
 
- 
SOC_SPI_MEM_SUPPORT_IDLE_INTR
 
- 
SOC_SPI_MEM_SUPPORT_SW_SUSPEND
 
- 
SOC_SPI_MEM_SUPPORT_CHECK_SUS
 
- 
SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE
 
- 
SOC_SPI_MEM_SUPPORT_WRAP
 
- 
SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED
 
- 
SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED
 
- 
SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED
 
- 
SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED
 
- 
SOC_SYSTIMER_COUNTER_NUM
 
- 
SOC_SYSTIMER_ALARM_NUM
 
- 
SOC_SYSTIMER_BIT_WIDTH_LO
 
- 
SOC_SYSTIMER_BIT_WIDTH_HI
 
- 
SOC_SYSTIMER_FIXED_DIVIDER
 
- 
SOC_SYSTIMER_INT_LEVEL
 
- 
SOC_SYSTIMER_ALARM_MISS_COMPENSATE
 
- 
SOC_TIMER_GROUPS
 
- 
SOC_TIMER_GROUP_TIMERS_PER_GROUP
 
- 
SOC_TIMER_GROUP_COUNTER_BIT_WIDTH
 
- 
SOC_TIMER_GROUP_SUPPORT_XTAL
 
- 
SOC_TIMER_GROUP_SUPPORT_APB
 
- 
SOC_TIMER_GROUP_TOTAL_TIMERS
 
- 
SOC_MWDT_SUPPORT_XTAL
 
- 
SOC_TWAI_CONTROLLER_NUM
 
- 
SOC_TWAI_CLK_SUPPORT_APB
 
- 
SOC_TWAI_BRP_MIN
 
- 
SOC_TWAI_BRP_MAX
 
- 
SOC_TWAI_SUPPORTS_RX_STATUS
 
- 
SOC_EFUSE_DIS_DOWNLOAD_ICACHE
 
- 
SOC_EFUSE_DIS_PAD_JTAG
 
- 
SOC_EFUSE_DIS_USB_JTAG
 
- 
SOC_EFUSE_DIS_DIRECT_BOOT
 
- 
SOC_EFUSE_SOFT_DIS_JTAG
 
- 
SOC_EFUSE_DIS_ICACHE
 
- 
SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK
 
- 
SOC_SECURE_BOOT_V2_RSA
 
- 
SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS
 
- 
SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS
 
- 
SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY
 
- 
SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX
 
- 
SOC_FLASH_ENCRYPTION_XTS_AES
 
- 
SOC_FLASH_ENCRYPTION_XTS_AES_128
 
- 
SOC_MEMPROT_CPU_PREFETCH_PAD_SIZE
 
- 
SOC_MEMPROT_MEM_ALIGN_SIZE
 
- 
SOC_UART_NUM
 
- 
SOC_UART_FIFO_LEN
 The UART hardware FIFO length
- 
SOC_UART_BITRATE_MAX
 Max bit rate supported by UART
- 
SOC_UART_SUPPORT_APB_CLK
 Support APB as the clock source
- 
SOC_UART_SUPPORT_RTC_CLK
 Support RTC clock as the clock source
- 
SOC_UART_SUPPORT_XTAL_CLK
 Support XTAL clock as the clock source
- 
SOC_UART_SUPPORT_WAKEUP_INT
 Support UART wakeup interrupt
- 
SOC_UART_REQUIRE_CORE_RESET
 
- 
SOC_UART_SUPPORT_FSM_TX_WAIT_SEND
 
- 
SOC_COEX_HW_PTI
 
- 
SOC_EXTERNAL_COEX_ADVANCE
 HARDWARE ADVANCED EXTERNAL COEXISTENCE CAPS
- 
SOC_EXTERNAL_COEX_LEADER_TX_LINE
 EXTERNAL COEXISTENCE TX LINE CAPS
- 
SOC_PHY_DIG_REGS_MEM_SIZE
 
- 
SOC_MAC_BB_PD_MEM_SIZE
 
- 
SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH
 
- 
SOC_PM_SUPPORT_WIFI_WAKEUP
 
- 
SOC_PM_SUPPORT_BT_WAKEUP
 
- 
SOC_PM_SUPPORT_CPU_PD
 
- 
SOC_PM_SUPPORT_WIFI_PD
 
- 
SOC_PM_SUPPORT_BT_PD
 
- 
SOC_PM_SUPPORT_RC_FAST_PD
 
- 
SOC_PM_SUPPORT_VDDSDIO_PD
 
- 
SOC_PM_SUPPORT_MAC_BB_PD
 
- 
SOC_PM_CPU_RETENTION_BY_RTCCNTL
 
- 
SOC_PM_MODEM_RETENTION_BY_BACKUPDMA
 
- 
SOC_CLK_RC_FAST_D256_SUPPORTED
 
- 
SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256
 
- 
SOC_CLK_RC_FAST_SUPPORT_CALIBRATION
 
- 
SOC_CLK_XTAL32K_SUPPORTED
 Support to connect an external low frequency crystal
- 
SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC
 
- 
SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL
 
- 
SOC_WIFI_HW_TSF
 Support hardware TSF
- 
SOC_WIFI_FTM_SUPPORT
 Support FTM
- 
SOC_WIFI_GCMP_SUPPORT
 Support GCMP(GCMP128 and GCMP256)
- 
SOC_WIFI_WAPI_SUPPORT
 Support WAPI
- 
SOC_WIFI_CSI_SUPPORT
 Support CSI
- 
SOC_WIFI_MESH_SUPPORT
 Support WIFI MESH
- 
SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW
 Support delta early time for rf phy on/off
- 
SOC_WIFI_PHY_NEEDS_USB_WORKAROUND
 SoC has WiFi and USB PHYs interference, needs a workaround
- 
SOC_BLE_SUPPORTED
 Support Bluetooth Low Energy hardware
- 
SOC_BLE_MESH_SUPPORTED
 Support BLE MESH
- 
SOC_BLE_50_SUPPORTED
 Support Bluetooth 5.0
- 
SOC_BLE_DEVICE_PRIVACY_SUPPORTED
 Support BLE device privacy mode
- 
SOC_BLUFI_SUPPORTED
 Support BLUFI
- 
SOC_PHY_COMBO_MODULE
 Support Wi-Fi and BLE