| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235 |
- menu "Hardware Settings"
- orsource "./port/$IDF_TARGET/Kconfig.spiram"
- menu "MAC Config"
- config ESP_MAC_ADDR_UNIVERSE_WIFI_STA
- bool
- config ESP_MAC_ADDR_UNIVERSE_WIFI_AP
- bool
- config ESP_MAC_ADDR_UNIVERSE_BT
- bool
- config ESP_MAC_ADDR_UNIVERSE_ETH
- bool
- # Insert chip-specific MAC config
- rsource "./port/$IDF_TARGET/Kconfig.mac"
- endmenu
- menu "Sleep Config"
- # This is here since this option affect behavior of esp_light_sleep_start
- # regardless of power management configuration.
- config ESP_SLEEP_POWER_DOWN_FLASH
- bool "Power down flash in light sleep when there is no SPIRAM"
- depends on !SPIRAM
- default n
- help
- If enabled, chip will try to power down flash as part of esp_light_sleep_start(), which costs
- more time when chip wakes up. Can only be enabled if there is no SPIRAM configured.
- This option will power down flash under a strict but relatively safe condition. Also, it is possible to
- power down flash under a relaxed condition by using esp_sleep_pd_config() to set ESP_PD_DOMAIN_VDDSDIO
- to ESP_PD_OPTION_OFF. It should be noted that there is a risk in powering down flash, you can refer
- `ESP-IDF Programming Guide/API Reference/System API/Sleep Modes/Power-down of Flash` for more details.
- config ESP_SLEEP_RTC_BUS_ISO_WORKAROUND
- bool
- default y if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
- config ESP_SLEEP_GPIO_RESET_WORKAROUND
- bool "light sleep GPIO reset workaround"
- default y if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3
- select PM_SLP_DISABLE_GPIO if FREERTOS_USE_TICKLESS_IDLE
- help
- esp32c2, esp32c3 and esp32s3 will reset at wake-up if GPIO is received a small electrostatic
- pulse during light sleep, with specific condition
- - GPIO needs to be configured as input-mode only
- - The pin receives a small electrostatic pulse, and reset occurs when the pulse
- voltage is higher than 6 V
- For GPIO set to input mode only, it is not a good practice to leave it open/floating,
- The hardware design needs to controlled it with determined supply or ground voltage
- is necessary.
- This option provides a software workaround for this issue. Configure to isolate all
- GPIO pins in sleep state.
- config ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND
- bool "PSRAM leakage current workaround in light sleep"
- depends on SPIRAM
- default y
- help
- When the CS pin of SPIRAM is not pulled up, the sleep current will
- increase during light sleep. If the CS pin of SPIRAM has an external
- pull-up, you do not need to select this option, otherwise, you
- should enable this option.
- config ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND
- bool "Flash leakage current workaround in light sleep"
- default y
- help
- When the CS pin of Flash is not pulled up, the sleep current will
- increase during light sleep. If the CS pin of Flash has an external
- pull-up, you do not need to select this option, otherwise, you
- should enable this option.
- config ESP_SLEEP_MSPI_NEED_ALL_IO_PU
- bool "All pins of mspi need pull up"
- depends on ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND || ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND
- default y if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32S3
- help
- To reduce leakage current, some types of SPI Flash/RAM only need to pull up the CS pin
- during light sleep. But there are also some kinds of SPI Flash/RAM that need to pull up
- all pins. It depends on the SPI Flash/RAM chip used.
- config ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY
- int "Extra delay in deep sleep wake stub (in us)"
- depends on IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3
- default 2000
- range 0 5000
- help
- When the chip 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.
- endmenu
- menu "RTC Clock Config"
- orsource "./port/$IDF_TARGET/Kconfig.rtc"
- config RTC_CLOCK_BBPLL_POWER_ON_WITH_USB
- # This is used for configure the RTC clock.
- bool "Keep BBPLL clock always work"
- depends on ESP_CONSOLE_USB_SERIAL_JTAG || ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG
- default y
- help
- When the chip goes sleep or software reset, the clock source would change to XTAL
- and switch off the BBPLL clock for saving power. However, this might make the
- USB_SERIAL_JTAG down which depends on BBPLL as its unique clock source.
- Therefore, this is used for keeping bbpll clock always on when USB_SERIAL_JTAG PORT is using.
- If you want to use USB_SERIAL_JTAG under sw_reset case or sleep-wakeup case, you shoule select
- this option. But be aware that this might increase the power consumption.
- endmenu
- menu "Peripheral Control"
- config PERIPH_CTRL_FUNC_IN_IRAM
- bool "Place peripheral control functions into IRAM"
- default n
- help
- Place peripheral control functions (e.g. periph_module_reset) into IRAM,
- so that these functions can be IRAM-safe and able to be called in the other IRAM interrupt context.
- endmenu
- menu "MMU Config"
- # This Config is used for configure the MMU.
- # Be configured based on flash size selection.
- # Invisible to users.
- config MMU_PAGE_SIZE_16KB
- bool
- default y if IDF_TARGET_ESP32C2 && ESPTOOLPY_FLASHSIZE_1MB
- default n
- config MMU_PAGE_SIZE_32KB
- bool
- default y if IDF_TARGET_ESP32C2 && ESPTOOLPY_FLASHSIZE_2MB
- default n
- config MMU_PAGE_SIZE_64KB
- bool
- default y if !MMU_PAGE_SIZE_32KB && !MMU_PAGE_SIZE_16KB
- default n
- config MMU_PAGE_MODE
- string
- default "16KB" if MMU_PAGE_SIZE_16KB
- default "32KB" if MMU_PAGE_SIZE_32KB
- default "64KB" if MMU_PAGE_SIZE_64KB
- config MMU_PAGE_SIZE
- # Some chips support different flash MMU page sizes: 64k, 32k, 16k.
- # Since the number of MMU pages is limited, the maximum flash size supported
- # for each page size is reduced proportionally: 4 MB, 2MB, 1MB. To make best
- # use of small flash sizes (reducing the wasted space due to alignment), we
- # need to use the smallest possible MMU page size for the given flash size.
- hex
- default 0x4000 if MMU_PAGE_SIZE_16KB
- default 0x8000 if MMU_PAGE_SIZE_32KB
- default 0x10000 if MMU_PAGE_SIZE_64KB
- endmenu
- # Insert chip-specific HW config
- orsource "./port/$IDF_TARGET/Kconfig.hw_support"
- menu "GDMA Configuration"
- depends on SOC_GDMA_SUPPORTED
- config GDMA_CTRL_FUNC_IN_IRAM
- bool "Place GDMA control functions into IRAM"
- default n
- help
- Place GDMA control functions (like start/stop/append/reset) into IRAM,
- so that these functions can be IRAM-safe and able to be called in the other IRAM interrupt context.
- Enabling this option can improve driver performance as well.
- config GDMA_ISR_IRAM_SAFE
- bool "GDMA ISR IRAM-Safe"
- default n
- help
- This will ensure the GDMA interrupt handler is IRAM-Safe, allow to avoid flash
- cache misses, and also be able to run whilst the cache is disabled.
- (e.g. SPI Flash write).
- endmenu # GDMA Configuration
- menu "Main XTAL Config"
- choice XTAL_FREQ_SEL
- prompt "Main XTAL frequency"
- default XTAL_FREQ_40 if SOC_XTAL_SUPPORT_40M
- help
- This option selects the operating frequency of the XTAL (crystal) clock used to drive the ESP target.
- The selected value MUST reflect the frequency of the given hardware.
- Note: The XTAL_FREQ_AUTO option allows the ESP target to automatically estimating XTAL clock's
- operating frequency. However, this feature is only supported on the ESP32. The ESP32 uses the
- internal 8MHZ as a reference when estimating. Due to the internal oscillator's frequency being
- temperature dependent, usage of the XTAL_FREQ_AUTO is not recommended in applications that operate
- in high ambient temperatures or use high-temperature qualified chips and modules.
- config XTAL_FREQ_24
- depends on SOC_XTAL_SUPPORT_24M
- bool "24 MHz"
- config XTAL_FREQ_26
- depends on SOC_XTAL_SUPPORT_26M
- bool "26 MHz"
- config XTAL_FREQ_32
- depends on SOC_XTAL_SUPPORT_32M
- bool "32 MHz"
- config XTAL_FREQ_40
- depends on SOC_XTAL_SUPPORT_40M
- bool "40 MHz"
- config XTAL_FREQ_AUTO
- depends on SOC_XTAL_SUPPORT_AUTO_DETECT
- bool "Autodetect"
- endchoice
- # rtc_xtal_freq_t enum in soc/rtc.h lists the XTAL frequencies can be supported
- # SOC_XTAL_SUPPORT_XXX in soc_caps.h lists the XTAL frequencies already supported
- config XTAL_FREQ
- int
- default 24 if XTAL_FREQ_24
- default 26 if XTAL_FREQ_26
- default 32 if XTAL_FREQ_32
- default 40 if XTAL_FREQ_40
- default 0 if XTAL_FREQ_AUTO
- endmenu
- endmenu
|