SX126x-Arduino  1.2.1
sx126x-board.h
Go to the documentation of this file.
1 /*
2  ______ _
3  / _____) _ | |
4 ( (____ _____ ____ _| |_ _____ ____| |__
5  \____ \| ___ | (_ _) ___ |/ ___) _ \
6  _____) ) ____| | | || |_| ____( (___| | | |
7 (______/|_____)_|_|_| \__)_____)\____)_| |_|
8  (C)2013 Semtech
9 
10 Description: SX126x driver specific target board functions implementation
11 
12 License: Revised BSD License, see LICENSE.TXT file include in the project
13 
14 Maintainer: Miguel Luis and Gregory Cristian
15 */
16 
17 /******************************************************************************
18  * @file sx126x-board.h
19  * @author Insight SiP
20  * @version V2.0.0
21  * @date 30-january-2019
22  * @brief SX126x header compatible with LoraWan/semtech drivers.
23  *
24  * @attention
25  * THIS SOFTWARE IS PROVIDED BY INSIGHT SIP "AS IS" AND ANY EXPRESS
26  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
27  * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
28  * DISCLAIMED. IN NO EVENT SHALL INSIGHT SIP OR CONTRIBUTORS BE
29  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
31  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
34  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35  *
36  *****************************************************************************/
37 
38 #ifndef __SX126x_ARCH_H__
39 #define __SX126x_ARCH_H__
40 
41 #include <Arduino.h>
42 
43 extern "C"
44 {
47  void SX126xIoInit(void);
48 
51  void SX126xIoReInit(void);
52 
57  void SX126xIoIrqInit(DioIrqHandler dioIrq);
58 
63  void SX126xIoDeInit(void);
64 
67  void SX126xReset(void);
68 
71  void SX126xWaitOnBusy(void);
72 
75  void SX126xWakeup(void);
76 
83  void SX126xWriteCommand(RadioCommands_t opcode, uint8_t *buffer, uint16_t size);
84 
91  void SX126xReadCommand(RadioCommands_t opcode, uint8_t *buffer, uint16_t size);
92 
98  void SX126xWriteRegister(uint16_t address, uint8_t value);
99 
106  uint8_t SX126xReadRegister(uint16_t address);
107 
112  void SX126xSetRfTxPower(int8_t power);
113 
119  uint8_t SX126xGetPaSelect(uint32_t channel);
120 
123  void SX126xAntSwOn(void);
124 
129  void SX126xAntSwOff(void);
130 
135  void SX126xRXena(void);
136 
141  void SX126xTXena(void);
142 
148  bool SX126xCheckRfFrequency(uint32_t frequency);
149 
156  void SX126xGetStats(uint16_t *nb_pkt_received, uint16_t *nb_pkt_crc_error, uint16_t *nb_pkt_length_error);
157 
160  void SX126xResetStats(void);
161 
164  extern SX126x_t SX126x;
165 };
166 #endif // __SX126x_ARCH_H__
SX126xWriteCommand
void SX126xWriteCommand(RadioCommands_t opcode, uint8_t *buffer, uint16_t size)
Send a command that write data to the radio.
Definition: sx126x-board.cpp:178
SX126xIoDeInit
void SX126xIoDeInit(void)
De-initializes the radio I/Os pins interface.
Definition: sx126x-board.cpp:118
SX126xIoReInit
void SX126xIoReInit(void)
Initializes the radio I/Os pins interface after deep sleep wake.
Definition: sx126x-board.cpp:83
SX126xTXena
void SX126xTXena(void)
Set the RF antenna switch to transmitting mode.
Definition: sx126x-board.cpp:542
SX126xGetPaSelect
uint8_t SX126xGetPaSelect(uint32_t channel)
Gets the board PA selection configuration.
Definition: sx126x-board.cpp:320
SX126xRXena
void SX126xRXena(void)
Set the RF antenna switch to receiving mode.
Definition: sx126x-board.cpp:530
RadioCommands_t
enum RadioCommands_e RadioCommands_t
Represents all possible opcode understood by the radio.
SX126xIoIrqInit
void SX126xIoIrqInit(DioIrqHandler dioIrq)
Initializes DIO IRQ handlers.
Definition: sx126x-board.cpp:113
SX126x
SX126x_t SX126x
Radio hardware and global parameters.
Definition: radio.cpp:504
SX126xGetStats
void SX126xGetStats(uint16_t *nb_pkt_received, uint16_t *nb_pkt_crc_error, uint16_t *nb_pkt_length_error)
Gets info on the number of packets received.
Definition: sx126x-board.cpp:560
SX126xIoInit
void SX126xIoInit(void)
Initializes the radio I/Os pins interface.
Definition: sx126x-board.cpp:51
DioIrqHandler
void() DioIrqHandler(void)
Definition: sx126x.h:668
SX126xAntSwOff
void SX126xAntSwOff(void)
De-initializes the RF Switch I/Os pins interface.
Definition: sx126x-board.cpp:516
SX126xReadRegister
uint8_t SX126xReadRegister(uint16_t address)
Read a single byte of data from the radio memory.
Definition: sx126x-board.cpp:269
SX126xSetRfTxPower
void SX126xSetRfTxPower(int8_t power)
Sets the radio output power.
Definition: sx126x-board.cpp:315
SX126xWaitOnBusy
void SX126xWaitOnBusy(void)
Blocking loop to wait while the Busy pin in high.
Definition: sx126x-board.cpp:138
SX126xReadCommand
void SX126xReadCommand(RadioCommands_t opcode, uint8_t *buffer, uint16_t size)
Send a command that read data from the radio.
Definition: sx126x-board.cpp:201
SX126xWriteRegister
void SX126xWriteRegister(uint16_t address, uint8_t value)
Write a single byte of data to the radio memory.
Definition: sx126x-board.cpp:243
SX126xAntSwOn
void SX126xAntSwOn(void)
Initializes the RF Switch I/Os pins interface.
Definition: sx126x-board.cpp:501
SX126xCheckRfFrequency
bool SX126xCheckRfFrequency(uint32_t frequency)
Checks if the given RF frequency is supported by the hardware.
Definition: sx126x-board.cpp:554
SX126xResetStats
void SX126xResetStats(void)
Resets values read by GetStats.
Definition: sx126x-board.cpp:571
SX126xWakeup
void SX126xWakeup(void)
Wakes up the radio.
Definition: sx126x-board.cpp:159
SX126x_s
Definition: sx126x.h:653
SX126xReset
void SX126xReset(void)
HW Reset of the radio.
Definition: sx126x-board.cpp:128