123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- /*
- ______ _
- / _____) _ | |
- ( (____ _____ ____ _| |_ _____ ____| |__
- \____ \| ___ | (_ _) ___ |/ ___) _ \
- _____) ) ____| | | || |_| ____( (___| | | |
- (______/|_____)_|_|_| \__)_____)\____)_| |_|
- (C)2013 Semtech
- Description: SX126x 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 __SX126x_ARCH_H__
- #define __SX126x_ARCH_H__
- #include "sx126x.h"
- #include "stdint.h"
- void HAL_Delay_nMS(uint32_t time_ms);
- /*!
- * \brief Initializes the radio I/Os pins interface
- */
- //void SX126xIoInit( void );
- /*!
- * \brief Initializes DIO IRQ handlers
- *
- * \param [IN] irqHandlers Array containing the IRQ callback functions
- */
- //void SX126xIoIrqInit( DioIrqHandler dioIrq );
- /*!
- * \brief De-initializes the radio I/Os pins interface.
- *
- * \remark Useful when going in MCU low power modes
- */
- //void SX126xIoDeInit( void );
- /*!
- * \brief HW Reset of the radio
- */
- void SX126xReset( void );
- /*!
- * \brief Blocking loop to wait while the Busy pin in high
- */
- void SX126xWaitOnBusy( void );
- /*!
- * \brief Wakes up the radio
- */
- void SX126xWakeup( void );
- /*!
- * \brief Send a command that write data to the radio
- *
- * \param [in] opcode Opcode of the command
- * \param [in] buffer Buffer to be send to the radio
- * \param [in] size Size of the buffer to send
- */
- void SX126xWriteCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size );
- /*!
- * \brief Send a command that read data from the radio
- *
- * \param [in] opcode Opcode of the command
- * \param [out] buffer Buffer holding data from the radio
- * \param [in] size Size of the buffer
- */
- void SX126xReadCommand( RadioCommands_t opcode, uint8_t *buffer, uint16_t size );
- /*!
- * \brief Write a single byte of data to the radio memory
- *
- * \param [in] address The address of the first byte to write in the radio
- * \param [in] value The data to be written in radio's memory
- */
- void SX126xWriteRegister( uint16_t address, uint8_t value );
- /*!
- * \brief Read a single byte of data from the radio memory
- *
- * \param [in] address The address of the first byte to write in the radio
- *
- * \retval value The value of the byte at the given address in radio's memory
- */
- uint8_t SX126xReadRegister( uint16_t address );
- /*!
- * \brief Sets the radio output power.
- *
- * \param [IN] power Sets the RF output power
- */
- void SX126xSetRfTxPower( int8_t power );
- /*!
- * \brief Gets the board PA selection configuration
- *
- * \param [IN] channel Channel frequency in Hz
- * \retval PaSelect RegPaConfig PaSelect value
- */
- uint8_t SX126xGetPaSelect( uint32_t channel );
- /*!
- * \brief Initializes the RF Switch I/Os pins interface
- */
- void SX126xAntSwOn( void );
- /*!
- * \brief De-initializes the RF Switch I/Os pins interface
- *
- * \remark Needed to decrease the power consumption in MCU low power modes
- */
- void SX126xAntSwOff( void );
- /*!
- * \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 SX126xCheckRfFrequency( uint32_t frequency );
- /*!
- * Radio hardware and global parameters
- */
- extern volatile SX126x_t SX126x;
- #endif // __SX126x_ARCH_H__
|