123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /*
- / _____) _ | |
- ( (____ _____ ____ _| |_ _____ ____| |__
- \____ \| ___ | (_ _) ___ |/ ___) _ \
- _____) ) ____| | | || |_| ____( (___| | | |
- (______/|_____)_|_|_| \__)_____)\____)_| |_|
- (C)2013 Semtech
- Description: SX1276 driver specific target board functions implementation
- License: Revised BSD License, see LICENSE.TXT file include in the project
- Maintainer: Miguel Luis and Gregory Cristian
- */
- #ifndef __SX1276_ARCH_H__
- #define __SX1276_ARCH_H__
- #include "stdbool.h"
- #include "stdint.h"
- #include "sx1276.h"
- /*!
- * \brief Radio hardware registers initialization definition
- *
- * \remark Can be automatically generated by the SX1276 GUI (not yet implemented)
- */
- #define RADIO_INIT_REGISTERS_VALUE \
- { \
- { MODEM_FSK , REG_LNA , 0x23 },\
- { MODEM_FSK , REG_RXCONFIG , 0x1E },\
- { MODEM_FSK , REG_RSSICONFIG , 0xD2 },\
- { MODEM_FSK , REG_AFCFEI , 0x01 },\
- { MODEM_FSK , REG_PREAMBLEDETECT , 0xAA },\
- { MODEM_FSK , REG_OSC , 0x07 },\
- { MODEM_FSK , REG_SYNCCONFIG , 0x12 },\
- { MODEM_FSK , REG_SYNCVALUE1 , 0xC1 },\
- { MODEM_FSK , REG_SYNCVALUE2 , 0x94 },\
- { MODEM_FSK , REG_SYNCVALUE3 , 0xC1 },\
- { MODEM_FSK , REG_PACKETCONFIG1 , 0xD8 },\
- { MODEM_FSK , REG_FIFOTHRESH , 0x8F },\
- { MODEM_FSK , REG_IMAGECAL , 0x02 },\
- { MODEM_FSK , REG_DIOMAPPING1 , 0x00 },\
- { MODEM_FSK , REG_DIOMAPPING2 , 0x30 },\
- { MODEM_LORA, REG_LR_PAYLOADMAXLENGTH, 0x40 },\
- } \
- #define RF_MID_BAND_THRESH 525000000
- /*!
- * \brief Initializes the radio I/Os pins interface
- */
- void SX1276IoInit( void );
- /*!
- * \brief Initializes DIO IRQ handlers
- *
- * \param [IN] irqHandlers Array containing the IRQ callback functions
- */
- void SX1276IoIrqInit( DioIrqHandler **irqHandlers );
- /*!
- * \brief De-initializes the radio I/Os pins interface.
- *
- * \remark Useful when going in MCU lowpower modes
- */
- void SX1276IoDeInit( void );
- /*!
- * \brief Gets the board PA selection configuration
- *
- * \param [IN] channel Channel frequency in Hz
- * \retval PaSelect RegPaConfig PaSelect value
- */
- uint8_t SX1276GetPaSelect( uint32_t channel );
- /*!
- * \brief Initializes the RF Switch I/Os pins interface
- */
- void SX1276AntSwInit( void );
- /*!
- * \brief De-initializes the RF Switch I/Os pins interface
- *
- * \remark Needed to decrease the power consumption in MCU lowpower modes
- */
- void SX1276AntSwDeInit( void );
- /*!
- * \brief Controls the antena switch if necessary.
- *
- * \remark see errata note
- *
- * \param [IN] rxTx [1: Tx, 0: Rx]
- */
- void SX1276SetAntSw( uint8_t rxTx );
- /*!
- * \brief Checks if the given RF frequency is supported by the hardware
- *
- * \param [IN] frequency RF frequency to be checked
- * \retval isSupported [true: supported, false: unsupported]
- */
- bool SX1276CheckRfFrequency( uint32_t frequency );
- void Sx1276SetNSS(bool enable );
- uint8_t Sx1276SpiInOut(uint16_t data );
- void SX1276TimerInit(void);
- void SX1276TxTimeoutTimerStart( uint32_t timeoutMs );
- void SX1276TxTimeoutTimerStop(void);
- void SX1276RxTimeoutTimerStart( uint32_t timeoutMs );
- void SX1276RxTimeoutTimerStop(void);
- void SX1276SyncWordTimeoutTimerStart( uint32_t timeoutMs );
- void SX1276SyncWordTimeoutTimerStop(void);
- void SX1276Reset( void );
- void SX1276DelayMs(uint32_t delayMs);
- /*!
- * Radio hardware and global parameters
- */
- extern SX1276_t SX1276;
- #endif // __SX1276_ARCH_H__
|