driver for sx1280
Dependents: alarm_slave_extended_SX1280 alarm_master_extended_Vance_SX1280
Diff: sx12xx.h
- Revision:
- 2:8a442c3511ae
- Parent:
- 1:70ef46fa6fc6
- Child:
- 5:aba2d8b29702
diff -r 70ef46fa6fc6 -r 8a442c3511ae sx12xx.h --- 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; };