Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drivers/at86rf215: Add driver for the AT86RF215 dual-band IEEE 802.15.4-2015 radio #12128

Closed
wants to merge 25 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
b66ec66
ieee802154: add definitions for 802.15.4 PHY modes
benpicco Dec 12, 2019
b45504e
ieee802154: add definitions & config options for 802.15.4g-2012
benpicco Dec 13, 2019
8fa4397
shell/sc_gnrc_netif: fix space after NID
benpicco Dec 13, 2019
b667f23
gnrc_netif: add NETDEV_EVENT_PDU_CHANGED event
benpicco Nov 28, 2019
456854d
ieee802154: return PDU based on PHY mode
benpicco Dec 12, 2019
e868956
drivers/at86rf215: Add driver for the AT86RF215 radio
benpicco Dec 13, 2019
cb30ff5
boards/openmote-b: hook up at86rf215
benpicco Aug 28, 2019
b8348a5
at86rf215: fix OFDM timings
benpicco Dec 19, 2019
ca6d13a
at86rf215: implement battery monitor feature
benpicco Jan 23, 2020
234de87
at86rf215: allow board-specific trim value
benpicco Jan 23, 2020
2f3218e
at86rf215: don't read part number before reset
benpicco Feb 26, 2020
0fa8179
at86rf215: don't change state while the device is busy TXing
benpicco Feb 26, 2020
92b78e0
at86rf215: adapt to auto_init move
benpicco Mar 5, 2020
edd1832
at86rf215: fix OFDM channel spacing
benpicco Mar 6, 2020
d33bd4a
at86rf215: first round of review comments
benpicco Mar 11, 2020
a7f0442
at86rf215: fix module handling
benpicco Mar 11, 2020
29a59b8
at86rf215: properly handle at86rf215m
benpicco Mar 11, 2020
2b149ac
at86rf215: clean up get_random()
benpicco Mar 11, 2020
bae75e8
at86rf215: fix default energy detect threshold
benpicco Mar 11, 2020
4654766
at86rf215: add pre-condition to get_random()
benpicco Mar 11, 2020
cfc22a1
at86rf215: separate vendor file from custom additions
benpicco Mar 12, 2020
27c8b29
at86rf215: add defines for default parameters
benpicco Mar 12, 2020
4185472
at86rf215: more review comments
benpicco Mar 12, 2020
b289b4e
at86rf215: backport changes from mainline driver
benpicco Mar 23, 2020
f9d24e3
drivers/at86rf215: fix reset after deep sleep
benpicco Mar 29, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion boards/openmote-b/Makefile.dep
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
ifneq (,$(filter gnrc_netdev_default netdev_default,$(USEMODULE)))
USEMODULE += cc2538_rf
ifeq (,$(filter cc2538_rf,$(USEMODULE)))
USEMODULE += at86rf215
endif
endif

ifneq (,$(filter saul_default,$(USEMODULE)))
Expand Down
8 changes: 7 additions & 1 deletion boards/openmote-b/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,15 @@ void board_init(void)
gpio_init(RF24_SWITCH_CC2538_PIN, GPIO_OUT);
gpio_init(RF24_SWITCH_AT86RF215_PIN, GPIO_OUT);

/* start with cc2538 2.4ghz radio*/
#ifdef MODULE_AT86RF215
/* use at86rf215 2.4ghz radio*/
RF24_SWITCH_CC2538_OFF;
RF24_SWITCH_AT86RF215_ON;
#else
/* use cc2538 2.4ghz radio*/
RF24_SWITCH_CC2538_ON;
RF24_SWITCH_AT86RF215_OFF;
#endif

/* initialize the CPU */
cpu_init();
Expand Down
10 changes: 10 additions & 0 deletions boards/openmote-b/include/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,16 @@
#define RF24_SWITCH_AT86RF215_TOGGLE (RF_SWITCH_PORT->DATA ^= RF24_SWITCH_AT86RF215_MASK)
/** @} */

/**
* @name AT86RF215 configuration
* @{
*/
#define AT86RF215_PARAM_SPI SPI_DEV(0)
#define AT86RF215_PARAM_CS GPIO_PIN(0, 3) /* A3 */
#define AT86RF215_PARAM_INT GPIO_PIN(3, 0) /* D0 */
#define AT86RF215_PARAM_RESET GPIO_PIN(3, 1) /* D1 */
/** @} */

/**
* @name xtimer configuration
* @{
Expand Down
26 changes: 25 additions & 1 deletion drivers/Makefile.dep
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,25 @@ ifneq (,$(filter at30tse75x,$(USEMODULE)))
FEATURES_REQUIRED += periph_i2c
endif

ifneq (,$(filter at86rf%,$(USEMODULE)))
ifneq (,$(filter at86rf215%,$(USEMODULE)))
USEMODULE += at86rf215
DEFAULT_MODULE += auto_init_at86rf215

FEATURES_REQUIRED += periph_gpio
FEATURES_REQUIRED += periph_gpio_irq
FEATURES_REQUIRED += periph_spi

USEMODULE += xtimer
USEMODULE += luid
USEMODULE += netif
USEMODULE += ieee802154
USEMODULE += netdev_ieee802154
endif

ifneq (,$(filter at86rf%, $(filter-out at86rf215%, $(USEMODULE))))
USEMODULE += at86rf2xx
DEFAULT_MODULE += auto_init_at86rf2xx

USEMODULE += xtimer
USEMODULE += luid
USEMODULE += netif
Expand All @@ -68,6 +84,14 @@ ifneq (,$(filter at86rf%,$(USEMODULE)))
endif
endif

ifneq (,$(filter at86rf215,$(USEMODULE)))
USEMODULE += netdev_ieee802154_oqpsk
USEMODULE += netdev_ieee802154_mr_fsk
USEMODULE += netdev_ieee802154_mr_ofdm
USEMODULE += netdev_ieee802154_mr_oqpsk
USEMODULE += netdev_ieee802154_multimode
endif

ifneq (,$(filter ata8520e,$(USEMODULE)))
USEMODULE += xtimer
USEMODULE += fmt
Expand Down
4 changes: 4 additions & 0 deletions drivers/Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ ifneq (,$(filter at86rf2xx,$(USEMODULE)))
USEMODULE_INCLUDES += $(RIOTBASE)/drivers/at86rf2xx/include
endif

ifneq (,$(filter at86rf215,$(USEMODULE)))
USEMODULE_INCLUDES += $(RIOTBASE)/drivers/at86rf215/include
endif

ifneq (,$(filter ata8520e,$(USEMODULE)))
USEMODULE_INCLUDES += $(RIOTBASE)/drivers/ata8520e/include
endif
Expand Down
1 change: 1 addition & 0 deletions drivers/at86rf215/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include $(RIOTBASE)/Makefile.base
Loading