Start of the antenna switching and sampling CTE is configured by use of DFECTRL2 register in Nodric Radio peripheral. As of now the configuration was set to defaults, so antenna switching has started immediately after CTE procedure was started (end of CRC). Sampling was started at the very beginning of a sampling slot. It should be delayed for at least 125 ns from beginning of sampling slot and not more than 125 ns to the end of sampling slot. This is a requirement from BT 5.3 Core specification Vol 6, Part B section 2.5.4 IQ sampling. Although it seems to me that when samples are taken depends on implementation and used hardware. Taking that into account there is provided a set of KConfig options to configure samples offset for PHY 1M, PHY 2M and sapling slots 1 us and 2us separetely. Signed-off-by: Piotr Pryga <piotr.pryga@nordicsemi.no>
270 lines
9.0 KiB
Plaintext
270 lines
9.0 KiB
Plaintext
# Zephyr Bluetooth Controller configuration options
|
|
|
|
# Copyright (c) 2020 Nordic Semiconductor ASA
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
config BT_CTLR_DF_SUPPORT
|
|
bool
|
|
depends on !BT_CTLR_TIFS_HW
|
|
select BT_CTLR_DF_CTE_TX_SUPPORT
|
|
select BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
|
|
select BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
|
|
select BT_CTLR_DF_CTE_RX_SUPPORT
|
|
select BT_CTLR_DF_CTE_RX_SAMPLE_1US_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
|
|
|
|
menuconfig BT_CTLR_DF
|
|
bool "LE Direction Finding [EXPERIMENTAL]"
|
|
depends on BT_CTLR_DF_SUPPORT
|
|
select EXPERIMENTAL
|
|
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
|
|
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.
|
|
|
|
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 3 39 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 3 to 40, 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 duarion
|
|
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 duarion
|
|
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 duarion
|
|
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 duarion
|
|
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.
|
|
|
|
endif # BT_CTLR_DF
|