mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
571 lines
18 KiB
Plaintext
571 lines
18 KiB
Plaintext
|
|
menu "HCI Config"
|
|
|
|
choice BT_LE_HCI_INTERFACE
|
|
prompt "Select HCI interface"
|
|
default BT_LE_HCI_INTERFACE_USE_RAM
|
|
|
|
config BT_LE_HCI_INTERFACE_USE_RAM
|
|
bool "ram"
|
|
help
|
|
Use RAM as HCI interface
|
|
config BT_LE_HCI_INTERFACE_USE_UART
|
|
bool "uart"
|
|
help
|
|
Use UART as HCI interface
|
|
endchoice
|
|
|
|
config BT_LE_HCI_UART_PORT
|
|
int "HCI UART port"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default 1
|
|
help
|
|
Set the port number of HCI UART
|
|
|
|
config BT_LE_HCI_UART_FLOWCTRL
|
|
bool "HCI uart Hardware Flow ctrl"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default n
|
|
|
|
config BT_LE_HCI_UART_TX_PIN
|
|
int "HCI uart Tx gpio"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default 19
|
|
|
|
config BT_LE_HCI_UART_RX_PIN
|
|
int "HCI uart Rx gpio"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default 10
|
|
|
|
config BT_LE_HCI_UART_RTS_PIN
|
|
int "HCI uart RTS gpio"
|
|
depends on BT_LE_HCI_UART_FLOWCTRL
|
|
default 4
|
|
|
|
config BT_LE_HCI_UART_CTS_PIN
|
|
int "HCI uart CTS gpio"
|
|
depends on BT_LE_HCI_UART_FLOWCTRL
|
|
default 5
|
|
|
|
config BT_LE_HCI_UART_BAUD
|
|
int "HCI uart baudrate"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default 921600
|
|
help
|
|
HCI uart baud rate 115200 ~ 1000000
|
|
|
|
choice BT_LE_HCI_UART_PARITY
|
|
prompt "select uart parity"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default BT_LE_HCI_UART_UART_PARITY_DISABLE
|
|
|
|
config BT_LE_HCI_UART_UART_PARITY_DISABLE
|
|
bool "PARITY_DISABLE"
|
|
help
|
|
UART_PARITY_DISABLE
|
|
config BT_LE_HCI_UART_UART_PARITY_EVEN
|
|
bool "PARITY_EVEN"
|
|
help
|
|
UART_PARITY_EVEN
|
|
config BT_LE_HCI_UART_UART_PARITY_ODD
|
|
bool "PARITY_ODD"
|
|
help
|
|
UART_PARITY_ODD
|
|
endchoice
|
|
|
|
config BT_LE_HCI_UART_TASK_STACK_SIZE
|
|
int "HCI uart task stack size"
|
|
depends on BT_LE_HCI_INTERFACE_USE_UART
|
|
default 1000
|
|
help
|
|
Set the size of uart task stack
|
|
endmenu
|
|
|
|
config BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT
|
|
bool
|
|
default y
|
|
help
|
|
Enable NPL porting for controller.
|
|
|
|
|
|
menuconfig BT_LE_50_FEATURE_SUPPORT
|
|
bool "Enable BLE 5 feature"
|
|
depends on !BT_NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable BLE 5 feature
|
|
|
|
config BT_LE_LL_CFG_FEAT_LE_2M_PHY
|
|
bool "Enable 2M Phy"
|
|
depends on BT_LE_50_FEATURE_SUPPORT
|
|
default y
|
|
help
|
|
Enable 2M-PHY
|
|
|
|
config BT_LE_LL_CFG_FEAT_LE_CODED_PHY
|
|
bool "Enable coded Phy"
|
|
depends on BT_LE_50_FEATURE_SUPPORT
|
|
default y
|
|
help
|
|
Enable coded-PHY
|
|
|
|
config BT_LE_EXT_ADV
|
|
bool "Enable extended advertising"
|
|
depends on BT_LE_50_FEATURE_SUPPORT
|
|
default y
|
|
help
|
|
Enable this option to do extended advertising. Extended advertising
|
|
will be supported from BLE 5.0 onwards.
|
|
|
|
if BT_LE_EXT_ADV
|
|
config BT_LE_MAX_EXT_ADV_INSTANCES
|
|
int "Maximum number of extended advertising instances."
|
|
range 0 4
|
|
default 1
|
|
depends on BT_LE_EXT_ADV
|
|
help
|
|
Change this option to set maximum number of extended advertising
|
|
instances. Minimum there is always one instance of
|
|
advertising. Enter how many more advertising instances you
|
|
want.
|
|
Each extended advertising instance will take about 0.5k DRAM.
|
|
|
|
config BT_LE_EXT_ADV_MAX_SIZE
|
|
int "Maximum length of the advertising data."
|
|
range 0 1650
|
|
default 1650
|
|
depends on BT_LE_EXT_ADV
|
|
help
|
|
Defines the length of the extended adv data. The value should not
|
|
exceed 1650.
|
|
|
|
config BT_LE_ENABLE_PERIODIC_ADV
|
|
bool "Enable periodic advertisement."
|
|
default y
|
|
depends on BT_LE_EXT_ADV
|
|
help
|
|
Enable this option to start periodic advertisement.
|
|
|
|
config BT_LE_PERIODIC_ADV_SYNC_TRANSFER
|
|
bool "Enable Transfer Sync Events"
|
|
depends on BT_LE_ENABLE_PERIODIC_ADV
|
|
default y
|
|
help
|
|
This enables controller transfer periodic sync events to host
|
|
|
|
endif
|
|
|
|
config BT_LE_MAX_PERIODIC_SYNCS
|
|
int "Maximum number of periodic advertising syncs"
|
|
depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED
|
|
|
|
range 0 8
|
|
default 1 if BT_LE_ENABLE_PERIODIC_ADV
|
|
default 0
|
|
help
|
|
Set this option to set the upper limit for number of periodic sync
|
|
connections. This should be less than maximum connections allowed by
|
|
controller.
|
|
|
|
config BT_LE_MAX_PERIODIC_ADVERTISER_LIST
|
|
int "Maximum number of periodic advertiser list"
|
|
depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED
|
|
range 1 5
|
|
default 5
|
|
help
|
|
Set this option to set the upper limit for number of periodic advertiser list.
|
|
|
|
config BT_LE_POWER_CONTROL_ENABLED
|
|
bool "Enable controller support for BLE Power Control"
|
|
depends on BT_LE_50_FEATURE_SUPPORT && !BT_NIMBLE_ENABLED
|
|
default n
|
|
help
|
|
Set this option to enable the Power Control feature on controller
|
|
|
|
menu "Memory Settings"
|
|
depends on !BT_NIMBLE_ENABLED
|
|
|
|
config BT_LE_MSYS_1_BLOCK_COUNT
|
|
int "MSYS_1 Block Count"
|
|
default 12
|
|
help
|
|
MSYS is a system level mbuf registry. For prepare write & prepare
|
|
responses MBUFs are allocated out of msys_1 pool. For NIMBLE_MESH
|
|
enabled cases, this block count is increased by 8 than user defined
|
|
count.
|
|
|
|
config BT_LE_MSYS_1_BLOCK_SIZE
|
|
int "MSYS_1 Block Size"
|
|
default 256
|
|
help
|
|
Dynamic memory size of block 1
|
|
|
|
config BT_LE_MSYS_2_BLOCK_COUNT
|
|
int "MSYS_2 Block Count"
|
|
default 24
|
|
help
|
|
Dynamic memory count
|
|
|
|
config BT_LE_MSYS_2_BLOCK_SIZE
|
|
int "MSYS_2 Block Size"
|
|
default 320
|
|
help
|
|
Dynamic memory size of block 2
|
|
|
|
config BT_LE_ACL_BUF_COUNT
|
|
int "ACL Buffer count"
|
|
default 10
|
|
help
|
|
The number of ACL data buffers.
|
|
|
|
config BT_LE_ACL_BUF_SIZE
|
|
int "ACL Buffer size"
|
|
default 517
|
|
help
|
|
This is the maximum size of the data portion of HCI ACL data packets.
|
|
It does not include the HCI data header (of 4 bytes)
|
|
|
|
config BT_LE_HCI_EVT_BUF_SIZE
|
|
int "HCI Event Buffer size"
|
|
default 257 if BT_LE_EXT_ADV
|
|
default 70
|
|
help
|
|
This is the size of each HCI event buffer in bytes. In case of
|
|
extended advertising, packets can be fragmented. 257 bytes is the
|
|
maximum size of a packet.
|
|
|
|
config BT_LE_HCI_EVT_HI_BUF_COUNT
|
|
int "High Priority HCI Event Buffer count"
|
|
default 30
|
|
help
|
|
This is the high priority HCI events' buffer size. High-priority
|
|
event buffers are for everything except advertising reports. If there
|
|
are no free high-priority event buffers then host will try to allocate a
|
|
low-priority buffer instead
|
|
|
|
config BT_LE_HCI_EVT_LO_BUF_COUNT
|
|
int "Low Priority HCI Event Buffer count"
|
|
default 8
|
|
help
|
|
This is the low priority HCI events' buffer size. Low-priority event
|
|
buffers are only used for advertising reports. If there are no free
|
|
low-priority event buffers, then an incoming advertising report will
|
|
get dropped
|
|
endmenu
|
|
|
|
config BT_LE_CONTROLLER_TASK_STACK_SIZE
|
|
int "Controller task stack size"
|
|
default 5120 if BLE_MESH
|
|
default 4096
|
|
help
|
|
This configures stack size of NimBLE controller task
|
|
|
|
menuconfig BT_LE_CONTROLLER_LOG_ENABLED
|
|
bool "Controller log enable"
|
|
default n
|
|
help
|
|
Enable controller log
|
|
|
|
config BT_LE_CONTROLLER_LOG_CTRL_ENABLED
|
|
bool "enable controller log module"
|
|
depends on BT_LE_CONTROLLER_LOG_ENABLED
|
|
default y
|
|
help
|
|
Enable controller log module
|
|
|
|
config BT_LE_CONTROLLER_LOG_HCI_ENABLED
|
|
bool "enable HCI log module"
|
|
depends on BT_LE_CONTROLLER_LOG_ENABLED
|
|
default y
|
|
help
|
|
Enable hci log module
|
|
|
|
config BT_LE_CONTROLLER_LOG_DUMP_ONLY
|
|
bool "Controller log dump mode only"
|
|
depends on BT_LE_CONTROLLER_LOG_ENABLED
|
|
default y
|
|
help
|
|
Only operate in dump mode
|
|
|
|
config BT_LE_LOG_CTRL_BUF1_SIZE
|
|
int "size of the first BLE controller LOG buffer"
|
|
depends on BT_LE_CONTROLLER_LOG_ENABLED
|
|
default 4096
|
|
help
|
|
Configure the size of the first BLE controller LOG buffer.
|
|
|
|
config BT_LE_LOG_CTRL_BUF2_SIZE
|
|
int "size of the second BLE controller LOG buffer"
|
|
depends on BT_LE_CONTROLLER_LOG_ENABLED
|
|
default 1024
|
|
help
|
|
Configure the size of the second BLE controller LOG buffer.
|
|
|
|
config BT_LE_LOG_HCI_BUF_SIZE
|
|
int "size of the BLE HCI LOG buffer"
|
|
depends on BT_LE_CONTROLLER_LOG_ENABLED
|
|
default 4096
|
|
help
|
|
Configure the size of the BLE HCI LOG buffer.
|
|
|
|
config BT_LE_LL_RESOLV_LIST_SIZE
|
|
int "BLE LL Resolving list size"
|
|
range 1 5
|
|
default 4
|
|
help
|
|
Configure the size of resolving list used in link layer.
|
|
|
|
menuconfig BT_LE_SECURITY_ENABLE
|
|
bool "Enable BLE SM feature"
|
|
depends on !BT_NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Enable BLE sm feature
|
|
|
|
config BT_LE_SM_LEGACY
|
|
bool "Security manager legacy pairing"
|
|
depends on BT_LE_SECURITY_ENABLE
|
|
default y
|
|
help
|
|
Enable security manager legacy pairing
|
|
|
|
config BT_LE_SM_SC
|
|
bool "Security manager secure connections (4.2)"
|
|
depends on BT_LE_SECURITY_ENABLE
|
|
default y
|
|
help
|
|
Enable security manager secure connections
|
|
|
|
config BT_LE_SM_SC_DEBUG_KEYS
|
|
bool "Use predefined public-private key pair"
|
|
default n
|
|
depends on BT_LE_SECURITY_ENABLE && BT_LE_SM_SC
|
|
help
|
|
If this option is enabled, SM uses predefined DH key pair as described
|
|
in Core Specification, Vol. 3, Part H, 2.3.5.6.1. This allows to
|
|
decrypt air traffic easily and thus should only be used for debugging.
|
|
|
|
config BT_LE_LL_CFG_FEAT_LE_ENCRYPTION
|
|
bool "Enable LE encryption"
|
|
depends on BT_LE_SECURITY_ENABLE
|
|
default y
|
|
help
|
|
Enable encryption connection
|
|
|
|
config BT_LE_CRYPTO_STACK_MBEDTLS
|
|
bool "Override TinyCrypt with mbedTLS for crypto computations"
|
|
default y
|
|
depends on !BT_NIMBLE_ENABLED
|
|
select MBEDTLS_ECP_RESTARTABLE
|
|
select MBEDTLS_CMAC_C
|
|
help
|
|
Enable this option to choose mbedTLS instead of TinyCrypt for crypto
|
|
computations.
|
|
|
|
config BT_LE_WHITELIST_SIZE
|
|
int "BLE white list size"
|
|
range 1 15
|
|
default 12
|
|
depends on !BT_NIMBLE_ENABLED
|
|
|
|
help
|
|
BLE list size
|
|
|
|
config BT_LE_LL_DUP_SCAN_LIST_COUNT
|
|
int "BLE duplicate scan list count"
|
|
range 5 100
|
|
default 20
|
|
help
|
|
config the max count of duplicate scan list
|
|
|
|
config BT_LE_LL_SCA
|
|
int "BLE Sleep clock accuracy"
|
|
range 0 500
|
|
default 60
|
|
help
|
|
Sleep clock accuracy of our device (in ppm)
|
|
|
|
config BT_LE_MAX_CONNECTIONS
|
|
int "Maximum number of concurrent connections"
|
|
depends on !BT_NIMBLE_ENABLED
|
|
range 1 35
|
|
default 3
|
|
help
|
|
Defines maximum number of concurrent BLE connections. For ESP32, user
|
|
is expected to configure BTDM_CTRL_BLE_MAX_CONN from controller menu
|
|
along with this option. Similarly for ESP32-C3 or ESP32-S3, user is expected to
|
|
configure BT_CTRL_BLE_MAX_ACT from controller menu.
|
|
Each connection will take about 1k DRAM.
|
|
|
|
choice BT_LE_COEX_PHY_CODED_TX_RX_TLIM
|
|
prompt "Coexistence: limit on MAX Tx/Rx time for coded-PHY connection"
|
|
default BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
|
|
depends on ESP_COEX_SW_COEXIST_ENABLE
|
|
help
|
|
When using PHY-Coded in BLE connection, limitation on max tx/rx time can be applied to
|
|
better avoid dramatic performance deterioration of Wi-Fi.
|
|
|
|
config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN
|
|
bool "Force Enable"
|
|
help
|
|
Always enable the limitation on max tx/rx time for Coded-PHY connection
|
|
|
|
config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
|
|
bool "Force Disable"
|
|
help
|
|
Disable the limitation on max tx/rx time for Coded-PHY connection
|
|
endchoice
|
|
|
|
config BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF
|
|
int
|
|
default 0 if !ESP_COEX_SW_COEXIST_ENABLE
|
|
default 1 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN
|
|
default 0 if BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS
|
|
|
|
config BT_LE_SLEEP_ENABLE
|
|
bool "Enable BLE sleep"
|
|
default n
|
|
help
|
|
Enable BLE sleep
|
|
|
|
choice BT_LE_LP_CLK_SRC
|
|
prompt "BLE low power clock source"
|
|
default BT_LE_LP_CLK_SRC_MAIN_XTAL
|
|
config BT_LE_LP_CLK_SRC_MAIN_XTAL
|
|
bool "Use main XTAL as RTC clock source"
|
|
help
|
|
User main XTAL as RTC clock source.
|
|
This option is recommended if external 32.768k XTAL is not available.
|
|
Using the external 32.768 kHz XTAL will have lower current consumption
|
|
in light sleep compared to using the main XTAL.
|
|
|
|
config BT_LE_LP_CLK_SRC_DEFAULT
|
|
bool "Use system RTC slow clock source"
|
|
help
|
|
Use the same slow clock source as system RTC
|
|
Using any clock source other than external 32.768 kHz XTAL supports only
|
|
legacy ADV and SCAN due to low clock accuracy.
|
|
|
|
endchoice
|
|
|
|
config BT_LE_USE_ESP_TIMER
|
|
bool "Enable Esp Timer for Callout"
|
|
depends on !BT_NIMBLE_ENABLED
|
|
default y
|
|
help
|
|
Set this option to use Esp Timer which has higher priority timer
|
|
instead of FreeRTOS timer
|
|
|
|
config BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
|
|
bool "BLE adv report flow control supported"
|
|
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 BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM
|
|
int "BLE adv report flow control number"
|
|
depends on BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP
|
|
range 50 1000
|
|
default 100
|
|
help
|
|
The number of unprocessed advertising report that bluetooth host can save.If you set
|
|
`BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a small value, this may cause adv packets lost.
|
|
If you set `BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM` to a large value, bluetooth host 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
|
|
`BT_CTRL_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 BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD
|
|
int "BLE adv lost event threshold value"
|
|
depends on BT_CTRL_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 `BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD` to a small value or printf every adv lost event, it
|
|
may cause adv packets lost more.
|
|
|
|
config BT_LE_SCAN_DUPL
|
|
bool "BLE Scan Duplicate Options"
|
|
default y
|
|
help
|
|
This select enables parameters setting of BLE scan duplicate.
|
|
|
|
choice BT_LE_SCAN_DUPL_TYPE
|
|
prompt "Scan Duplicate Type"
|
|
default BT_LE_SCAN_DUPL_TYPE_DEVICE
|
|
depends on BT_LE_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 BT_LE_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 BT_LE_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 BT_LE_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 BT_LE_SCAN_DUPL_TYPE
|
|
int
|
|
depends on BT_LE_SCAN_DUPL
|
|
default 0 if BT_LE_SCAN_DUPL_TYPE_DEVICE
|
|
default 1 if BT_LE_SCAN_DUPL_TYPE_DATA
|
|
default 2 if BT_LE_SCAN_DUPL_TYPE_DATA_DEVICE
|
|
default 0
|
|
|
|
config BT_LE_SCAN_DUPL_CACHE_REFRESH_PERIOD
|
|
int "Duplicate scan list refresh period (seconds)"
|
|
depends on BT_LE_SCAN_DUPL
|
|
range 0 1000
|
|
default 0
|
|
help
|
|
If the period value is non-zero, the controller will periodically clear the device information
|
|
stored in the scan duuplicate filter. If it is 0, the scan duuplicate filter will not be cleared
|
|
until the scanning is disabled. Duplicate advertisements for this period should not be sent to the
|
|
Host in advertising report events.
|
|
There are two scenarios where the ADV packet will be repeatedly reported:
|
|
1. The duplicate scan cache is full, the controller will delete the oldest device information and
|
|
add new device information.
|
|
2. When the refresh period is up, the controller will clear all device information and start filtering
|
|
again.
|
|
|
|
config BT_LE_MSYS_INIT_IN_CONTROLLER
|
|
bool
|
|
default y
|
|
|
|
config BT_LE_TX_CCA_ENABLED
|
|
bool "Enable TX CCA feature"
|
|
default n
|
|
help
|
|
Enable CCA feature to cancel sending the packet if the signal power is stronger than CCA threshold.
|
|
|
|
config BT_LE_CCA_RSSI_THRESH
|
|
int "CCA RSSI threshold value"
|
|
depends on BT_LE_TX_CCA_ENABLED
|
|
range 20 100
|
|
default 20
|
|
help
|
|
Power threshold of CCA in unit of -1 dBm.
|