Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
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
#if !defined(SX126X_PARAM_REGULATOR) || defined(DOXYGEN)
71
# define SX126X_PARAM_REGULATOR SX126X_REG_MODE_DCDC
72
#endif
73
74
#ifndef SX126X_PARAM_SET_RF_MODE_CB
75
# define SX126X_PARAM_SET_RF_MODE_CB NULL
76
#endif
77
78
#ifndef SX126X_PARAM_TX_PA_MODE
79
# define SX126X_PARAM_TX_PA_MODE SX126X_RF_MODE_TX_LPA
80
#endif
81
82
#if !defined(SX126X_PARAM_DIO2_MODE) || defined(DOXYGEN)
87
# define SX126X_PARAM_DIO2_MODE SX126X_DIO2_UNUSED
88
#endif
89
90
#if !defined(SX126X_PARAM_DIO3_MODE) || defined(DOXYGEN)
95
# define SX126X_PARAM_DIO3_MODE SX126X_DIO3_UNUSED
96
#endif
97
98
#if !defined(SX126X_PARAM_TCXO_VOLTAGE) || defined(DOXYGEN)
105
# define SX126X_PARAM_TCXO_VOLTAGE SX126X_TCXO_CTRL_3_0V
106
#endif
107
108
#if !defined(SX126X_PARAM_TCXO_TIMEOUT) || defined(DOXYGEN)
113
# define SX126X_PARAM_TCXO_TIMEOUT 256
114
#endif
115
116
#if !defined(SX126X_PARAM_DIO3_ARG) || defined(DOXYGEN)
120
# define SX126X_PARAM_DIO3_ARG { .tcxo_volt = SX126X_PARAM_TCXO_VOLTAGE, \
121
.tcxo_timeout = SX126X_PARAM_TCXO_TIMEOUT }
122
#endif
123
124
#ifndef SX126X_PARAM_TYPE
125
# if IS_USED(MODULE_SX1261)
126
# define SX126X_PARAM_TYPE SX126X_TYPE_SX1261
127
# elif IS_USED(MODULE_SX1262)
128
# define SX126X_PARAM_TYPE SX126X_TYPE_SX1262
129
# elif IS_USED(MODULE_SX1268)
130
# define SX126X_PARAM_TYPE SX126X_TYPE_SX1268
131
# elif IS_USED(MODULE_LLCC68)
132
# define SX126X_PARAM_TYPE SX126X_TYPE_LLCC68
133
# elif IS_USED(MODULE_SX126X_STM32WL)
134
# define SX126X_PARAM_TYPE SX126X_TYPE_STM32WL
135
# else
136
# error "You should select at least one of the SX126x variants."
137
# endif
138
#endif
139
140
#if IS_USED(MODULE_SX126X_RF_SWITCH)
141
# define SX126X_SET_RF_MODE .set_rf_mode = SX126X_PARAM_SET_RF_MODE_CB,
142
# define SX126X_TX_PA_MODE .tx_pa_mode = SX126X_PARAM_TX_PA_MODE,
143
#else
144
# define SX126X_SET_RF_MODE
145
# define SX126X_TX_PA_MODE
146
#endif
147
148
#if IS_USED(MODULE_SX126X_DIO2) || defined(DOXYGEN)
152
# define SX126X_DIO2_MODE .dio2_mode = SX126X_PARAM_DIO2_MODE,
153
#else
154
# define SX126X_DIO2_MODE
155
#endif
156
157
#if IS_USED(MODULE_SX126X_DIO3) || defined(DOXYGEN)
161
# define SX126X_DIO3_MODE .dio3_mode = SX126X_PARAM_DIO3_MODE,
165
# define SX126X_DIO3_ARG .dio3_arg = SX126X_PARAM_DIO3_ARG,
166
#else
167
# define SX126X_DIO3_MODE
168
# define SX126X_DIO3_ARG
169
#endif
170
171
#ifndef SX126X_PARAMS
172
# define SX126X_PARAMS { .spi = SX126X_PARAM_SPI, \
173
.nss_pin = SX126X_PARAM_SPI_NSS, \
174
.reset_pin = SX126X_PARAM_RESET, \
175
.busy_pin = SX126X_PARAM_BUSY, \
176
.dio1_pin = SX126X_PARAM_DIO1, \
177
.type = SX126X_PARAM_TYPE, \
178
.regulator = SX126X_PARAM_REGULATOR, \
179
SX126X_SET_RF_MODE \
180
SX126X_TX_PA_MODE \
181
SX126X_DIO2_MODE \
182
SX126X_DIO3_MODE \
183
SX126X_DIO3_ARG \
184
}
185
#endif
186
192
static
const
sx126x_params_t
sx126x_params
[] =
193
{
194
SX126X_PARAMS
195
};
196
197
#ifdef __cplusplus
198
}
199
#endif
200
sx126x_params_t
Device initialization parameters.
Definition:
sx126x.h:111
sx126x.h
sx126x_params
static const sx126x_params_t sx126x_params[]
Configuration struct.
Definition:
sx126x_params.h:192
Generated on Sat Sep 6 2025 20:14:02 by
1.9.1