123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /*
- * THE FOLLOWING FIRMWARE IS PROVIDED: (1) "AS IS" WITH NO WARRANTY; AND
- * (2)TO ENABLE ACCESS TO CODING INFORMATION TO GUIDE AND FACILITATE CUSTOMER.
- * CONSEQUENTLY, SEMTECH SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR
- * CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
- * OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
- * CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *
- * Copyright (C) SEMTECH S.A.
- */
- /*!
- * \file sx1276.h
- * \brief SX1276 RF chip driver
- *
- * \version 2.0.B2
- * \date May 6 2013
- * \author Gregory Cristian
- *
- * Last modified by Miguel Luis on Jun 19 2013
- */
- #ifndef __SX1276_H__
- #define __SX1276_H__
- #include "stdbool.h"
- #include "stdint.h"
- /*!
- * \brief SX1276 registers array
- */
- extern uint8_t SX1276Regs[0x70];
- /*!
- * \brief Enables LoRa modem or FSK modem
- *
- * \param [IN] opMode New operating mode
- */
- void SX1276SetLoRaOn( bool enable );
- /*!
- * \brief Gets the LoRa modem state
- *
- * \retval LoraOn Current LoRa modem mode
- */
- bool SX1276GetLoRaOn( void );
- /*!
- * \brief Initializes the SX1276
- */
- void SX1276Init( void );
- /*!
- * \brief Resets the SX1276
- */
- void SX1276Reset( void );
- /*!
- * \brief Sets the SX1276 operating mode
- *
- * \param [IN] opMode New operating mode
- */
- void SX1276SetOpMode( uint8_t opMode );
- /*!
- * \brief Gets the SX1276 operating mode
- *
- * \retval opMode Current operating mode
- */
- uint8_t SX1276GetOpMode( void );
- /*!
- * \brief Reads the current Rx gain setting
- *
- * \retval rxGain Current gain setting
- */
- uint8_t SX1276ReadRxGain( void );
- /*!
- * \brief Trigs and reads the current RSSI value
- *
- * \retval rssiValue Current RSSI value in [dBm]
- */
- double SX1276ReadRssi( void );
- /*!
- * \brief Gets the Rx gain value measured while receiving the packet
- *
- * \retval rxGainValue Current Rx gain value
- */
- uint8_t SX1276GetPacketRxGain( void );
- /*!
- * \brief Gets the SNR value measured while receiving the packet
- *
- * \retval snrValue Current SNR value in [dB]
- */
- int8_t SX1276GetPacketSnr( void );
- /*!
- * \brief Gets the RSSI value measured while receiving the packet
- *
- * \retval rssiValue Current RSSI value in [dBm]
- */
- double SX1276GetPacketRssi( void );
- /*!
- * \brief Gets the AFC value measured while receiving the packet
- *
- * \retval afcValue Current AFC value in [Hz]
- */
- uint32_t SX1276GetPacketAfc( void );
- /*!
- * \brief Sets the radio in Rx mode. Waiting for a packet
- */
- void SX1276StartRx( void );
- /*!
- * \brief Gets a copy of the current received buffer
- *
- * \param [IN]: buffer Buffer pointer
- * \param [IN]: size Buffer size
- */
- void SX1276GetRxPacket( void *buffer, uint16_t *size );
- /*!
- * \brief Sets a copy of the buffer to be transmitted and starts the
- * transmission
- *
- * \param [IN]: buffer Buffer pointer
- * \param [IN]: size Buffer size
- */
- void SX1276SetTxPacket( const void *buffer, uint16_t size );
- /*!
- * \brief Gets the current RFState
- *
- * \retval rfState Current RF state [RF_IDLE, RF_BUSY,
- * RF_RX_DONE, RF_RX_TIMEOUT,
- * RF_TX_DONE, RF_TX_TIMEOUT]
- */
- uint8_t SX1276GetRFState( void );
- /*!
- * \brief Sets the new state of the RF state machine
- *
- * \param [IN]: state New RF state machine state
- */
- void SX1276SetRFState( uint8_t state );
- /*!
- * \brief Process the Rx and Tx state machines depending on the
- * SX1276 operating mode.
- *
- * \retval rfState Current RF state [RF_IDLE, RF_BUSY,
- * RF_RX_DONE, RF_RX_TIMEOUT,
- * RF_TX_DONE, RF_TX_TIMEOUT]
- */
- uint32_t SX1276Process( void );
- void SX1276Init( void );
- #endif //__SX1276_H__
|