272 lines
9.3 KiB
Plaintext
272 lines
9.3 KiB
Plaintext
# Copyright (c) 2023 Espressif Systems (Shanghai) Co., Ltd.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
if SOC_SERIES_ESP32
|
|
|
|
config IDF_TARGET_ESP32
|
|
bool "ESP32 as target board"
|
|
default y
|
|
|
|
config SOC_TOOLCHAIN_NAME
|
|
string
|
|
default "espressif_esp32"
|
|
|
|
choice SOC_PART_NUMBER
|
|
prompt "ESP32 SOC/SIP Selection"
|
|
depends on SOC_SERIES_ESP32
|
|
|
|
# SoC with/without embedded flash
|
|
config SOC_ESP32_D0WD_V3
|
|
bool "ESP32_D0WD_V3"
|
|
config SOC_ESP32_D0WDR2_V3
|
|
bool "ESP32_D0WDR2_V3"
|
|
config SOC_ESP32_U4WDH
|
|
bool "ESP32_U4WDH"
|
|
config SOC_ESP32_PICO_V3
|
|
bool "ESP32_PICO_V3"
|
|
config SOC_ESP32_PICO_V3_02
|
|
bool "ESP32_PICO_V3_02"
|
|
config SOC_ESP32_PICO_D4
|
|
bool "ESP32_PICO_D4"
|
|
# SiP with external flash / psram
|
|
config SOC_ESP32_WROOM_DA_N4
|
|
bool "ESP32_WROOM_DA_N4"
|
|
config SOC_ESP32_WROOM_DA_N8
|
|
bool "ESP32_WROOM_DA_N8"
|
|
config SOC_ESP32_WROOM_DA_N16
|
|
bool "ESP32_WROOM_DA_N16"
|
|
config SOC_ESP32_WROOM_32UE_N4
|
|
bool "ESP32_WROOM_32UE_N4"
|
|
config SOC_ESP32_WROOM_32UE_N8
|
|
bool "ESP32_WROOM_32UE_N8"
|
|
config SOC_ESP32_WROOM_32UE_N16
|
|
bool "ESP32_WROOM_32UE_N16"
|
|
config SOC_ESP32_WROVER_E_N4R2
|
|
bool "ESP32_WROVER_E_N4R2"
|
|
config SOC_ESP32_WROVER_E_N8R2
|
|
bool "ESP32_WROVER_E_N8R2"
|
|
config SOC_ESP32_WROVER_E_N16R2
|
|
bool "ESP32_WROVER_E_N16R2"
|
|
config SOC_ESP32_WROVER_E_N4R8
|
|
bool "ESP32_WROVER_E_N4R8"
|
|
config SOC_ESP32_WROVER_E_N8R8
|
|
bool "ESP32_WROVER_E_N8R8"
|
|
config SOC_ESP32_WROVER_E_N16R8
|
|
bool "ESP32_WROVER_E_N16R8"
|
|
|
|
endchoice # SOC_PART_NUMBER
|
|
|
|
config ESP_SYSTEM_RTC_EXT_XTAL
|
|
bool
|
|
|
|
config ESP_SYSTEM_RTC_EXT_OSC
|
|
bool
|
|
|
|
config ESP32_NETWORK_CORE
|
|
bool "Uses the ESP32 APP_CPU as Network dedicated core"
|
|
|
|
config ESP32_BT_RESERVE_DRAM
|
|
hex "Bluetooth controller reserved RAM region"
|
|
default 0xdb5c if BT
|
|
default 0
|
|
|
|
config ESP_HEAP_MEM_POOL_REGION_1_SIZE
|
|
int "Internal DRAM region 1 mempool size"
|
|
default 0 if MCUBOOT
|
|
default 1024 if ESP32_NETWORK_CORE
|
|
default 49152
|
|
help
|
|
ESP32 has two banks of size 192K and 128K which can be used
|
|
as DRAM, system heap allocates area from region 0.
|
|
This configuration can be used to add memory from region 1
|
|
to heap and can be allocated using k_malloc.
|
|
|
|
choice ESP32_RTC_CLK_SRC
|
|
prompt "RTC clock source"
|
|
default ESP32_RTC_CLK_SRC_INT_RC
|
|
help
|
|
Choose which clock is used as RTC clock source.
|
|
|
|
- "Internal 150kHz oscillator" option provides lowest deep sleep current
|
|
consumption, and does not require extra external components. However
|
|
frequency stability with respect to temperature is poor, so time may
|
|
drift in deep/light sleep modes.
|
|
- "External 32kHz crystal" provides better frequency stability, at the
|
|
expense of slightly higher (1uA) deep sleep current consumption.
|
|
- "External 32kHz oscillator" allows using 32kHz clock generated by an
|
|
external circuit. In this case, external clock signal must be connected
|
|
to 32K_XN pin. Amplitude should be <1.2V in case of sine wave signal,
|
|
and <1V in case of square wave signal. Common mode voltage should be
|
|
0.1 < Vcm < 0.5Vamp, where Vamp is the signal amplitude.
|
|
Additionally, 1nF capacitor must be connected between 32K_XP pin and
|
|
ground. 32K_XP pin can not be used as a GPIO in this case.
|
|
- "Internal 8.5MHz oscillator divided by 256" option results in higher
|
|
deep sleep current (by 5uA) but has better frequency stability than
|
|
the internal 150kHz oscillator. It does not require external components.
|
|
|
|
config ESP32_RTC_CLK_SRC_INT_RC
|
|
bool "Internal 150kHz RC oscillator"
|
|
|
|
config ESP32_RTC_CLK_SRC_EXT_CRYS
|
|
bool "External 32kHz crystal"
|
|
select ESP_SYSTEM_RTC_EXT_XTAL
|
|
|
|
config ESP32_RTC_CLK_SRC_EXT_OSC
|
|
bool "External 32kHz oscillator at 32K_XN pin"
|
|
select ESP_SYSTEM_RTC_EXT_OSC
|
|
|
|
config ESP32_RTC_CLK_SRC_INT_8MD256
|
|
bool "Internal 8.5MHz oscillator, divided by 256 (~33kHz)"
|
|
|
|
endchoice # ESP32_RTC_CLK_SRC
|
|
|
|
config ESP32_RTC_CLK_CAL_CYCLES
|
|
int "Number of cycles for RTC_SLOW_CLK calibration"
|
|
default 3000 if ESP32_RTC_CLK_SRC_EXT_CRYS || ESP32_RTC_CLK_SRC_EXT_OSC || ESP32_RTC_CLK_SRC_INT_8MD256
|
|
default 1024 if ESP32_RTC_CLK_SRC_INT_RC
|
|
range 0 27000 if ESP32_RTC_CLK_SRC_EXT_CRYS || ESP32_RTC_CLK_SRC_EXT_OSC || ESP32_RTC_CLK_SRC_INT_8MD256
|
|
range 0 32766 if ESP32_RTC_CLK_SRC_INT_RC
|
|
help
|
|
When the startup code initializes RTC_SLOW_CLK, it can perform
|
|
calibration by comparing the RTC_SLOW_CLK frequency with main XTAL
|
|
frequency. This option sets the number of RTC_SLOW_CLK cycles measured
|
|
by the calibration routine. Higher numbers increase calibration
|
|
precision, which may be important for applications which spend a lot of
|
|
time in deep sleep. Lower numbers reduce startup time.
|
|
|
|
When this option is set to 0, clock calibration will not be performed at
|
|
startup, and approximate clock frequencies will be assumed:
|
|
|
|
- 150000 Hz if internal RC oscillator is used as clock source. For this use value 1024.
|
|
- 32768 Hz if the 32k crystal oscillator is used. For this use value 3000 or more.
|
|
In case more value will help improve the definition of the launch of the crystal.
|
|
If the crystal could not start, it will be switched to internal RC.
|
|
|
|
config ESP32_RTC_XTAL_CAL_RETRY
|
|
int "Number of attempts to repeat 32k XTAL calibration"
|
|
default 1
|
|
depends on ESP32_RTC_CLK_SRC_EXT_CRYS
|
|
help
|
|
Number of attempts to repeat 32k XTAL calibration
|
|
before giving up and switching to the internal RC.
|
|
Increase this option if the 32k crystal oscillator
|
|
does not start and switches to internal RC.
|
|
|
|
config ESP32_DEEP_SLEEP_WAKEUP_DELAY
|
|
int "Extra delay in deep sleep wake stub (in us)"
|
|
default 2000
|
|
range 0 5000
|
|
help
|
|
When ESP32 exits deep sleep, the CPU and the flash chip are powered on
|
|
at the same time. CPU will run deep sleep stub first, and then
|
|
proceed to load code from flash. Some flash chips need sufficient
|
|
time to pass between power on and first read operation. By default,
|
|
without any extra delay, this time is approximately 900us, although
|
|
some flash chip types need more than that.
|
|
|
|
By default extra delay is set to 2000us. When optimizing startup time
|
|
for applications which require it, this value may be reduced.
|
|
|
|
If you are seeing "flash read err, 1000" message printed to the
|
|
console after deep sleep reset, try increasing this value.
|
|
|
|
choice ESP32_UNIVERSAL_MAC_ADDRESSES
|
|
bool "Number of universally administered (by IEEE) MAC address"
|
|
default ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR
|
|
help
|
|
Configure the number of universally administered (by IEEE) MAC addresses.
|
|
During initialization, MAC addresses for each network interface are generated or
|
|
derived from a single base MAC address. If the number of universal MAC addresses is four,
|
|
all four interfaces (WiFi station, WiFi softap, Bluetooth and Ethernet) receive a universally
|
|
administered MAC address. These are generated sequentially by adding 0, 1, 2 and 3 (respectively)
|
|
to the final octet of the base MAC address. If the number of universal MAC addresses is two,
|
|
only two interfaces (WiFi station and Bluetooth) receive a universally administered MAC address.
|
|
These are generated sequentially by adding 0 and 1 (respectively) to the base MAC address.
|
|
The remaining two interfaces (WiFi softap and Ethernet) receive local MAC addresses.
|
|
These are derived from the universal WiFi station and Bluetooth MAC addresses, respectively.
|
|
When using the default (Espressif-assigned) base MAC address, either setting can be used.
|
|
When using a custom universal MAC address range, the correct setting will depend on the
|
|
allocation of MAC addresses in this range (either 2 or 4 per device.)
|
|
|
|
config ESP32_UNIVERSAL_MAC_ADDRESSES_TWO
|
|
bool "Two"
|
|
select ESP_MAC_ADDR_UNIVERSE_WIFI_STA
|
|
select ESP_MAC_ADDR_UNIVERSE_BT
|
|
|
|
config ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR
|
|
bool "Four"
|
|
select ESP_MAC_ADDR_UNIVERSE_WIFI_STA
|
|
select ESP_MAC_ADDR_UNIVERSE_WIFI_AP
|
|
select ESP_MAC_ADDR_UNIVERSE_BT
|
|
select ESP_MAC_ADDR_UNIVERSE_ETH
|
|
|
|
endchoice # ESP32_UNIVERSAL_MAC_ADDRESSES
|
|
|
|
config ESP_MAC_ADDR_UNIVERSE_WIFI_AP
|
|
bool
|
|
|
|
config ESP_MAC_ADDR_UNIVERSE_WIFI_STA
|
|
bool
|
|
|
|
config ESP_MAC_ADDR_UNIVERSE_BT
|
|
bool
|
|
|
|
config ESP_MAC_ADDR_UNIVERSE_ETH
|
|
bool
|
|
|
|
config ESP32_UNIVERSAL_MAC_ADDRESSES
|
|
int
|
|
default 2 if ESP32_UNIVERSAL_MAC_ADDRESSES_TWO
|
|
default 4 if ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR
|
|
|
|
config ESP32_PHY_MAX_WIFI_TX_POWER
|
|
int "Max WiFi/BLE TX power (dBm)"
|
|
range 10 20
|
|
default 20
|
|
help
|
|
Set maximum transmit power for WiFi radio. Actual transmit power for high
|
|
data rates may be lower than this setting.
|
|
|
|
config ESP32_PHY_MAX_TX_POWER
|
|
int
|
|
default ESP32_PHY_MAX_WIFI_TX_POWER
|
|
|
|
config ESP32_EMAC
|
|
bool
|
|
default y if ETH_ESP32
|
|
default y if MDIO_ESP32
|
|
default n
|
|
help
|
|
Hidden option to enable the ESP32 Ethernet MAC driver.
|
|
Both Ethernet and MDIO depend on this driver.
|
|
This option allows enabling MDIO independently of Ethernet.
|
|
|
|
if ESP32_EMAC
|
|
|
|
config ETH_DMA_BUFFER_SIZE
|
|
int "Ethernet DMA buffer size (Byte)"
|
|
range 256 1600
|
|
default 512
|
|
help
|
|
Set the size of each buffer used by Ethernet MAC DMA.
|
|
|
|
config ETH_DMA_RX_BUFFER_NUM
|
|
int "Amount of Ethernet DMA Rx buffers"
|
|
range 3 30
|
|
default 10
|
|
help
|
|
Number of DMA receive buffers. Each buffer's size is ETH_DMA_BUFFER_SIZE.
|
|
Larger number of buffers could increase throughput somehow.
|
|
|
|
config ETH_DMA_TX_BUFFER_NUM
|
|
int "Amount of Ethernet DMA Tx buffers"
|
|
range 3 30
|
|
default 10
|
|
help
|
|
Number of DMA transmit buffers. Each buffer's size is ETH_DMA_BUFFER_SIZE.
|
|
Larger number of buffers could increase throughput somehow.
|
|
|
|
endif # ESP32_EMAC config
|
|
|
|
endif # SOC_SERIES_ESP32 config
|