MCU driver/HAL for the Picocell Gateway concentrator board. The firmware implements either a USB CDC protocol or a UART protocol to bridge commands coming from host to the SX1308 SPI interface.

Revision:
0:c76361bd82e8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/SX1308HAL/inc/sx1308.h	Wed Apr 11 14:42:47 2018 +0000
@@ -0,0 +1,47 @@
+/*
+ / _____)             _              | |
+( (____  _____ ____ _| |_ _____  ____| |__
+ \____ \| ___ |    (_   _) ___ |/ ___)  _ \
+ _____) ) ____| | | || |_| ____( (___| | | |
+(______/|_____)_|_|_| \__)_____)\____)_| |_|
+  (C)2017 Semtech
+*/
+
+#ifndef SX1308_H
+#define SX1308_H
+
+#include "mbed.h"
+
+class SX1308 {
+
+public:
+    SX1308(PinName slaveSelectPin, PinName mosi, PinName miso, PinName sclk, PinName interrupt, PinName Reset);
+    virtual bool   init();
+    void           dig_reset();
+    void           spiWrite(uint8_t reg, uint8_t val);
+    void           spiWriteBurstF(uint8_t reg, uint8_t * val, int size);
+    void           spiWriteBurst(uint8_t reg, uint8_t * val, int size);
+    void           spiWriteBurstM(uint8_t reg, uint8_t * val, int size);
+    void           spiWriteBurstE(uint8_t reg, uint8_t * val, int size);
+    uint8_t        spiRead(uint8_t reg);
+    uint8_t        spiReadBurstF(uint8_t reg, uint8_t *data, int size);
+    uint8_t        spiReadBurstM(uint8_t reg, uint8_t *data, int size);
+    uint8_t        spiReadBurstE(uint8_t reg, uint8_t *data, int size);
+    uint8_t        spiReadBurst(uint8_t reg, uint8_t *data, int size);
+    volatile uint8_t waittxend;
+    uint8_t        txongoing;
+    Timer          timerstm32ref;
+    uint32_t       offtmstpstm32;
+    uint32_t       offtmstpstm32ref;
+    bool           firsttx;
+
+private:
+    void           isr0();
+    uint8_t        _interruptPin;
+    DigitalOut     _slaveSelectPin;
+    DigitalOut     _reset;
+    SPI            _spi;
+    InterruptIn    _interrupt;
+};
+
+#endif