123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /*
- * 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-Hal.h
- * \brief SX1276 Hardware Abstraction Layer
- *
- * \version 2.0.B2
- * \date May 6 2013
- * \author Gregory Cristian
- *
- * Last modified by Miguel Luis on Jun 19 2013
- */
- #ifndef __SX1276_HAL_H__
- #define __SX1276_HAL_H__
- //#include "ioe.h"
- #include "stdint.h"
- #include "ucos_ii.h"
- /*!
- * DIO state read functions mapping
- */
- #define DIO0 SX1276ReadDio0( )
- #define DIO1 SX1276ReadDio1( )
- #define DIO2 SX1276ReadDio2( )
- #define DIO3 SX1276ReadDio3( )
- #define DIO4 SX1276ReadDio4( )
- #define DIO5 SX1276ReadDio5( )
- // RXTX pin control see errata note
- #define RXTX( txEnable ) SX1276WriteRxTx( txEnable );
- #define GET_TICK_COUNT( ) ( OSTimeGet() )
- #define TICK_RATE_MS( ms ) ( ms )
- typedef enum
- {
- RADIO_RESET_OFF,
- RADIO_RESET_ON,
- }tRadioResetState;
- /*!
- * \brief Initializes the radio interface I/Os
- */
- void SX1276InitIo( void );
- /*!
- * \brief Set the radio reset pin state
- *
- * \param state New reset pin state
- */
- void SX1276SetReset( uint8_t state );
- /*!
- * \brief Writes the radio register at the specified address
- *
- * \param [IN]: addr Register address
- * \param [IN]: data New register value
- */
- void SX1276Write( uint8_t addr, uint8_t data );
- /*!
- * \brief Reads the radio register at the specified address
- *
- * \param [IN]: addr Register address
- * \param [OUT]: data Register value
- */
- void SX1276Read( uint8_t addr, uint8_t *data );
- /*!
- * \brief Writes multiple radio registers starting at address
- *
- * \param [IN] addr First Radio register address
- * \param [IN] buffer Buffer containing the new register's values
- * \param [IN] size Number of registers to be written
- */
- void SX1276WriteBuffer( uint8_t addr, uint8_t *buffer, uint8_t size );
- /*!
- * \brief Reads multiple radio registers starting at address
- *
- * \param [IN] addr First Radio register address
- * \param [OUT] buffer Buffer where to copy the registers data
- * \param [IN] size Number of registers to be read
- */
- void SX1276ReadBuffer( uint8_t addr, uint8_t *buffer, uint8_t size );
- /*!
- * \brief Writes the buffer contents to the radio FIFO
- *
- * \param [IN] buffer Buffer containing data to be put on the FIFO.
- * \param [IN] size Number of bytes to be written to the FIFO
- */
- void SX1276WriteFifo( uint8_t *buffer, uint8_t size );
- /*!
- * \brief Reads the contents of the radio FIFO
- *
- * \param [OUT] buffer Buffer where to copy the FIFO read data.
- * \param [IN] size Number of bytes to be read from the FIFO
- */
- void SX1276ReadFifo( uint8_t *buffer, uint8_t size );
- /*!
- * \brief Gets the SX1276 DIO0 hardware pin status
- *
- * \retval status Current hardware pin status [1, 0]
- */
- inline uint8_t SX1276ReadDio0( void );
- /*!
- * \brief Gets the SX1276 DIO1 hardware pin status
- *
- * \retval status Current hardware pin status [1, 0]
- */
- inline uint8_t SX1276ReadDio1( void );
- /*!
- * \brief Gets the SX1276 DIO2 hardware pin status
- *
- * \retval status Current hardware pin status [1, 0]
- */
- inline uint8_t SX1276ReadDio2( void );
- /*!
- * \brief Gets the SX1276 DIO3 hardware pin status
- *
- * \retval status Current hardware pin status [1, 0]
- */
- inline uint8_t SX1276ReadDio3( void );
- /*!
- * \brief Gets the SX1276 DIO4 hardware pin status
- *
- * \retval status Current hardware pin status [1, 0]
- */
- inline uint8_t SX1276ReadDio4( void );
- /*!
- * \brief Gets the SX1276 DIO5 hardware pin status
- *
- * \retval status Current hardware pin status [1, 0]
- */
- inline uint8_t SX1276ReadDio5( void );
- /*!
- * \brief Writes the external RxTx pin value
- *
- * \remark see errata note
- *
- * \param [IN] txEnable [1: Tx, 0: Rx]
- */
- inline void SX1276WriteRxTx( uint8_t txEnable );
- #endif //__SX1276_HAL_H__
|