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.
Diff: src/SX1308HAL/inc/sx1308.h
- 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