mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 07:01:43 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			418 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			418 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| choice BTDM_CTRL_MODE
 | |
|     prompt "Bluetooth controller mode (BR/EDR/BLE/DUALMODE)"
 | |
|     depends on BT_CTRL_ESP32
 | |
|     help
 | |
|         Specify the bluetooth controller mode (BR/EDR, BLE or dual mode).
 | |
| 
 | |
|     config BTDM_CTRL_MODE_BLE_ONLY
 | |
|         bool "BLE Only"
 | |
| 
 | |
|     config BTDM_CTRL_MODE_BR_EDR_ONLY
 | |
|         bool "BR/EDR Only"
 | |
| 
 | |
|     config BTDM_CTRL_MODE_BTDM
 | |
|         bool "Bluetooth Dual Mode"
 | |
| 
 | |
| endchoice
 | |
| 
 | |
| config BTDM_CTRL_BLE_MAX_CONN
 | |
|     int "BLE Max Connections"
 | |
|     depends on BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 3
 | |
|     range 1 9
 | |
|     help
 | |
|         BLE maximum connections of bluetooth controller.
 | |
|         Each connection uses 1KB static DRAM whenever the BT controller is enabled.
 | |
| 
 | |
| config BTDM_CTRL_BR_EDR_MAX_ACL_CONN
 | |
|     int "BR/EDR ACL Max Connections"
 | |
|     depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 2
 | |
|     range 1 7
 | |
|     help
 | |
|         BR/EDR ACL maximum connections of bluetooth controller.
 | |
|         Each connection uses 1.2KB static DRAM whenever the BT controller is enabled.
 | |
| 
 | |
| config BTDM_CTRL_BR_EDR_MAX_SYNC_CONN
 | |
|     int "BR/EDR Sync(SCO/eSCO) Max Connections"
 | |
|     depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 0
 | |
|     range 0 3
 | |
|     help
 | |
|         BR/EDR Synchronize maximum connections of bluetooth controller.
 | |
|         Each connection uses 2KB static DRAM whenever the BT controller is enabled.
 | |
| 
 | |
| 
 | |
| 
 | |
| choice BTDM_CTRL_BR_EDR_SCO_DATA_PATH
 | |
|     prompt "BR/EDR Sync(SCO/eSCO) default data path"
 | |
|     depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
 | |
|     help
 | |
|         SCO data path, i.e. HCI or PCM.
 | |
|         SCO data can be sent/received through HCI synchronous packets, or the data
 | |
|         can be routed to on-chip PCM module on ESP32. PCM input/output signals can
 | |
|         be "matrixed" to GPIOs. The default data path can also be set using API
 | |
|         "esp_bredr_sco_datapath_set"
 | |
| 
 | |
|     config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
 | |
|         bool "HCI"
 | |
|     config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
 | |
|         bool "PCM"
 | |
| endchoice
 | |
| 
 | |
| config BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF
 | |
|     int
 | |
|     default 0 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_HCI
 | |
|     default 1 if BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
 | |
|     default 0
 | |
| 
 | |
| menuconfig BTDM_CTRL_PCM_ROLE_EDGE_CONFIG
 | |
|     bool "PCM Signal Config (Role and Polar)"
 | |
|     depends on BTDM_CTRL_BR_EDR_SCO_DATA_PATH_PCM
 | |
|     default y
 | |
| 
 | |
| choice BTDM_CTRL_PCM_ROLE
 | |
|     prompt "PCM Role"
 | |
|     depends on BTDM_CTRL_PCM_ROLE_EDGE_CONFIG
 | |
|     help
 | |
|         PCM role can be configured as PCM master or PCM slave
 | |
| 
 | |
|     config BTDM_CTRL_PCM_ROLE_MASTER
 | |
|         bool "PCM Master"
 | |
|     config BTDM_CTRL_PCM_ROLE_SLAVE
 | |
|         bool "PCM Slave"
 | |
| endchoice
 | |
| 
 | |
| choice BTDM_CTRL_PCM_POLAR
 | |
|     prompt "PCM Polar"
 | |
|     depends on BTDM_CTRL_PCM_ROLE_EDGE_CONFIG
 | |
|     help
 | |
|         PCM polarity can be configured as Falling Edge or Rising Edge
 | |
| 
 | |
|     config BTDM_CTRL_PCM_POLAR_FALLING_EDGE
 | |
|         bool "Falling Edge"
 | |
|     config BTDM_CTRL_PCM_POLAR_RISING_EDGE
 | |
|         bool "Rising Edge"
 | |
| endchoice
 | |
| 
 | |
| config BTDM_CTRL_PCM_ROLE_EFF
 | |
|     int
 | |
|     default 0 if BTDM_CTRL_PCM_ROLE_MASTER
 | |
|     default 1 if BTDM_CTRL_PCM_ROLE_SLAVE
 | |
|     default 0
 | |
| 
 | |
| config BTDM_CTRL_PCM_POLAR_EFF
 | |
|     int
 | |
|     default 0 if BTDM_CTRL_PCM_POLAR_FALLING_EDGE
 | |
|     default 1 if BTDM_CTRL_PCM_POLAR_RISING_EDGE
 | |
|     default 0
 | |
| 
 | |
| config BTDM_CTRL_AUTO_LATENCY
 | |
|     bool "Auto latency"
 | |
|     depends on BTDM_CTRL_MODE_BTDM
 | |
|     default n
 | |
|     help
 | |
|         BLE auto latency, used to enhance classic BT performance
 | |
|         while classic BT and BLE are enabled at the same time.
 | |
| 
 | |
| config BTDM_CTRL_AUTO_LATENCY_EFF
 | |
|     bool
 | |
|     default BTDM_CTRL_AUTO_LATENCY if BTDM_CTRL_MODE_BTDM
 | |
|     default n
 | |
| 
 | |
| config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT
 | |
|     bool "Legacy Authentication Vendor Specific Event Enable"
 | |
|     depends on BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default y
 | |
|     help
 | |
|         To protect from BIAS attack during Legacy authentication,
 | |
|         Legacy authentication Vendor specific event should be enabled
 | |
| 
 | |
| config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF
 | |
|     bool
 | |
|     default BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT if BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 0
 | |
| 
 | |
| 
 | |
| config BTDM_CTRL_BLE_MAX_CONN_EFF
 | |
|     int
 | |
|     default BTDM_CTRL_BLE_MAX_CONN if BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 0
 | |
| 
 | |
| config BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF
 | |
|     int
 | |
|     default BTDM_CTRL_BR_EDR_MAX_ACL_CONN if BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 0
 | |
| 
 | |
| config BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF
 | |
|     int
 | |
|     default BTDM_CTRL_BR_EDR_MAX_SYNC_CONN if BTDM_CTRL_MODE_BR_EDR_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default 0
 | |
| 
 | |
| choice BTDM_CTRL_PINNED_TO_CORE_CHOICE
 | |
|     prompt "The cpu core which bluetooth controller run"
 | |
|     depends on BT_CTRL_ESP32 && !FREERTOS_UNICORE
 | |
|     help
 | |
|         Specify the cpu core to run bluetooth controller.
 | |
|         Can not specify no-affinity.
 | |
| 
 | |
|     config BTDM_CTRL_PINNED_TO_CORE_0
 | |
|         bool "Core 0 (PRO CPU)"
 | |
|     config BTDM_CTRL_PINNED_TO_CORE_1
 | |
|         bool "Core 1 (APP CPU)"
 | |
|         depends on !FREERTOS_UNICORE
 | |
| endchoice
 | |
| 
 | |
| config BTDM_CTRL_PINNED_TO_CORE
 | |
|     int
 | |
|     default 0 if BTDM_CTRL_PINNED_TO_CORE_0
 | |
|     default 1 if BTDM_CTRL_PINNED_TO_CORE_1
 | |
|     default 0
 | |
| 
 | |
| choice BTDM_CTRL_HCI_MODE_CHOICE
 | |
|     prompt "HCI mode"
 | |
|     depends on BT_CTRL_ESP32
 | |
|     help
 | |
|         Speicify HCI mode as VHCI or UART(H4)
 | |
| 
 | |
|     config BTDM_CTRL_HCI_MODE_VHCI
 | |
|         bool "VHCI"
 | |
|         help
 | |
|             Normal option. Mostly, choose this VHCI when bluetooth host run on ESP32, too.
 | |
| 
 | |
|     config BTDM_CTRL_HCI_MODE_UART_H4
 | |
|         bool "UART(H4)"
 | |
|         help
 | |
|             If use external bluetooth host which run on other hardware and use UART as the HCI interface,
 | |
|             choose this option.
 | |
| endchoice
 | |
| 
 | |
| menu "HCI UART(H4) Options"
 | |
|     visible if BTDM_CTRL_HCI_MODE_UART_H4
 | |
| 
 | |
|     config BTDM_CTRL_HCI_UART_NO
 | |
|         int "UART Number for HCI"
 | |
|         depends on BTDM_CTRL_HCI_MODE_UART_H4
 | |
|         range 1 2
 | |
|         default 1
 | |
|         help
 | |
|             Uart number for HCI. The available uart is UART1 and UART2.
 | |
| 
 | |
|     config BTDM_CTRL_HCI_UART_BAUDRATE
 | |
|         int "UART Baudrate for HCI"
 | |
|         depends on BTDM_CTRL_HCI_MODE_UART_H4
 | |
|         range 115200 921600
 | |
|         default 921600
 | |
|         help
 | |
|             UART Baudrate for HCI. Please use standard baudrate.
 | |
| 
 | |
| endmenu
 | |
| 
 | |
| menu "MODEM SLEEP Options"
 | |
|     visible if BT_CTRL_ESP32
 | |
| 
 | |
|     config BTDM_CTRL_MODEM_SLEEP
 | |
|         bool "Bluetooth modem sleep"
 | |
|         depends on BT_CTRL_ESP32
 | |
|         default y
 | |
|         help
 | |
|             Enable/disable bluetooth controller low power mode.
 | |
| 
 | |
|     choice BTDM_CTRL_MODEM_SLEEP_MODE
 | |
|         prompt "Bluetooth Modem sleep mode"
 | |
|         depends on BTDM_CTRL_MODEM_SLEEP
 | |
|         help
 | |
|             To select which strategy to use for modem sleep
 | |
| 
 | |
|         config BTDM_CTRL_MODEM_SLEEP_MODE_ORIG
 | |
|             bool "ORIG Mode(sleep with low power clock)"
 | |
|             help
 | |
|                 ORIG mode is a bluetooth sleep mode that can be used for dual mode controller. In this mode,
 | |
|                 bluetooth controller sleeps between BR/EDR frames and BLE events. A low power clock is used to
 | |
|                 maintain bluetooth reference clock.
 | |
| 
 | |
|         config BTDM_CTRL_MODEM_SLEEP_MODE_EVED
 | |
|             bool "EVED Mode(For internal test only)"
 | |
|             help
 | |
|                 EVED mode is for BLE only and is only for internal test. Do not use it for production. this
 | |
|                 mode is not compatible with DFS nor light sleep
 | |
|     endchoice
 | |
| 
 | |
|     choice BTDM_CTRL_LOW_POWER_CLOCK
 | |
|         prompt "Bluetooth low power clock"
 | |
|         depends on BTDM_CTRL_MODEM_SLEEP_MODE_ORIG
 | |
|         help
 | |
|             Select the low power clock source for bluetooth controller. Bluetooth low power clock is
 | |
|             the clock source to maintain time in sleep mode.
 | |
| 
 | |
|             - "Main crystal" option provides good accuracy and can support Dynamic Frequency Scaling
 | |
|               to be used with Bluetooth modem sleep. Light sleep is not supported.
 | |
|             - "External 32kHz crystal" option allows user to use a 32.768kHz crystal as Bluetooth low
 | |
|               power clock. This option is allowed as long as External 32kHz crystal is configured as
 | |
|               the system RTC clock source. This option provides good accuracy and supports Bluetooth
 | |
|               modem sleep to be used alongside Dynamic Frequency Scaling or light sleep.
 | |
| 
 | |
|         config BTDM_CTRL_LPCLK_SEL_MAIN_XTAL
 | |
|             bool "Main crystal"
 | |
|             help
 | |
|                 Main crystal can be used as low power clock for bluetooth modem sleep. If this option is
 | |
|                 selected, bluetooth modem sleep can work under Dynamic Frequency Scaling(DFS) enabled, but
 | |
|                 cannot work when light sleep is enabled. Main crystal has a good performance in accuracy as
 | |
|                 the bluetooth low power clock source.
 | |
| 
 | |
|         config BTDM_CTRL_LPCLK_SEL_EXT_32K_XTAL
 | |
|             bool "External 32kHz crystal"
 | |
|             depends on ESP32_RTC_CLK_SRC_EXT_CRYS
 | |
|             help
 | |
|                 External 32kHz crystal has a nominal frequency of 32.768kHz and provides good frequency
 | |
|                 stability. If used as Bluetooth low power clock, External 32kHz can support Bluetooth
 | |
|                 modem sleep to be used with both DFS and light sleep.
 | |
|     endchoice
 | |
| 
 | |
| endmenu
 | |
| 
 | |
| choice BTDM_BLE_SLEEP_CLOCK_ACCURACY
 | |
|     prompt "BLE Sleep Clock Accuracy"
 | |
|     depends on BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default BTDM_BLE_DEFAULT_SCA_250PPM
 | |
|     help
 | |
|         BLE Sleep Clock Accuracy(SCA) for the local device is used to estimate window widening in BLE
 | |
|         connection events. With a lower level of clock accuracy(e.g. 500ppm over 250ppm), the slave
 | |
|         needs a larger RX window to synchronize with master in each anchor point, thus resulting in an
 | |
|         increase of power consumption but a higher level of robustness in keeping connected. According
 | |
|         to the requirements of Bluetooth Core specification 4.2, the worst-case accuracy of Classic
 | |
|         Bluetooth low power oscialltor(LPO) is +/-250ppm in STANDBY and in low power modes such as
 | |
|         sniff. For BLE the worst-case SCA is +/-500ppm.
 | |
| 
 | |
|         - "151ppm to 250ppm" option is the default value for Bluetooth Dual mode
 | |
|         - "251ppm to 500ppm" option can be used in BLE only mode when using external 32kHz crystal as
 | |
|            low power clock. This option is provided in case that BLE sleep clock has a lower level of
 | |
|            accuracy, or other error sources contribute to the inaccurate timing during sleep.
 | |
| 
 | |
|     config BTDM_BLE_DEFAULT_SCA_500PPM
 | |
|         bool "251ppm to 500ppm"
 | |
|         depends on BTDM_CTRL_LPCLK_SEL_EXT_32K_XTAL && BTDM_CTRL_MODE_BLE_ONLY
 | |
|     config BTDM_BLE_DEFAULT_SCA_250PPM
 | |
|         bool "151ppm to 250ppm"
 | |
| endchoice
 | |
| config BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF
 | |
|     int
 | |
|     default 0 if BTDM_BLE_DEFAULT_SCA_500PPM
 | |
|     default 1 if BTDM_BLE_DEFAULT_SCA_250PPM
 | |
|     default 1
 | |
| 
 | |
| config BTDM_BLE_SCAN_DUPL
 | |
|     bool "BLE Scan Duplicate Options"
 | |
|     depends on (BTDM_CTRL_MODE_BTDM || BTDM_CTRL_MODE_BLE_ONLY)
 | |
|     default y
 | |
|     help
 | |
|         This select enables parameters setting of BLE scan duplicate.
 | |
| 
 | |
| choice BTDM_SCAN_DUPL_TYPE
 | |
|     prompt "Scan Duplicate Type"
 | |
|     default BTDM_SCAN_DUPL_TYPE_DEVICE
 | |
|     depends on BTDM_BLE_SCAN_DUPL
 | |
|     help
 | |
|         Scan duplicate have three ways. one is "Scan Duplicate By Device Address", This way is to use
 | |
|         advertiser address filtering. The adv packet of the same address is only allowed to be reported once.
 | |
|         Another way is "Scan Duplicate By Device Address And Advertising Data". This way is to use advertising
 | |
|         data and device address filtering. All different adv packets with the same address are allowed to be
 | |
|         reported. The last way is "Scan Duplicate By Advertising Data". This way is to use advertising data
 | |
|         filtering. All same advertising data only allow to be reported once even though they are from
 | |
|         different devices.
 | |
| 
 | |
|     config BTDM_SCAN_DUPL_TYPE_DEVICE
 | |
|         bool "Scan Duplicate By Device Address"
 | |
|         help
 | |
|             This way is to use advertiser address filtering. The adv packet of the same address is only
 | |
|             allowed to be reported once
 | |
| 
 | |
|     config BTDM_SCAN_DUPL_TYPE_DATA
 | |
|         bool "Scan Duplicate By Advertising Data"
 | |
|         help
 | |
|             This way is to use advertising data filtering. All same advertising data only allow to be reported
 | |
|             once even though they are from different devices.
 | |
| 
 | |
|     config BTDM_SCAN_DUPL_TYPE_DATA_DEVICE
 | |
|         bool "Scan Duplicate By Device Address And Advertising Data"
 | |
|         help
 | |
|             This way is to use advertising data and device address filtering. All different adv packets with
 | |
|             the same address are allowed to be reported.
 | |
| endchoice
 | |
| 
 | |
| config BTDM_SCAN_DUPL_TYPE
 | |
|     int
 | |
|     depends on BTDM_BLE_SCAN_DUPL
 | |
|     default 0 if BTDM_SCAN_DUPL_TYPE_DEVICE
 | |
|     default 1 if BTDM_SCAN_DUPL_TYPE_DATA
 | |
|     default 2 if BTDM_SCAN_DUPL_TYPE_DATA_DEVICE
 | |
|     default 0
 | |
| 
 | |
| config BTDM_SCAN_DUPL_CACHE_SIZE
 | |
|     int "Maximum number of devices in scan duplicate filter"
 | |
|     depends on BTDM_BLE_SCAN_DUPL
 | |
|     range 10 1000
 | |
|     default 200
 | |
|     help
 | |
|         Maximum number of devices which can be recorded in scan duplicate filter.
 | |
|         When the maximum amount of device in the filter is reached, the cache will be refreshed.
 | |
| 
 | |
| config BTDM_BLE_MESH_SCAN_DUPL_EN
 | |
|     bool "Special duplicate scan mechanism for BLE Mesh scan"
 | |
|     depends on BTDM_BLE_SCAN_DUPL
 | |
|     default n
 | |
|     help
 | |
|         This enables the BLE scan duplicate for special BLE Mesh scan.
 | |
| 
 | |
| config BTDM_MESH_DUPL_SCAN_CACHE_SIZE
 | |
|     int "Maximum number of Mesh adv packets in scan duplicate filter"
 | |
|     depends on BTDM_BLE_MESH_SCAN_DUPL_EN
 | |
|     range 10 1000
 | |
|     default 200
 | |
|     help
 | |
|         Maximum number of adv packets which can be recorded in duplicate scan cache for BLE Mesh.
 | |
|         When the maximum amount of device in the filter is reached, the cache will be refreshed.
 | |
| 
 | |
| config BTDM_CTRL_FULL_SCAN_SUPPORTED
 | |
|     bool "BLE full scan feature supported"
 | |
|     depends on BTDM_CTRL_MODE_BLE_ONLY || BTDM_CTRL_MODE_BTDM
 | |
|     default y
 | |
|     help
 | |
|         The full scan function is mainly used to provide BLE scan performance.
 | |
|         This is required for scenes with high scan performance requirements, such as BLE Mesh scenes.
 | |
| 
 | |
| config BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
 | |
|     bool "BLE adv report flow control supported"
 | |
|     depends on (BTDM_CTRL_MODE_BTDM || BTDM_CTRL_MODE_BLE_ONLY)
 | |
|     default y
 | |
|     help
 | |
|         The function is mainly used to enable flow control for advertising reports. When it is enabled,
 | |
|         advertising reports will be discarded by the controller if the number of unprocessed advertising
 | |
|         reports exceeds the size of BLE adv report flow control.
 | |
| 
 | |
| config BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM
 | |
|     int "BLE adv report flow control number"
 | |
|     depends on BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
 | |
|     range 50 1000
 | |
|     default 100
 | |
|     help
 | |
|         The number of unprocessed advertising report that Bluedroid can save.If you set
 | |
|         `BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a small value, this may cause adv packets lost.
 | |
|         If you set `BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a large value, Bluedroid may cache a
 | |
|         lot of adv packets and this may cause system memory run out. For example, if you set
 | |
|         it to 50, the maximum memory consumed by host is 35 * 50 bytes. Please set
 | |
|         `BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM` according to your system free memory and handle adv
 | |
|         packets as fast as possible, otherwise it will cause adv packets lost.
 | |
| 
 | |
| config BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD
 | |
|     int "BLE adv lost event threshold value"
 | |
|     depends on BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP
 | |
|     range 1 1000
 | |
|     default 20
 | |
|     help
 | |
|         When adv report flow control is enabled, The ADV lost event will be generated when the number
 | |
|         of ADV packets lost in the controller reaches this threshold. It is better to set a larger value.
 | |
|         If you set `BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
 | |
|         may cause adv packets lost more.
 |