1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

drivers/at86rf215: model Kconfig

This commit is contained in:
Leandro Lanzieri 2022-03-09 09:11:27 +01:00
parent 8390641638
commit 4ac0025c84
No known key found for this signature in database
GPG Key ID: F4E9A721761C7593

View File

@ -1,127 +1,74 @@
# Copyright (c) 2020 Freie Universitaet Berlin
# 2022 HAW Hamburg
#
# This file is subject to the terms and conditions of the GNU Lesser
# General Public License v2.1. See the file LICENSE in the top level
# directory for more details.
#
menuconfig KCONFIG_USEMODULE_AT86RF215
bool "Configure AT86RF215 driver"
depends on USEMODULE_AT86RF215
help
Configure the AT86RF215 driver using Kconfig.
if KCONFIG_USEMODULE_AT86RF215
menuconfig MODULE_AT86RF215
bool
prompt "AT86RF215 radio" if !(HAVE_AT86RF215 && MODULE_NETDEV_DEFAULT)
default (HAVE_AT86RF215 && MODULE_NETDEV_DEFAULT)
depends on TEST_KCONFIG
depends on HAS_PERIPH_GPIO
depends on HAS_PERIPH_GPIO_IRQ
depends on HAS_PERIPH_SPI
select MODULE_NETDEV
select MODULE_NETDEV_IEEE802154
select MODULE_PERIPH_GPIO
select MODULE_PERIPH_GPIO_IRQ
select MODULE_PERIPH_SPI
select MODULE_XTIMER
menuconfig KCONFIG_USEMODULE_AT86RF215_BATMON
bool "AT86RF215 Battery Monitor"
depends on USEMODULE_AT86RF215
help
Configure the AT86RF215 battery monitor using Kconfig.
if MODULE_AT86RF215
config AT86RF215_BATMON_THRESHOLD
int "Treshold voltage (in mV) of the battery monitor"
range 1700 3675
default 1800
depends on KCONFIG_USEMODULE_AT86RF215_BATMON
help
If the supply voltage falls below the configured threshold
a SYS_BUS_POWER_EVENT_LOW_VOLTAGE event is generated on the
SYS_BUS_POWER bus.
menu "Modulations"
Battery Monitoring is disabled when the device is in Deep Sleep.
menuconfig AT86RF215_OQPSK
bool "O-QPSK support"
select MODULE_NETDEV_IEEE802154_OQPSK
default y
config AT86RF215_USE_CLOCK_OUTPUT
bool "Enable clock output"
help
Enable this to enable the clock output pin of the AT86RF215 chip.
This way it can be used as a clock source in place of a separate crystal.
You also have to enable this if you want to measure the clock frequency
for trimming. After proper trim value is applied this may be disabled
if not used otherwise.
By Default it is turned off to save energy.
config AT86RF215_TRIM_VAL_EN
bool "Enable crystal oscillator trimming"
help
Enable crystal oscillator trimming.
config AT86RF215_RPC_EN
bool "Enable Reduced Power Consumption"
help
Reduce Power Consumption in RX IDLE by duty-cycling the RF circuitry.
config AT86RF215_TRIM_VAL
int "Trim value for the crystal oscillator"
range 0 15
default 0
depends on AT86RF215_TRIM_VAL_EN
help
Each increment adds 300nF capacitance between the crystal oscillator pins
TCXO and XTAL2.Tweak the value until the measured clock output matches
26 MHz the best.
For more information Refer Table 6-25 TRIM in Datasheet
config AT86RF215_RESET_PULSE_WIDTH_US
int "Width of the reset pulse (µs)"
range 16 1000
default 16
help
If your board design includes a filtering capacitor on the reset line, this raises
the rise time of the reset pulse.
To accommodate for this, select a larger reset pulse width here.
If unsure, leave this at the default value of 16 µs.
if AT86RF215_OQPSK
choice
prompt "Default Modulation"
config AT86RF215_DEFAULT_LEGACY_OQPSK
bool "legacy O-QPSK"
help
O-QPSK compatible with IEEE 802.15.4-2003 devices
config AT86RF215_DEFAULT_MR_OQPSK
bool "MR-O-QPSK"
help
MR-O-QPSK according to IEEE 802.15.4g
config AT86RF215_DEFAULT_MR_OFDM
bool "MR-OFDM"
help
MR-O-OFDM according to IEEE 802.15.4g
config AT86RF215_DEFAULT_MR_FSK
bool "MR-FSK"
help
MR-FSK according to IEEE 802.15.4g
endchoice
menu "O-QPSK (802.15.4) configuration"
depends on AT86RF215_DEFAULT_LEGACY_OQPSK
config AT86RF215_DEFAULT_OQPSK_RATE
int "Default (legacy) O-QPSK rate mode"
range 0 1
default 0
bool "Default (legacy) O-QPSK rate mode"
default AT86RF215_OQPSK_RATE_LOW
help
The at86rf215 supports proprietary high data rates that are compatible
with the at86rf2xx parts.
Set this to 1 to configure the proprietary high-data rate option as default.
If unsure, leave this at 0.
If unsure, select low rate.
endmenu # legacy O-QPSK
config AT86RF215_OQPSK_RATE_LOW
bool "Low rate mode (compatible)"
menu "MR-O-QPSK (802.15.4g) configuration"
depends on AT86RF215_DEFAULT_MR_OQPSK
config AT86RF215_OQPSK_RATE_HIGH
bool "High rate mode (proprietary)"
endchoice
config AT86RF215_DEFAULT_OQPSK_RATE
int
default 0 if AT86RF215_OQPSK_RATE_LOW
default 1 if AT86RF215_OQPSK_RATE_HIGH
endif # AT86RF215_OQPSK
menuconfig AT86RF215_MR_OQPSK
bool "MR-O-QPSK support"
select MODULE_NETDEV_IEEE802154_MR_OQPSK
default y
if AT86RF215_MR_OQPSK
config AT86RF215_DEFAULT_MR_OQPSK_RATE
int "Default MR-O-QPSK rate mode"
range 0 3
default 2
help
Default Rate Mode of the MR-O-QPSK PHY
Each increment doubles the PSDU data rate.
Default Rate Mode of the MR-O-QPSK PHY. Each increment doubles the PSDU
data rate.
choice
prompt "Default MR-O-QPSK Chip Rate"
@ -140,10 +87,14 @@ config AT86RF215_DEFAULT_MR_OQPSK_CHIPS_2000
endchoice
endmenu # MR-O-QPSK
endif # AT86RF215_MR_OQPSK
menu "MR-OFDM (802.15.4g) configuration"
depends on AT86RF215_DEFAULT_MR_OFDM
menuconfig AT86RF215_MR_OFDM
bool "MR-OFDM support"
select MODULE_NETDEV_IEEE802154_MR_OFDM
default y
if AT86RF215_MR_OFDM
config AT86RF215_DEFAULT_MR_OFDM_OPT
int "Default MR-OFDM option"
@ -153,40 +104,89 @@ config AT86RF215_DEFAULT_MR_OFDM_OPT
Default Option of the MR-OFDM PHY
Each increment halves the PSDU data rate.
config AT86RF215_DEFAULT_MR_OFDM_MCS
int "Default MR-OFDM Modulation & Coding Scheme"
range 0 6
default 2
choice
bool "Default MR-OFDM Modulation & Coding Scheme"
default AT86RF215_MR_OFDM_MCS_QPSK_R12_FR2
help
Default Modulation & Coding Scheme of the MR-OFDM PHY.
Higher schemes correspond to higher data rates and lower range.
0: BPSK, rate 12, 4 x frequency repetition
1: BPSK, rate 12, 2 x frequency repetition
2: QPSK, rate 12, 2 x frequency repetition
3: QPSK, rate 12
4: QPSK, rate 34
5: 16-QAM, rate 12
6: 16-QAM, rate 34
config AT86RF215_MR_OFDM_MCS_BPSK_R12_FR4
bool "BPSK, rate 12, 4 x frequency repetition"
endmenu
config AT86RF215_MR_OFDM_MCS_BPSK_R12_FR2
bool "BPSK, rate 12, 2 x frequency repetition"
menu "MR-FSK (802.15.4g) configuration"
depends on AT86RF215_DEFAULT_MR_FSK
config AT86RF215_MR_OFDM_MCS_QPSK_R12_FR2
bool "QPSK, rate 12, 2 x frequency repetition"
config AT86RF215_MR_OFDM_MCS_QPSK_R12_FR0
bool "QPSK, rate 12"
config AT86RF215_MR_OFDM_MCS_QPSK_R34_FR0
bool "QPSK, rate 34"
config AT86RF215_MR_OFDM_MCS_16QAM_R12_FR0
bool "16-QAM, rate 12"
config AT86RF215_MR_OFDM_MCS_16QAM_R34_FR0
bool "16-QAM, rate 34"
endchoice
config AT86RF215_DEFAULT_MR_OFDM_MCS
int
default 0 if AT86RF215_MR_OFDM_MCS_BPSK_R12_FR4
default 1 if AT86RF215_MR_OFDM_MCS_BPSK_R12_FR2
default 2 if AT86RF215_MR_OFDM_MCS_QPSK_R12_FR2
default 3 if AT86RF215_MR_OFDM_MCS_QPSK_R12_FR0
default 4 if AT86RF215_MR_OFDM_MCS_QPSK_R34_FR0
default 5 if AT86RF215_MR_OFDM_MCS_16QAM_R12_FR0
default 6 if AT86RF215_MR_OFDM_MCS_16QAM_R34_FR0
endif # AT86RF215_MR_OFDM
menuconfig AT86RF215_MR_FSK
bool "MR-FSK support"
select MODULE_NETDEV_IEEE802154_MR_FSK
default y
if AT86RF215_MR_FSK
choice
bool "Default MR-FSK Symbol Rate"
default AT86RF215_MR_FSK_SRATE_200K
help
Default Symbol Rate of the MR-FSK PHY.
config AT86RF215_MR_FSK_SRATE_50K
bool "50 KHz"
config AT86RF215_MR_FSK_SRATE_100K
bool "100 KHz"
config AT86RF215_MR_FSK_SRATE_150K
bool "150 KHz"
config AT86RF215_MR_FSK_SRATE_200K
bool "200 KHz"
config AT86RF215_MR_FSK_SRATE_300K
bool "300 KHz"
config AT86RF215_MR_FSK_SRATE_400K
bool "400 KHz"
endchoice
config AT86RF215_DEFAULT_MR_FSK_SRATE
int "Default MR-FSK Symbol Rate"
range 0 5
default 3
help
Default Symbol Rate of the MR-FSK PHY
0: 50 kHz
1: 100 kHZ
2: 150 kHZ
3: 200 kHZ
4: 300 kHZ
5: 400 kHZ
int
default 0 if AT86RF215_MR_FSK_SRATE_50K
default 1 if AT86RF215_MR_FSK_SRATE_100K
default 2 if AT86RF215_MR_FSK_SRATE_150K
default 3 if AT86RF215_MR_FSK_SRATE_200K
default 4 if AT86RF215_MR_FSK_SRATE_300K
default 5 if AT86RF215_MR_FSK_SRATE_400K
config AT86RF215_DEFAULT_MR_FSK_MOD_IDX
int "Default MR-FSK Modulation Index"
@ -196,27 +196,181 @@ config AT86RF215_DEFAULT_MR_FSK_MOD_IDX
Default Modulation Index of the MR-FSK PHY as a fraction of 64.
(32/64 = 0.5; 64/64 = 1 …)
config AT86RF215_DEFAULT_MR_FSK_MORD
int "Default MR-FSK Modulation Order"
range 0 1
default 1
help
Default FSK Modulation Order
choice
bool "Default MR-FSK Modulation Order"
default AT86RF215_MR_FSK_MORD_4
0: 2-FSK
1: 4-FSk
config AT86RF215_MR_FSK_MORD_4
bool "2-FSK"
config AT86RF215_MR_FSK_MORD_4
bool "4-FSK"
endchoice
config AT86RF215_DEFAULT_MR_FSK_MORD
int
default 0 if AT86RF215_MR_FSK_MORD_4
default 1 if AT86RF215_MR_FSK_MORD_4
choice
bool "Default MR-FSK Forward Error Correction Scheme"
default AT86RF215_MR_FSK_FEC_NONE
config AT86RF215_MR_FSK_FEC_NONE
bool "No forward error correction"
config AT86RF215_MR_FSK_FEC_NRNS
bool "Non-recursive and non-systematic code"
config AT86RF215_MR_FSK_FEC_RS
bool "Recursive and systematic code"
endchoice
config AT86RF215_DEFAULT_MR_FSK_FEC
int "Default MR-FSK Forward Error Correction Scheme"
range 0 2
default 0
int
default 0 if AT86RF215_MR_FSK_FEC_NONE
default 1 if AT86RF215_MR_FSK_FEC_NRNS
default 2 if AT86RF215_MR_FSK_FEC_RS
endif # AT86RF215_MR_FSK
choice
prompt "Default Modulation"
config AT86RF215_DEFAULT_LEGACY_OQPSK
bool "legacy O-QPSK"
depends on AT86RF215_OQPSK
help
Default Settings for Forward Error Correction
O-QPSK compatible with IEEE 802.15.4-2003 devices
0: No Forward Error Correction
1: Non-recursive and non-systematic code
2: Recursive and systematic code
config AT86RF215_DEFAULT_MR_OQPSK
bool "MR-O-QPSK"
depends on AT86RF215_MR_OQPSK
help
MR-O-QPSK according to IEEE 802.15.4g
endmenu
config AT86RF215_DEFAULT_MR_OFDM
bool "MR-OFDM"
depends on AT86RF215_MR_OFDM
help
MR-O-OFDM according to IEEE 802.15.4g
endif # KCONFIG_USEMODULE_AT86RF215
config AT86RF215_DEFAULT_MR_FSK
bool "MR-FSK"
depends on AT86RF215_MR_FSK
help
MR-FSK according to IEEE 802.15.4g
endchoice
endmenu # Modulations
config MODULE_AUTO_INIT_AT86RF215
bool "Auto-initialize the driver on startup"
depends on MODULE_AUTO_INIT
default y
config MODULE_AT86RF215_BATMON
bool "Enable battery monitor"
select MODULE_SYS_BUS
select MODULE_SYS_BUS_POWER
config AT86RF215_BATMON_THRESHOLD
int "Treshold voltage (in mV) of the battery monitor"
range 1700 3675
default 1800
depends on MODULE_AT86RF215_BATMON
help
If the supply voltage falls below the configured threshold
a SYS_BUS_POWER_EVENT_LOW_VOLTAGE event is generated on the
SYS_BUS_POWER bus.
Battery Monitoring is disabled when the device is in Deep Sleep.
config AT86RF215_USE_CLOCK_OUTPUT
bool "Enable clock output"
help
Enable this to enable the clock output pin of the AT86RF215 chip.
This way it can be used as a clock source in place of a separate crystal.
You also have to enable this if you want to measure the clock frequency
for trimming. After proper trim value is applied this may be disabled
if not used otherwise.
By Default it is turned off to save energy.
menuconfig AT86RF215_TRIM_VAL_EN
bool "Enable crystal oscillator trimming"
help
Enable crystal oscillator trimming.
config AT86RF215_TRIM_VAL
int "Trim value for the crystal oscillator"
range 0 15
default 0
depends on AT86RF215_TRIM_VAL_EN
help
Each increment adds 300nF capacitance between the crystal oscillator pins
TCXO and XTAL2.Tweak the value until the measured clock output matches
26 MHz the best.
For more information Refer Table 6-25 TRIM in Datasheet
config AT86RF215_RPC_EN
bool "Enable Reduced Power Consumption"
help
Reduce Power Consumption in RX IDLE by duty-cycling the RF circuitry.
config MODULE_AT86RF215_TIMESTAMP
bool "Enable timestamp frame information"
config MODULE_AT86RF215_BLOCKING_SEND
bool "Block while sending"
config MODULE_AT86RF215_SUBGHZ
bool
prompt "Sub-GHz support" if !HAVE_AT86RF215M
default y
help
Sub-GHz support.
config MODULE_AT86RF215_24GHZ
bool
prompt "2.4 GHz support"
default y
help
2.4 GHz support.
config AT86RF215_MULTIMODE
bool "Allow multiple physical layer modes"
default y
select MODULE_NETDEV_IEEE802154_MULTIMODE
config AT86RF215_RESET_PULSE_WIDTH_US
int "Width of the reset pulse (µs)"
range 16 1000
default 16
help
If your board design includes a filtering capacitor on the reset line, this raises
the rise time of the reset pulse.
To accommodate for this, select a larger reset pulse width here.
If unsure, leave this at the default value of 16 µs.
endif # MODULE_AT86RF215
config HAVE_AT86RF215
bool
help
Indicates that a AT86RF215 radio is present.
config HAVE_AT86RF215IQ
bool
select HAVE_AT86RF215
help
Indicates that a AT86RF215IQ radio is present.
config HAVE_AT86RF215M
bool
select HAVE_AT86RF215
help
Indicates that a AT86RF215IM radio is present.