sx126x_params.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Inria
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
21 #include "board.h"
22 #include "sx126x.h"
23 
24 #if defined(MODULE_SHIELD_LLCC68) || defined(MODULE_SHIELD_SX1262)
25 # include "arduino_iomap.h"
26 #endif
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
32 #if defined(MODULE_SHIELD_LLCC68) || defined(MODULE_SHIELD_SX1262)
33 # define SX126X_PARAM_SPI ARDUINO_SPI_D11D12D13
34 # define SX126X_PARAM_SPI_NSS ARDUINO_PIN_7
35 # define SX126X_PARAM_RESET ARDUINO_PIN_A0
36 # define SX126X_PARAM_BUSY ARDUINO_PIN_3
37 # define SX126X_PARAM_DIO1 ARDUINO_PIN_5
38 #endif
39 
46 #ifndef SX126X_PARAM_SPI
47 # define SX126X_PARAM_SPI SPI_DEV(0)
48 #endif
49 
50 #ifndef SX126X_PARAM_SPI_NSS
51 # define SX126X_PARAM_SPI_NSS GPIO_PIN(0, 8) /* D7 */
52 #endif
53 
54 #ifndef SX126X_PARAM_RESET
55 # define SX126X_PARAM_RESET GPIO_PIN(0, 0) /* A0 */
56 #endif
57 
58 #ifndef SX126X_PARAM_BUSY
59 # define SX126X_PARAM_BUSY GPIO_PIN(1, 3) /* D3 */
60 #endif
61 
62 #ifndef SX126X_PARAM_DIO1
63 # define SX126X_PARAM_DIO1 GPIO_PIN(1, 4) /* D5 */
64 #endif
65 
66 #ifndef SX126X_PARAM_REGULATOR
67 # define SX126X_PARAM_REGULATOR SX126X_REG_MODE_DCDC
68 #endif
69 
70 #ifndef SX126X_PARAM_SET_RF_MODE_CB
71 # define SX126X_PARAM_SET_RF_MODE_CB NULL
72 #endif
73 
74 #ifndef SX126X_PARAM_TX_PA_MODE
75 # define SX126X_PARAM_TX_PA_MODE SX126X_RF_MODE_TX_LPA
76 #endif
77 
78 #ifndef SX126X_PARAM_TYPE
79 # if IS_USED(MODULE_SX1261)
80 # define SX126X_PARAM_TYPE SX126X_TYPE_SX1261
81 # elif IS_USED(MODULE_SX1262)
82 # define SX126X_PARAM_TYPE SX126X_TYPE_SX1262
83 # elif IS_USED(MODULE_SX1268)
84 # define SX126X_PARAM_TYPE SX126X_TYPE_SX1268
85 # elif IS_USED(MODULE_LLCC68)
86 # define SX126X_PARAM_TYPE SX126X_TYPE_LLCC68
87 # elif IS_USED(MODULE_SX126X_STM32WL)
88 # define SX126X_PARAM_TYPE SX126X_TYPE_STM32WL
89 # else
90 # error "You should select at least one of the SX126x variants."
91 # endif
92 #endif
93 
94 #if IS_USED(MODULE_SX126X_RF_SWITCH)
95 # define SX126X_SET_RF_MODE .set_rf_mode = SX126X_PARAM_SET_RF_MODE_CB,
96 # define SX126X_TX_PA_MODE .tx_pa_mode = SX126X_PARAM_TX_PA_MODE
97 #else
98 # define SX126X_SET_RF_MODE
99 # define SX126X_TX_PA_MODE
100 #endif
101 
102 #ifndef SX126X_PARAMS
103 # define SX126X_PARAMS { .spi = SX126X_PARAM_SPI, \
104  .nss_pin = SX126X_PARAM_SPI_NSS, \
105  .reset_pin = SX126X_PARAM_RESET, \
106  .busy_pin = SX126X_PARAM_BUSY, \
107  .dio1_pin = SX126X_PARAM_DIO1, \
108  .type = SX126X_PARAM_TYPE, \
109  .regulator = SX126X_PARAM_REGULATOR, \
110  SX126X_SET_RF_MODE \
111  SX126X_TX_PA_MODE}
112 #endif
113 
120 {
121  SX126X_PARAMS
122 };
123 
124 #ifdef __cplusplus
125 }
126 #endif
127 
Device initialization parameters.
Definition: sx126x.h:84
static const sx126x_params_t sx126x_params[]
Configuration struct.