driver for sx1280

Dependents:   alarm_slave_extended_SX1280 alarm_master_extended_Vance_SX1280

Revision:
2:8a442c3511ae
Parent:
1:70ef46fa6fc6
Child:
5:aba2d8b29702
--- a/sx12xx.h	Fri Jun 29 15:04:59 2018 -0700
+++ b/sx12xx.h	Mon Jul 16 09:35:21 2018 -0700
@@ -34,13 +34,14 @@
 #define OPCODE_SET_CAD                  0xc5
 #define OPCODE_SET_TX_CARRIER           0xd1
 #define OPCODE_SET_TX_PREAMBLE          0xd2
+#define OPCODE_SAVE_CONTEXT             0xd5
 /***************************************************************/
 #define REG_ADDR_AFIRQ                    0x053 // 7bit
 #define REG_ADDR_RXBW                     0x881 // 7bit
 #define REG_ADDR_GFSK_DEMODSTATUS         0x8cb // 5bit
 #define REG_ADDR_LORA_TX_PAYLOAD_LENGTH   0x901 // 8bit
 #define REG_ADDR_LORA_PKTPAR0             0x902 // 8bit
-#define REG_ADDR_LORA_PKTPAR1             0x902 // 8bit
+#define REG_ADDR_LORA_PKTPAR1             0x903 // 8bit
 #define REG_ADDR_LORA_LRCTL               0x904 // 8bit
 #define REG_ADDR_LORA_IRQMASK             0x90f // 24bit
 #define REG_ADDR_LORA_PREAMBLE            0x93f // 8bit
@@ -599,7 +600,7 @@
 
 class SX128x {
     public:
-        SX128x(SPI&, PinName nss, PinName busy, PinName diox);
+        SX128x(SPI&, PinName nss, PinName busy, PinName diox, PinName nrst);
 
         static Callback<void()> diox_topHalf;    // low latency ISR context
         Callback<void()> txDone; // user context
@@ -617,12 +618,12 @@
         uint8_t xfer(uint8_t opcode, uint8_t writeLen, uint8_t readLen, uint8_t* buf);
         void start_tx(uint8_t pktLen, float timeout_ms);  // tx_buf must be filled prior to calling
         void start_rx(float timeout_ms);   // timeout given in milliseconds, -1 = forever
-        void hw_reset(PinName nrst);
+        void hw_reset(void);
         void set_tx_dbm(int8_t dbm);
         void setMHz(float);
         float getMHz(void);
         void setStandby(stby_t);
-        void setSleep(bool warmStart);
+        void setSleep(bool warm);
         void setFS(void);
         void writeReg(uint16_t addr, uint32_t data, uint8_t len);
         uint32_t readReg(uint16_t addr, uint8_t len);
@@ -637,12 +638,14 @@
         chipMode_e chipMode;
         uint8_t periodBase;
         static const float timeOutStep[4];
+        uint8_t pktType;
 
     private:
         SPI& spi;
         DigitalOut nss;
         DigitalIn busy;
         InterruptIn diox;
+        DigitalInOut nrst;
         static void dioxisr(void);
         bool sleeping;
 };