Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Prototype RF Driver for STM Sub-1 GHz RF Expansion Boards based on the SPSGRF-868 and SPSGRF-915 Modules for STM32 Nucleo
Currently supported boards:
Note, in order to use expansion board X-NUCLEO-IDS01A4 in mbed you need to perform the following HW modifications on the board:
- Unmount resistor
R4 - Mount resistor
R7
Furthermore, on some Nucleo development boards (e.g. the NUCLEO_F429ZI), in order to be able to use Ethernet together with these Sub-1 GHz RF expansion boards, you need to compile this driver with macro SPIRIT1_SPI_MOSI=PB_5 defined, while the development board typically requires some HW modification as e.g. described here!
This driver can be used together with the 6LoWPAN stack (a.k.a. Nanostack).
stm-spirit1-rf-driver/NanostackRfPhySpirit1.h@82:a18c22d2b83a, 2018-02-02 (annotated)
- Committer:
- Wolfgang Betz
- Date:
- Fri Feb 02 14:13:24 2018 +0100
- Revision:
- 82:a18c22d2b83a
- Parent:
- 76:f4f990741baf
Correct comments/documentation
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| Wolfgang Betz |
38:5deec3ab2025 | 1 | #ifndef NANOSTACK_RF_PHY_SPIRIT1_H_ |
| Wolfgang Betz |
38:5deec3ab2025 | 2 | #define NANOSTACK_RF_PHY_SPIRIT1_H_ |
| Wolfgang Betz |
38:5deec3ab2025 | 3 | |
| Wolfgang Betz |
38:5deec3ab2025 | 4 | #include <stdint.h> |
| Wolfgang Betz |
38:5deec3ab2025 | 5 | |
| Seppo Takalo |
76:f4f990741baf | 6 | #ifdef MBED_CONF_NANOSTACK_CONFIGURATION |
| Seppo Takalo |
76:f4f990741baf | 7 | |
| Wolfgang Betz |
38:5deec3ab2025 | 8 | #include "NanostackRfPhy.h" |
| Wolfgang Betz |
38:5deec3ab2025 | 9 | #include "PinNames.h" |
| Wolfgang Betz |
38:5deec3ab2025 | 10 | |
| Wolfgang Betz |
38:5deec3ab2025 | 11 | // Arduino pin defaults for convenience |
| Wolfgang Betz |
38:5deec3ab2025 | 12 | #if !defined(SPIRIT1_SPI_MOSI) |
| Wolfgang Betz |
38:5deec3ab2025 | 13 | #define SPIRIT1_SPI_MOSI D11 |
| Wolfgang Betz |
38:5deec3ab2025 | 14 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 15 | #if !defined(SPIRIT1_SPI_MISO) |
| Wolfgang Betz |
38:5deec3ab2025 | 16 | #define SPIRIT1_SPI_MISO D12 |
| Wolfgang Betz |
38:5deec3ab2025 | 17 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 18 | #if !defined(SPIRIT1_SPI_SCLK) |
| Wolfgang Betz |
38:5deec3ab2025 | 19 | #define SPIRIT1_SPI_SCLK D13 |
| Wolfgang Betz |
38:5deec3ab2025 | 20 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 21 | #if !defined(SPIRIT1_DEV_IRQ) |
| Wolfgang Betz |
38:5deec3ab2025 | 22 | #define SPIRIT1_DEV_IRQ D9 |
| Wolfgang Betz |
38:5deec3ab2025 | 23 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 24 | #if !defined(SPIRIT1_DEV_CS) |
| Wolfgang Betz |
38:5deec3ab2025 | 25 | #define SPIRIT1_DEV_CS D10 |
| Wolfgang Betz |
38:5deec3ab2025 | 26 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 27 | #if !defined(SPIRIT1_DEV_SDN) |
| Wolfgang Betz |
38:5deec3ab2025 | 28 | #define SPIRIT1_DEV_SDN D2 |
| Wolfgang Betz |
38:5deec3ab2025 | 29 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 30 | #if !defined(SPIRIT1_BRD_LED) |
| Wolfgang Betz |
38:5deec3ab2025 | 31 | #define SPIRIT1_BRD_LED NC |
| Wolfgang Betz |
38:5deec3ab2025 | 32 | #endif |
| Wolfgang Betz |
38:5deec3ab2025 | 33 | |
| Wolfgang Betz |
38:5deec3ab2025 | 34 | class NanostackRfPhySpirit1 : public NanostackRfPhy { |
| Wolfgang Betz |
38:5deec3ab2025 | 35 | public: |
| Wolfgang Betz |
38:5deec3ab2025 | 36 | NanostackRfPhySpirit1(PinName spi_mosi, PinName spi_miso, PinName spi_sclk, |
| Wolfgang Betz |
38:5deec3ab2025 | 37 | PinName dev_irq, PinName dev_cs, PinName dev_sdn, PinName brd_led); |
| Wolfgang Betz |
38:5deec3ab2025 | 38 | ~NanostackRfPhySpirit1(); |
| Wolfgang Betz |
38:5deec3ab2025 | 39 | int8_t rf_register(); |
| Wolfgang Betz |
38:5deec3ab2025 | 40 | void rf_unregister(); |
| Wolfgang Betz |
38:5deec3ab2025 | 41 | void get_mac_address(uint8_t *mac); |
| Wolfgang Betz |
38:5deec3ab2025 | 42 | void set_mac_address(uint8_t *mac); |
| Wolfgang Betz |
38:5deec3ab2025 | 43 | |
| Wolfgang Betz |
38:5deec3ab2025 | 44 | private: |
| Wolfgang Betz |
38:5deec3ab2025 | 45 | void rf_init(void); |
| Wolfgang Betz |
38:5deec3ab2025 | 46 | |
| Wolfgang Betz |
38:5deec3ab2025 | 47 | const PinName _spi_mosi; |
| Wolfgang Betz |
38:5deec3ab2025 | 48 | const PinName _spi_miso; |
| Wolfgang Betz |
38:5deec3ab2025 | 49 | const PinName _spi_sclk; |
| Wolfgang Betz |
38:5deec3ab2025 | 50 | const PinName _dev_irq; |
| Wolfgang Betz |
38:5deec3ab2025 | 51 | const PinName _dev_cs; |
| Wolfgang Betz |
38:5deec3ab2025 | 52 | const PinName _dev_sdn; |
| Wolfgang Betz |
38:5deec3ab2025 | 53 | const PinName _brd_led; |
| Wolfgang Betz |
38:5deec3ab2025 | 54 | }; |
| Wolfgang Betz |
38:5deec3ab2025 | 55 | |
| Seppo Takalo |
76:f4f990741baf | 56 | #endif /* MBED_CONF_NANOSTACK_CONFIGURATION */ |
| Wolfgang Betz |
38:5deec3ab2025 | 57 | #endif /* NANOSTACK_RF_PHY_SPIRIT1_H_ */ |
X-NUCLEO-IDS01A4 Sub-1GHz RF Expansion Board