Prototype RF driver for STM Sub-1 GHz RF expansion board based on the SPSGRF-868 module for STM32 Nucleo.

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).

Revision:
42:92a60a905ee7
Parent:
34:edda6a7238ec
Child:
43:a512f909514a
--- a/source/libs/spirit1/SPIRIT1_Library/Inc/SPIRIT_Irq.h	Wed Nov 30 11:58:18 2016 +0100
+++ b/source/libs/spirit1/SPIRIT1_Library/Inc/SPIRIT_Irq.h	Fri Dec 02 10:51:18 2016 +0100
@@ -179,7 +179,7 @@
 	  SpiritFlagStatus  IRQ_RX_START_TIME:1;            /*!< IRQ: only for debug; RX circuitry startup time; see TX_START_COUNTER */
 	  SpiritFlagStatus  IRQ_RX_TIMEOUT:1;               /*!< IRQ: RX operation timeout */
 	  SpiritFlagStatus  IRQ_AES_END:1;                  /*!< IRQ: AES End of operation */
-	  SpiritFlagStatus  :1;                             /*!< Reserved bit */
+	  SpiritFlagStatus  reserved:1;                     /*!< Reserved bit */
 
 	  SpiritFlagStatus  IRQ_READY:1;                    /*!< IRQ: READY state */
 	  SpiritFlagStatus  IRQ_STANDBY_DELAYED:1;          /*!< IRQ: STANDBY state after MCU_CK_CONF_CLOCK_TAIL_X clock cycles */
@@ -210,6 +210,14 @@
 
 } SpiritIrqs;
 
+// betzw: uint32_t masks
+#define IRQ_RX_FIFO_ALMOST_FULL_MASK	(0x00040000) /* (1<<17) */
+#define IRQ_VALID_SYNC_MASK				(0x00200000) /* (1<<21) */
+#define IRQ_RX_DATA_READY_MASK			(0x01000000) /* (1<<24) */
+#define IRQ_RX_DATA_DISC_MASK			(0x02000000) /* (1<<25) */
+#define IRQ_TX_DATA_SENT_MASK			(0x04000000) /* (1<<26) */
+#define IRQ_TX_FIFO_ERROR_MASK			(0x20000000) /* (1<<29) */
+#define IRQ_RX_FIFO_ERROR_MASK			(0x40000000) /* (1<<30) */
 
 /**
  * @brief  IRQ list enumeration for SPIRIT. This enumeration type can be used to address a