336 lines
12 KiB
Plaintext
336 lines
12 KiB
Plaintext
# Zephyr Bluetooth Controller configuration options
|
|
|
|
# Copyright (c) 2020 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# BT_CTLR_DF_SUPPORT is a wrapper for all DF features. It is referenced by Host
|
|
# to enable its DF related Kconfigs when build together with the Controller.
|
|
# It is required to enable it when Controller supports any DF related feature
|
|
# but particular features are selected individually.
|
|
config BT_CTLR_DF_SUPPORT
|
|
bool
|
|
|
|
if BT_CTLR_DF_SUPPORT
|
|
|
|
config BT_CTLR_DF_CTE_TX_SUPPORT
|
|
bool
|
|
|
|
config BT_CTLR_DF_CTE_RX_SUPPORT
|
|
bool
|
|
|
|
config BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT
|
|
bool
|
|
|
|
config BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
|
|
bool
|
|
|
|
config BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
|
|
bool
|
|
|
|
config BT_CTLR_CTEINLINE_SUPPORT
|
|
bool
|
|
|
|
endif # BT_CTLR_DF_SUPPORT
|
|
|
|
menuconfig BT_CTLR_DF
|
|
bool "LE Direction Finding"
|
|
depends on BT_CTLR_DF_CTE_TX_SUPPORT || BT_CTLR_DF_CTE_RX_SUPPORT
|
|
help
|
|
Enable support for Bluetooth 5.1 Direction Finding
|
|
|
|
if BT_CTLR_DF
|
|
|
|
# Basic controller functionalities required for implementation of
|
|
# Bluetooth v5.1 Direction Finding
|
|
|
|
config BT_CTLR_DF_CTE_TX
|
|
bool "Transmission of Constant Tone Extension"
|
|
depends on BT_CTLR_DF_CTE_TX_SUPPORT
|
|
default y
|
|
help
|
|
Enable support for transmission of Constant Tone Extension in
|
|
controller.
|
|
|
|
config BT_CTLR_DF_CTE_RX_SAMPLE_1US
|
|
bool "Reception of CTE with 1us sampling slots"
|
|
depends on BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT
|
|
default y
|
|
help
|
|
Enable reception of Constant Tone Extension. Process IQ sampling
|
|
during CTE reception with 1us sampling slots.
|
|
This sampling mode is optional for Direction Finding according to
|
|
Bluetooth v5.1.
|
|
|
|
config BT_CTLR_DF_ANT_SWITCH_1US
|
|
bool "Support for 1us antenna switch slots"
|
|
depends on BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
|
|
default y
|
|
help
|
|
Enable support for 1us antenna switching slots. This antenna switching
|
|
mode is optional for Direction Finding according to Bluetooth v5.1.
|
|
|
|
# Features related with Direction Finding
|
|
# BT Core spec 5.1, Vol 6, Part B, sec. 4.6 Feature Support
|
|
|
|
config BT_CTLR_DF_ANT_SWITCH_TX
|
|
bool "Antenna switching during CTE transmission (AoD) feature"
|
|
depends on BT_CTLR_DF_CTE_TX && BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
|
|
default y
|
|
help
|
|
Enable support for antenna switching during CTE transmission.
|
|
Also known as Angle of Departure mode.
|
|
|
|
config BT_CTLR_DF_ANT_SWITCH_RX
|
|
bool "Antenna switching during CTE reception (AoA) feature"
|
|
depends on BT_CTLR_DF_CTE_RX && BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
|
|
default y
|
|
help
|
|
Enable support for antenna switching during CTE reception.
|
|
Also known as Angle of Arrival mode.
|
|
|
|
config BT_CTLR_DF_CTE_RX
|
|
bool "Reception of Constant Tone Extension feature"
|
|
depends on BT_CTLR_DF_CTE_RX_SUPPORT
|
|
select BT_CTLR_CONN_RSSI if BT_CONN
|
|
default y
|
|
help
|
|
Enable support for reception of Constant Tone Extension in controller.
|
|
|
|
config BT_CTLR_DF_CONN_CTE_REQ
|
|
bool "Connection CTE Request feature"
|
|
depends on BT_CTLR_DF_CONN_CTE_RX
|
|
help
|
|
Enable support for Bluetooth v5.1 Connection CTE Request feature
|
|
in controller.
|
|
|
|
config BT_CTLR_DF_CONN_CTE_RSP
|
|
bool "Connection CTE Response feature"
|
|
depends on BT_CTLR_DF_CONN_CTE_TX
|
|
help
|
|
Enable support for Bluetooth v5.1 Connection CTE Response feature
|
|
in controller.
|
|
|
|
config BT_CTLR_DF_ADV_CTE_TX
|
|
bool "Connectionless CTE Transmitter feature"
|
|
depends on BT_CTLR_DF_CTE_TX && BT_CTLR_ADV_PERIODIC
|
|
select BT_CTLR_ADV_EXT_PDU_EXTRA_DATA_MEMORY if BT_LL_SW_SPLIT
|
|
default y
|
|
help
|
|
Enable support for Bluetooth v5.1 Connectionless CTE Transmitter
|
|
feature in controller.
|
|
|
|
config BT_CTLR_DF_SCAN_CTE_RX
|
|
bool "Connectionless CTE Receiver"
|
|
depends on BT_CTLR_DF_CTE_RX && BT_CTLR_SYNC_PERIODIC
|
|
default y
|
|
help
|
|
Enable support for Bluetooth v5.1 connectionless CTE reception
|
|
in controller.
|
|
|
|
config BT_CTLR_DF_CONN_CTE_TX
|
|
bool "Connection based CTE Transmitter"
|
|
depends on BT_CTLR_DF_CTE_TX && BT_CONN
|
|
default y
|
|
help
|
|
Enable transmission of Constant Tone Extension in
|
|
direction finding connected mode.
|
|
|
|
config BT_CTLR_DF_CONN_CTE_RX
|
|
bool "Connection based CTE Receiver"
|
|
depends on BT_CTLR_DF_CTE_RX && BT_CONN
|
|
default y
|
|
help
|
|
Enable reception and sampling of Constant Tone Extension in direction
|
|
finding connected mode.
|
|
|
|
if BT_LL_SW_SPLIT
|
|
|
|
config BT_CTLR_DF_SAMPLE_CTE_FOR_PDU_WITH_BAD_CRC
|
|
bool "Sampling of CTE for PDUs with bad CRC"
|
|
depends on BT_CTLR_DF_SCAN_CTE_RX
|
|
default y
|
|
help
|
|
Enable support for sampling of CTE for PDUs that have bad CRC.
|
|
|
|
# Customization setting to manage memory usage footprint
|
|
|
|
config BT_CTLR_DF_MAX_ANT_SW_PATTERN_LEN
|
|
int "Maximum length of antenna switch pattern"
|
|
range 2 38 if SOC_COMPATIBLE_NRF
|
|
range 2 75 if !SOC_COMPATIBLE_NRF
|
|
default 12
|
|
help
|
|
Defines maximum length of antenna switch pattern that controller
|
|
is able to store. For nRF5x-based controllers, the hardware imposes
|
|
the value is within range 2 to 38, where last value is maximum.
|
|
For general use cases Bluetooth Core 5.1 spec. required the value
|
|
to be within range 2 up to 75.
|
|
|
|
config BT_CTLR_DF_INIT_ANT_SEL_GPIOS
|
|
bool "Initialization of GPIOs responsible for antenna switching"
|
|
depends on BT_CTLR_DF_ANT_SWITCH_TX || BT_CTLR_DF_ANT_SWITCH_RX
|
|
default y
|
|
help
|
|
Enable implicit initialization of GPIOs responsible for antenna
|
|
switching during Radio initialization.
|
|
If this feature is not enabled, the Radio initialization procedure will
|
|
not initialize GPIOs pins selected to drive antenna switching.
|
|
In such case application is responsible for appropriate GPIOs
|
|
initialization.
|
|
|
|
config BT_CTLR_DF_PER_ADV_CTE_NUM_MAX
|
|
int "Maximum number of transmitted PDUs with Constant Tone Extension in connectionless mode"
|
|
depends on BT_CTLR_DF_ADV_CTE_TX && BT_CTLR_ADV_PDU_LINK
|
|
range 1 16
|
|
default 1
|
|
help
|
|
Maximum supported number of PDUs, that have Constant Tone Extension, transmitted in single
|
|
periodic advertising chain. The range is taken from BT Core spec 5.1, Vol 4 Part E
|
|
section 7.8.82 HCI_LE_Set_Connectionless_IQ_Sampling_Enable Max_Sampled_CTEs parameter.
|
|
|
|
config BT_CTLR_DF_PER_SCAN_CTE_NUM_MAX
|
|
int "Maximum number of received PDUs with Constant Tone Extension in connectionless mode"
|
|
depends on BT_CTLR_DF_SCAN_CTE_RX
|
|
range 1 16
|
|
default 16
|
|
help
|
|
Maximum supported number of PDUs, that have Constant Tone Extension, received in single
|
|
periodic advertising chain. The range is taken from BT Core spec 5.1, Vol 4 Part E
|
|
section 7.8.82 HCI_LE_Set_Connectionless_IQ_Sampling_Enable Max_Sampled_CTEs parameter.
|
|
|
|
config BT_CTLR_DF_SWITCH_OFFSET
|
|
int "Antenna switch offset relative to end of CRC"
|
|
depends on SOC_COMPATIBLE_NRF
|
|
range -2048 2047
|
|
default 0
|
|
help
|
|
Offset of start of antenna switching after end of the CRC. It is a signed value in number
|
|
of 16M cycles. Decreasing the offset value beyond the trigger of the AoA/AoD procedure
|
|
will have no effect.
|
|
|
|
config BT_CTLR_DF_SAMPLE_OFFSET_PHY_1M_SAMPLING_1US
|
|
int "CTE sampling offset relative for PHY 1M and 1US samples spacing"
|
|
depends on SOC_COMPATIBLE_NRF
|
|
range -2048 2047
|
|
default 1
|
|
help
|
|
Offset of sampling start from beginning of sampling slot. The value is a signed number
|
|
of 16M cycles relative. It is used when PHY is set to PHY 1M and sampling slot duration
|
|
is 1 us. Decreasing the offset beyond the trigger of the AoA/AoD procedure will have
|
|
no effect.
|
|
|
|
config BT_CTLR_DF_SAMPLE_OFFSET_PHY_2M_SAMPLING_1US
|
|
int "CTE sampling offset relative for PHY 1M and 1US samples spacing"
|
|
depends on SOC_COMPATIBLE_NRF
|
|
range -2048 2047
|
|
default 15
|
|
help
|
|
Offset of sampling start from beginning of sampling slot. The value is a signed number
|
|
of 16M cycles relative. It is used when PHY is set to PHY 1M and sampling slot duration
|
|
is 1 us. Decreasing the offset beyond the trigger of the AoA/AoD procedure will have
|
|
no effect.
|
|
|
|
|
|
config BT_CTLR_DF_SAMPLE_OFFSET_PHY_1M_SAMPLING_2US
|
|
int "CTE sampling offset relative for PHY 1M and 2US samples spacing"
|
|
depends on SOC_COMPATIBLE_NRF
|
|
range -2048 2047
|
|
default 6
|
|
help
|
|
Offset of sampling start from beginning of sampling slot. The value is a signed number
|
|
of 16M cycles relative. It is used when PHY is set to PHY 1M and sampling slot duration
|
|
is 2 us. Decreasing the offset beyond the trigger of the AoA/AoD procedure will have
|
|
no effect.
|
|
|
|
config BT_CTLR_DF_SAMPLE_OFFSET_PHY_2M_SAMPLING_2US
|
|
int "CTE sampling offset relative for PHY 1M and 2US samples spacing"
|
|
depends on SOC_COMPATIBLE_NRF
|
|
range -2048 2047
|
|
default 20
|
|
help
|
|
Offset of sampling start from beginning of sampling slot. The value is a signed number
|
|
of 16M cycles relative. It is used when PHY is set to PHY 1M and sampling slot duration
|
|
is 2 us. Decreasing the offset beyond the trigger of the AoA/AoD procedure will have
|
|
no effect.
|
|
|
|
config BT_CTLR_DF_DEBUG_ENABLE
|
|
bool "Bluetooth Direction Finding debug support enable"
|
|
help
|
|
This option enables debug support for the Direction Finding
|
|
implementation in controller.
|
|
|
|
config BT_CTLR_DF_PHYEND_OFFSET_COMPENSATION_ENABLE
|
|
bool
|
|
depends on BT_CTLR_DF_CTE_RX && BT_CONN && (SOC_NRF52811 || SOC_NRF52820 || SOC_NRF52833 || SOC_NRF5340_CPUNET)
|
|
default y
|
|
help
|
|
SOCs nRF52811, nRF52820, nRF52833, nRF5340 generate PHYEND event delayed when
|
|
CTEINLINECTRLEN is enabled and received PDU does not have CTEInfo field. The option
|
|
enables workaround for the delay to maintain inter frame spacing (IFS) for connection
|
|
events.
|
|
|
|
choice
|
|
prompt "IQ samples 12 bit to 8 bit conversion approach"
|
|
default BT_CTLR_DF_IQ_SAMPLES_CONVERT_2_BITS_SHIFT if !SOC_NRF5340_CPUNET
|
|
default BT_CTLR_DF_IQ_SAMPLES_CONVERT_USE_8_LSB if SOC_NRF5340_CPUNET
|
|
|
|
config BT_CTLR_DF_IQ_SAMPLES_CONVERT_4_BITS_SHIFT
|
|
bool "Conversion of IQ samples to 8 bits wide by 4 bits shift"
|
|
depends on BT_CTLR_DF_SCAN_CTE_RX || BT_CTLR_DF_CONN_CTE_RX
|
|
help
|
|
IQ samples provided by the Radio Direction Finding Extension are 12 bit wide. The
|
|
Bluetooth 5.3 Core Specification defines IQ samples to be 8 bits wide: Vol 4, Part E
|
|
sections 7.7.65.21 and 7.7.65.22. This config enables conversion of 12 bit IQ samples to
|
|
8 bits by ordinary right shift operation by 4 bits. That means there is loss in accuracy
|
|
since only the 8 MSB are used.
|
|
|
|
config BT_CTLR_DF_IQ_SAMPLES_CONVERT_2_BITS_SHIFT
|
|
bool "Conversion of IQ samples to 8 bits wide by 2 bits shift"
|
|
depends on BT_CTLR_DF_SCAN_CTE_RX || BT_CTLR_DF_CONN_CTE_RX
|
|
help
|
|
IQ samples provided by the Radio Direction Finding Extension are 12 bit wide. The
|
|
Bluetooth 5.3 Core Specification defines IQ samples to be 8 bits wide: Vol 4, Part E
|
|
sections 7.7.65.21 and 7.7.65.22. This config enables conversion of 12 bit IQ samples to
|
|
8 bits by ordinary right shift operation by 2 bits and a cast to int8_t. That means there
|
|
is a loss in accuracy. This conversion may be used only if you are sure samples will not
|
|
saturate.
|
|
|
|
config BT_CTLR_DF_IQ_SAMPLES_CONVERT_USE_8_LSB
|
|
bool "Conversion of IQ samples to 8 bits wide by use of 8 LSB"
|
|
depends on SOC_NRF5340_CPUNET && (BT_CTLR_DF_SCAN_CTE_RX || BT_CTLR_DF_CONN_CTE_RX)
|
|
help
|
|
IQ samples provided by the Radio Direction Finding Extension are 12 bit wide. The
|
|
Bluetooth 5.3 Core Specification defines IQ samples to be 8 bits wide: Vol 4, Part E
|
|
sections 7.7.65.21 and 7.7.65.22. This config enables conversion of 12 bit IQ samples to
|
|
8 bits by use of 8 least significant bits. This conversion may be used only if you are
|
|
sure actual samples are not greater than 8 bits. This prevents additional accuracy loss
|
|
due to shifting operation.
|
|
|
|
endchoice
|
|
|
|
# Vendor specifici extensions configuration
|
|
|
|
config BT_CTLR_DF_VS_CL_IQ_REPORT_16_BITS_IQ_SAMPLES
|
|
bool "Use 16 bits signed integer IQ samples in connectionless IQ reports"
|
|
depends on BT_CTLR_DF_SCAN_CTE_RX && BT_HCI_VS
|
|
help
|
|
Direction Finging connectionless IQ reports provide a set of IQ samples collected during
|
|
sampling of CTE. Bluetooth 5.3 Core Specification defines IQ samples to be 8 bits signed
|
|
integer, see Vol 4, Part E section 7.7.65.21. This option enables a vendor specific
|
|
extension to HCI layer, so that connectionless IQ reports store samples in 16 bit signed
|
|
integer format.
|
|
|
|
config BT_CTLR_DF_VS_CONN_IQ_REPORT_16_BITS_IQ_SAMPLES
|
|
bool "Use 16 bits signed integer IQ samples in connection IQ reports"
|
|
depends on BT_CTLR_DF_CONN_CTE_RX && BT_HCI_VS
|
|
help
|
|
Direction Finging connection IQ reports provide a set of IQ samples collected during
|
|
sampling of CTE. Bluetooth 5.3 Core Specification defines IQ samples to be 8 bits signed
|
|
integer, see Vol 4, Part E section 7.7.65.22. This option enables a vendor specific
|
|
extension to HCI layer, so that connection IQ reports store samples in 16 bit signed
|
|
integer format.
|
|
|
|
endif # BT_LL_SW_SPLIT
|
|
|
|
endif # BT_CTLR_DF
|