Example Tx Rx LoRa code for Multitech Conduit. Based on Semtech stack for ELMO - ver. 4.1.0.

Dependencies:   SX1272lib mbed

Committer:
Pasi
Date:
Tue Apr 19 21:48:58 2016 +0000
Revision:
6:71b489e70063
Parent:
5:be347c6040c1
Text tweaking

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mleksio 0:c58229885f95 1 /*
mleksio 0:c58229885f95 2 / _____) _ | |
mleksio 0:c58229885f95 3 ( (____ _____ ____ _| |_ _____ ____| |__
mleksio 0:c58229885f95 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
mleksio 0:c58229885f95 5 _____) ) ____| | | || |_| ____( (___| | | |
mleksio 0:c58229885f95 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
mleksio 0:c58229885f95 7 (C)2013 Semtech
mleksio 0:c58229885f95 8 Description: LoRa MAC layer board dependent definitions
mleksio 0:c58229885f95 9 License: Revised BSD License, see LICENSE.TXT file include in the project
mleksio 0:c58229885f95 10 Maintainer: Miguel Luis and Gregory Cristian
mleksio 0:c58229885f95 11 */
mleksio 0:c58229885f95 12 #ifndef __LORAMAC_BOARD_H__
mleksio 0:c58229885f95 13 #define __LORAMAC_BOARD_H__
mleksio 0:c58229885f95 14
mleksio 1:2be292bd43f9 15 #include "utilities.h"
mleksio 0:c58229885f95 16
mleksio 0:c58229885f95 17 /*!
mleksio 0:c58229885f95 18 * Returns individual channel mask
mleksio 0:c58229885f95 19 *
mleksio 0:c58229885f95 20 * \param[IN] channelIndex Channel index 1 based
mleksio 0:c58229885f95 21 * \retval channelMask
mleksio 0:c58229885f95 22 */
mleksio 0:c58229885f95 23 #define LC( channelIndex ) ( uint16_t )( 1 << ( channelIndex - 1 ) )
mleksio 0:c58229885f95 24
Pasi 5:be347c6040c1 25 #define USE_BAND_868
Pasi 5:be347c6040c1 26
mleksio 0:c58229885f95 27 #if defined( USE_BAND_433 )
mleksio 0:c58229885f95 28
mleksio 0:c58229885f95 29 /*!
mleksio 0:c58229885f95 30 * LoRaMac maximum number of channels
mleksio 0:c58229885f95 31 */
mleksio 0:c58229885f95 32 #define LORA_MAX_NB_CHANNELS 16
mleksio 0:c58229885f95 33
mleksio 0:c58229885f95 34 /*!
mleksio 0:c58229885f95 35 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 36 */
mleksio 0:c58229885f95 37 #define LORAMAC_MIN_DATARATE DR_0
mleksio 0:c58229885f95 38
mleksio 0:c58229885f95 39 /*!
mleksio 0:c58229885f95 40 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 41 */
mleksio 0:c58229885f95 42 #define LORAMAC_MAX_DATARATE DR_7
mleksio 0:c58229885f95 43
mleksio 0:c58229885f95 44 /*!
mleksio 0:c58229885f95 45 * Default datarate used by the node
mleksio 0:c58229885f95 46 */
mleksio 0:c58229885f95 47 #define LORAMAC_DEFAULT_DATARATE DR_0
mleksio 0:c58229885f95 48
mleksio 0:c58229885f95 49 /*!
mleksio 0:c58229885f95 50 * Minimal Rx1 receive datarate offset
mleksio 0:c58229885f95 51 */
mleksio 0:c58229885f95 52 #define LORAMAC_MIN_RX1_DR_OFFSET 0
mleksio 0:c58229885f95 53
mleksio 0:c58229885f95 54 /*!
mleksio 0:c58229885f95 55 * Maximal Rx1 receive datarate offset
mleksio 0:c58229885f95 56 */
mleksio 0:c58229885f95 57 #define LORAMAC_MAX_RX1_DR_OFFSET 5
mleksio 0:c58229885f95 58
mleksio 0:c58229885f95 59 /*!
mleksio 0:c58229885f95 60 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 61 */
mleksio 0:c58229885f95 62 #define LORAMAC_MIN_TX_POWER TX_POWER_M5_DBM
mleksio 0:c58229885f95 63
mleksio 0:c58229885f95 64 /*!
mleksio 0:c58229885f95 65 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 66 */
mleksio 0:c58229885f95 67 #define LORAMAC_MAX_TX_POWER TX_POWER_10_DBM
mleksio 0:c58229885f95 68
mleksio 0:c58229885f95 69 /*!
mleksio 0:c58229885f95 70 * Default Tx output power used by the node
mleksio 0:c58229885f95 71 */
mleksio 0:c58229885f95 72 #define LORAMAC_DEFAULT_TX_POWER TX_POWER_10_DBM
mleksio 0:c58229885f95 73
mleksio 0:c58229885f95 74 /*!
mleksio 0:c58229885f95 75 * LoRaMac TxPower definition
mleksio 0:c58229885f95 76 */
mleksio 0:c58229885f95 77 #define TX_POWER_10_DBM 0
mleksio 0:c58229885f95 78 #define TX_POWER_07_DBM 1
mleksio 0:c58229885f95 79 #define TX_POWER_04_DBM 2
mleksio 0:c58229885f95 80 #define TX_POWER_01_DBM 3
mleksio 0:c58229885f95 81 #define TX_POWER_M2_DBM 4
mleksio 0:c58229885f95 82 #define TX_POWER_M5_DBM 5
mleksio 0:c58229885f95 83
mleksio 0:c58229885f95 84 /*!
mleksio 0:c58229885f95 85 * LoRaMac datarates definition
mleksio 0:c58229885f95 86 */
mleksio 0:c58229885f95 87 #define DR_0 0 // SF12 - BW125
mleksio 0:c58229885f95 88 #define DR_1 1 // SF11 - BW125
mleksio 0:c58229885f95 89 #define DR_2 2 // SF10 - BW125
mleksio 0:c58229885f95 90 #define DR_3 3 // SF9 - BW125
mleksio 0:c58229885f95 91 #define DR_4 4 // SF8 - BW125
mleksio 0:c58229885f95 92 #define DR_5 5 // SF7 - BW125
mleksio 0:c58229885f95 93 #define DR_6 6 // SF7 - BW250
mleksio 0:c58229885f95 94 #define DR_7 7 // FSK
mleksio 0:c58229885f95 95
mleksio 0:c58229885f95 96 /*!
mleksio 0:c58229885f95 97 * Second reception window channel definition.
mleksio 0:c58229885f95 98 */
mleksio 0:c58229885f95 99 // Channel = { Frequency [Hz], Datarate }
mleksio 0:c58229885f95 100 #define RX_WND_2_CHANNEL { 434665000, DR_0 }
mleksio 0:c58229885f95 101
mleksio 0:c58229885f95 102 /*!
mleksio 0:c58229885f95 103 * LoRaMac maximum number of bands
mleksio 0:c58229885f95 104 */
mleksio 0:c58229885f95 105 #define LORA_MAX_NB_BANDS 1
mleksio 0:c58229885f95 106
mleksio 0:c58229885f95 107 // Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
mleksio 0:c58229885f95 108 #define BAND0 { 100, TX_POWER_10_DBM, 0, 0 } // 1.0 %
mleksio 0:c58229885f95 109
mleksio 0:c58229885f95 110 /*!
mleksio 0:c58229885f95 111 * LoRaMac default channels
mleksio 0:c58229885f95 112 */
mleksio 0:c58229885f95 113 // Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
mleksio 0:c58229885f95 114 #define LC1 { 433175000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
mleksio 0:c58229885f95 115 #define LC2 { 433375000, { ( ( DR_7 << 4 ) | DR_0 ) }, 0 }
mleksio 0:c58229885f95 116 #define LC3 { 433575000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
mleksio 0:c58229885f95 117
mleksio 0:c58229885f95 118 #elif defined( USE_BAND_780 )
mleksio 0:c58229885f95 119
mleksio 0:c58229885f95 120 /*!
mleksio 0:c58229885f95 121 * LoRaMac maximum number of channels
mleksio 0:c58229885f95 122 */
mleksio 0:c58229885f95 123 #define LORA_MAX_NB_CHANNELS 16
mleksio 0:c58229885f95 124
mleksio 0:c58229885f95 125 /*!
mleksio 0:c58229885f95 126 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 127 */
mleksio 0:c58229885f95 128 #define LORAMAC_MIN_DATARATE DR_0
mleksio 0:c58229885f95 129
mleksio 0:c58229885f95 130 /*!
mleksio 0:c58229885f95 131 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 132 */
mleksio 0:c58229885f95 133 #define LORAMAC_MAX_DATARATE DR_7
mleksio 0:c58229885f95 134
mleksio 0:c58229885f95 135 /*!
mleksio 0:c58229885f95 136 * Default datarate used by the node
mleksio 0:c58229885f95 137 */
mleksio 0:c58229885f95 138 #define LORAMAC_DEFAULT_DATARATE DR_0
mleksio 0:c58229885f95 139
mleksio 0:c58229885f95 140 /*!
mleksio 0:c58229885f95 141 * Minimal Rx1 receive datarate offset
mleksio 0:c58229885f95 142 */
mleksio 0:c58229885f95 143 #define LORAMAC_MIN_RX1_DR_OFFSET 0
mleksio 0:c58229885f95 144
mleksio 0:c58229885f95 145 /*!
mleksio 0:c58229885f95 146 * Maximal Rx1 receive datarate offset
mleksio 0:c58229885f95 147 */
mleksio 0:c58229885f95 148 #define LORAMAC_MAX_RX1_DR_OFFSET 5
mleksio 0:c58229885f95 149
mleksio 0:c58229885f95 150 /*!
mleksio 0:c58229885f95 151 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 152 */
mleksio 0:c58229885f95 153 #define LORAMAC_MIN_TX_POWER TX_POWER_M5_DBM
mleksio 0:c58229885f95 154
mleksio 0:c58229885f95 155 /*!
mleksio 0:c58229885f95 156 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 157 */
mleksio 0:c58229885f95 158 #define LORAMAC_MAX_TX_POWER TX_POWER_10_DBM
mleksio 0:c58229885f95 159
mleksio 0:c58229885f95 160 /*!
mleksio 0:c58229885f95 161 * Default Tx output power used by the node
mleksio 0:c58229885f95 162 */
mleksio 0:c58229885f95 163 #define LORAMAC_DEFAULT_TX_POWER TX_POWER_10_DBM
mleksio 0:c58229885f95 164
mleksio 0:c58229885f95 165 /*!
mleksio 0:c58229885f95 166 * LoRaMac TxPower definition
mleksio 0:c58229885f95 167 */
mleksio 0:c58229885f95 168 #define TX_POWER_10_DBM 0
mleksio 0:c58229885f95 169 #define TX_POWER_07_DBM 1
mleksio 0:c58229885f95 170 #define TX_POWER_04_DBM 2
mleksio 0:c58229885f95 171 #define TX_POWER_01_DBM 3
mleksio 0:c58229885f95 172 #define TX_POWER_M2_DBM 4
mleksio 0:c58229885f95 173 #define TX_POWER_M5_DBM 5
mleksio 0:c58229885f95 174
mleksio 0:c58229885f95 175 /*!
mleksio 0:c58229885f95 176 * LoRaMac datarates definition
mleksio 0:c58229885f95 177 */
mleksio 0:c58229885f95 178 #define DR_0 0 // SF12 - BW125
mleksio 0:c58229885f95 179 #define DR_1 1 // SF11 - BW125
mleksio 0:c58229885f95 180 #define DR_2 2 // SF10 - BW125
mleksio 0:c58229885f95 181 #define DR_3 3 // SF9 - BW125
mleksio 0:c58229885f95 182 #define DR_4 4 // SF8 - BW125
mleksio 0:c58229885f95 183 #define DR_5 5 // SF7 - BW125
mleksio 0:c58229885f95 184 #define DR_6 6 // SF7 - BW250
mleksio 0:c58229885f95 185 #define DR_7 7 // FSK
mleksio 0:c58229885f95 186
mleksio 0:c58229885f95 187 /*!
mleksio 0:c58229885f95 188 * Second reception window channel definition.
mleksio 0:c58229885f95 189 */
mleksio 0:c58229885f95 190 // Channel = { Frequency [Hz], Datarate }
mleksio 0:c58229885f95 191 #define RX_WND_2_CHANNEL { 786000000, DR_0 }
mleksio 0:c58229885f95 192
mleksio 0:c58229885f95 193 /*!
mleksio 0:c58229885f95 194 * LoRaMac maximum number of bands
mleksio 0:c58229885f95 195 */
mleksio 0:c58229885f95 196 #define LORA_MAX_NB_BANDS 1
mleksio 0:c58229885f95 197
mleksio 0:c58229885f95 198 // Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
mleksio 0:c58229885f95 199 #define BAND0 { 100, TX_POWER_10_DBM, 0, 0 } // 1.0 %
mleksio 0:c58229885f95 200
mleksio 0:c58229885f95 201 /*!
mleksio 0:c58229885f95 202 * LoRaMac default channels
mleksio 0:c58229885f95 203 */
mleksio 0:c58229885f95 204 // Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
mleksio 0:c58229885f95 205 #define LC1 { 779500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
mleksio 0:c58229885f95 206 #define LC2 { 779700000, { ( ( DR_7 << 4 ) | DR_0 ) }, 0 }
mleksio 0:c58229885f95 207 #define LC3 { 779900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
mleksio 0:c58229885f95 208
mleksio 0:c58229885f95 209 #elif defined( USE_BAND_868 )
mleksio 0:c58229885f95 210
mleksio 0:c58229885f95 211 /*!
mleksio 0:c58229885f95 212 * LoRaMac maximum number of channels
mleksio 0:c58229885f95 213 */
mleksio 0:c58229885f95 214 #define LORA_MAX_NB_CHANNELS 16
mleksio 0:c58229885f95 215
mleksio 0:c58229885f95 216 /*!
mleksio 0:c58229885f95 217 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 218 */
mleksio 0:c58229885f95 219 #define LORAMAC_MIN_DATARATE DR_0
mleksio 0:c58229885f95 220
mleksio 0:c58229885f95 221 /*!
mleksio 0:c58229885f95 222 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 223 */
mleksio 0:c58229885f95 224 #define LORAMAC_MAX_DATARATE DR_7
mleksio 0:c58229885f95 225
mleksio 0:c58229885f95 226 /*!
mleksio 0:c58229885f95 227 * Default datarate used by the node
mleksio 0:c58229885f95 228 */
mleksio 0:c58229885f95 229 #define LORAMAC_DEFAULT_DATARATE DR_0
mleksio 0:c58229885f95 230
mleksio 0:c58229885f95 231 /*!
mleksio 0:c58229885f95 232 * Minimal Rx1 receive datarate offset
mleksio 0:c58229885f95 233 */
mleksio 0:c58229885f95 234 #define LORAMAC_MIN_RX1_DR_OFFSET 0
mleksio 0:c58229885f95 235
mleksio 0:c58229885f95 236 /*!
mleksio 0:c58229885f95 237 * Maximal Rx1 receive datarate offset
mleksio 0:c58229885f95 238 */
mleksio 0:c58229885f95 239 #define LORAMAC_MAX_RX1_DR_OFFSET 5
mleksio 0:c58229885f95 240
mleksio 0:c58229885f95 241 /*!
mleksio 0:c58229885f95 242 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 243 */
mleksio 0:c58229885f95 244 #define LORAMAC_MIN_TX_POWER TX_POWER_02_DBM
mleksio 0:c58229885f95 245
mleksio 0:c58229885f95 246 /*!
mleksio 0:c58229885f95 247 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 248 */
mleksio 0:c58229885f95 249 #define LORAMAC_MAX_TX_POWER TX_POWER_20_DBM
mleksio 0:c58229885f95 250
mleksio 0:c58229885f95 251 /*!
mleksio 0:c58229885f95 252 * Default Tx output power used by the node
mleksio 0:c58229885f95 253 */
mleksio 0:c58229885f95 254 #define LORAMAC_DEFAULT_TX_POWER TX_POWER_14_DBM
mleksio 0:c58229885f95 255
mleksio 0:c58229885f95 256 /*!
mleksio 0:c58229885f95 257 * LoRaMac TxPower definition
mleksio 0:c58229885f95 258 */
mleksio 0:c58229885f95 259 #define TX_POWER_20_DBM 0
mleksio 0:c58229885f95 260 #define TX_POWER_14_DBM 1
mleksio 0:c58229885f95 261 #define TX_POWER_11_DBM 2
mleksio 0:c58229885f95 262 #define TX_POWER_08_DBM 3
mleksio 0:c58229885f95 263 #define TX_POWER_05_DBM 4
mleksio 0:c58229885f95 264 #define TX_POWER_02_DBM 5
mleksio 0:c58229885f95 265
mleksio 0:c58229885f95 266 /*!
mleksio 0:c58229885f95 267 * LoRaMac datarates definition
mleksio 0:c58229885f95 268 */
mleksio 0:c58229885f95 269 #define DR_0 0 // SF12 - BW125
mleksio 0:c58229885f95 270 #define DR_1 1 // SF11 - BW125
mleksio 0:c58229885f95 271 #define DR_2 2 // SF10 - BW125
mleksio 0:c58229885f95 272 #define DR_3 3 // SF9 - BW125
mleksio 0:c58229885f95 273 #define DR_4 4 // SF8 - BW125
mleksio 0:c58229885f95 274 #define DR_5 5 // SF7 - BW125
mleksio 0:c58229885f95 275 #define DR_6 6 // SF7 - BW250
mleksio 0:c58229885f95 276 #define DR_7 7 // FSK
mleksio 0:c58229885f95 277
mleksio 0:c58229885f95 278 /*!
mleksio 0:c58229885f95 279 * Second reception window channel definition.
mleksio 0:c58229885f95 280 */
mleksio 0:c58229885f95 281 // Channel = { Frequency [Hz], Datarate }
mleksio 0:c58229885f95 282 #define RX_WND_2_CHANNEL { 869525000, DR_0 }
mleksio 0:c58229885f95 283
mleksio 0:c58229885f95 284 /*!
mleksio 0:c58229885f95 285 * LoRaMac maximum number of bands
mleksio 0:c58229885f95 286 */
mleksio 0:c58229885f95 287 #define LORA_MAX_NB_BANDS 5
mleksio 0:c58229885f95 288
mleksio 0:c58229885f95 289 /*!
mleksio 0:c58229885f95 290 * LoRaMac EU868 default bands
mleksio 0:c58229885f95 291 */
mleksio 0:c58229885f95 292 typedef enum
mleksio 0:c58229885f95 293 {
mleksio 0:c58229885f95 294 BAND_G1_0,
mleksio 0:c58229885f95 295 BAND_G1_1,
mleksio 0:c58229885f95 296 BAND_G1_2,
mleksio 0:c58229885f95 297 BAND_G1_3,
mleksio 0:c58229885f95 298 BAND_G1_4,
mleksio 0:c58229885f95 299 }BandId_t;
mleksio 0:c58229885f95 300
mleksio 0:c58229885f95 301 // Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
mleksio 0:c58229885f95 302 #define BAND0 { 100 , TX_POWER_14_DBM, 0, 0 } // 1.0 %
mleksio 0:c58229885f95 303 #define BAND1 { 100 , TX_POWER_14_DBM, 0, 0 } // 1.0 %
mleksio 0:c58229885f95 304 #define BAND2 { 1000, TX_POWER_14_DBM, 0, 0 } // 0.1 %
mleksio 0:c58229885f95 305 #define BAND3 { 10 , TX_POWER_14_DBM, 0, 0 } // 10.0 %
mleksio 0:c58229885f95 306 #define BAND4 { 100 , TX_POWER_14_DBM, 0, 0 } // 1.0 %
mleksio 0:c58229885f95 307
mleksio 0:c58229885f95 308 /*!
mleksio 0:c58229885f95 309 * LoRaMac default channels
mleksio 0:c58229885f95 310 */
mleksio 0:c58229885f95 311 // Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
mleksio 0:c58229885f95 312 #define LC1 { 868100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 1 }
mleksio 0:c58229885f95 313 #define LC2 { 868300000, { ( ( DR_6 << 4 ) | DR_0 ) }, 1 }
mleksio 0:c58229885f95 314 #define LC3 { 868500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 1 }
mleksio 0:c58229885f95 315
mleksio 0:c58229885f95 316 #elif defined( USE_BAND_915 ) || defined( USE_BAND_915_HYBRID )
mleksio 0:c58229885f95 317
mleksio 0:c58229885f95 318 /*!
mleksio 0:c58229885f95 319 * LoRaMac maximum number of channels
mleksio 0:c58229885f95 320 */
mleksio 0:c58229885f95 321 #define LORA_MAX_NB_CHANNELS 72
mleksio 0:c58229885f95 322
mleksio 0:c58229885f95 323 /*!
mleksio 0:c58229885f95 324 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 325 */
mleksio 0:c58229885f95 326 #define LORAMAC_MIN_DATARATE DR_0
mleksio 0:c58229885f95 327
mleksio 0:c58229885f95 328 /*!
mleksio 0:c58229885f95 329 * Minimal datarate that can be used by the node
mleksio 0:c58229885f95 330 */
mleksio 0:c58229885f95 331 #define LORAMAC_MAX_DATARATE DR_4
mleksio 0:c58229885f95 332
mleksio 0:c58229885f95 333 /*!
mleksio 0:c58229885f95 334 * Default datarate used by the node
mleksio 0:c58229885f95 335 */
mleksio 0:c58229885f95 336 #define LORAMAC_DEFAULT_DATARATE DR_0
mleksio 0:c58229885f95 337
mleksio 0:c58229885f95 338 /*!
mleksio 0:c58229885f95 339 * Minimal Rx1 receive datarate offset
mleksio 0:c58229885f95 340 */
mleksio 0:c58229885f95 341 #define LORAMAC_MIN_RX1_DR_OFFSET 0
mleksio 0:c58229885f95 342
mleksio 0:c58229885f95 343 /*!
mleksio 0:c58229885f95 344 * Maximal Rx1 receive datarate offset
mleksio 0:c58229885f95 345 */
mleksio 0:c58229885f95 346 #define LORAMAC_MAX_RX1_DR_OFFSET 3
mleksio 0:c58229885f95 347
mleksio 0:c58229885f95 348 /*!
mleksio 0:c58229885f95 349 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 350 */
mleksio 0:c58229885f95 351 #define LORAMAC_MIN_TX_POWER TX_POWER_10_DBM
mleksio 0:c58229885f95 352
mleksio 0:c58229885f95 353 /*!
mleksio 0:c58229885f95 354 * Minimal Tx output power that can be used by the node
mleksio 0:c58229885f95 355 */
mleksio 0:c58229885f95 356 #define LORAMAC_MAX_TX_POWER TX_POWER_30_DBM
mleksio 0:c58229885f95 357
mleksio 0:c58229885f95 358 /*!
mleksio 0:c58229885f95 359 * Default Tx output power used by the node
mleksio 0:c58229885f95 360 */
mleksio 0:c58229885f95 361 #define LORAMAC_DEFAULT_TX_POWER TX_POWER_20_DBM
mleksio 0:c58229885f95 362
mleksio 0:c58229885f95 363 /*!
mleksio 0:c58229885f95 364 * LoRaMac TxPower definition
mleksio 0:c58229885f95 365 */
mleksio 0:c58229885f95 366 #define TX_POWER_30_DBM 0
mleksio 0:c58229885f95 367 #define TX_POWER_28_DBM 1
mleksio 0:c58229885f95 368 #define TX_POWER_26_DBM 2
mleksio 0:c58229885f95 369 #define TX_POWER_24_DBM 3
mleksio 0:c58229885f95 370 #define TX_POWER_22_DBM 4
mleksio 0:c58229885f95 371 #define TX_POWER_20_DBM 5
mleksio 0:c58229885f95 372 #define TX_POWER_18_DBM 6
mleksio 0:c58229885f95 373 #define TX_POWER_16_DBM 7
mleksio 0:c58229885f95 374 #define TX_POWER_14_DBM 8
mleksio 0:c58229885f95 375 #define TX_POWER_12_DBM 9
mleksio 0:c58229885f95 376 #define TX_POWER_10_DBM 10
mleksio 0:c58229885f95 377
mleksio 0:c58229885f95 378 /*!
mleksio 0:c58229885f95 379 * LoRaMac datarates definition
mleksio 0:c58229885f95 380 */
mleksio 0:c58229885f95 381 #define DR_0 0 // SF10 - BW125 |
mleksio 0:c58229885f95 382 #define DR_1 1 // SF9 - BW125 |
mleksio 0:c58229885f95 383 #define DR_2 2 // SF8 - BW125 +-> Up link
mleksio 0:c58229885f95 384 #define DR_3 3 // SF7 - BW125 |
mleksio 0:c58229885f95 385 #define DR_4 4 // SF8 - BW500 |
mleksio 0:c58229885f95 386 #define DR_5 5 // RFU
mleksio 0:c58229885f95 387 #define DR_6 6 // RFU
mleksio 0:c58229885f95 388 #define DR_7 7 // RFU
mleksio 0:c58229885f95 389 #define DR_8 8 // SF12 - BW500 |
mleksio 0:c58229885f95 390 #define DR_9 9 // SF11 - BW500 |
mleksio 0:c58229885f95 391 #define DR_10 10 // SF10 - BW500 |
mleksio 0:c58229885f95 392 #define DR_11 11 // SF9 - BW500 |
mleksio 0:c58229885f95 393 #define DR_12 12 // SF8 - BW500 +-> Down link
mleksio 0:c58229885f95 394 #define DR_13 13 // SF7 - BW500 |
mleksio 0:c58229885f95 395 #define DR_14 14 // RFU |
mleksio 0:c58229885f95 396 #define DR_15 15 // RFU |
mleksio 0:c58229885f95 397
mleksio 0:c58229885f95 398 /*!
mleksio 0:c58229885f95 399 * Second reception window channel definition.
mleksio 0:c58229885f95 400 */
mleksio 0:c58229885f95 401 // Channel = { Frequency [Hz], Datarate }
mleksio 0:c58229885f95 402 #define RX_WND_2_CHANNEL { 923300000, DR_8 }
mleksio 0:c58229885f95 403
mleksio 0:c58229885f95 404 /*!
mleksio 0:c58229885f95 405 * LoRaMac maximum number of bands
mleksio 0:c58229885f95 406 */
mleksio 0:c58229885f95 407 #define LORA_MAX_NB_BANDS 1
mleksio 0:c58229885f95 408
mleksio 0:c58229885f95 409 // Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
mleksio 0:c58229885f95 410 #define BAND0 { 1, TX_POWER_20_DBM, 0, 0 } // 100.0 %
mleksio 0:c58229885f95 411
mleksio 0:c58229885f95 412 /*!
mleksio 0:c58229885f95 413 * LoRaMac default channels
mleksio 0:c58229885f95 414 */
mleksio 0:c58229885f95 415 // Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
mleksio 0:c58229885f95 416 /*
mleksio 0:c58229885f95 417 * US band channels are initialized using a loop in LoRaMacInit function
mleksio 0:c58229885f95 418 * \code
mleksio 0:c58229885f95 419 * // 125 kHz channels
mleksio 0:c58229885f95 420 * for( uint8_t i = 0; i < LORA_MAX_NB_CHANNELS - 8; i++ )
mleksio 0:c58229885f95 421 * {
mleksio 0:c58229885f95 422 * Channels[i].Frequency = 902.3e6 + i * 200e3;
mleksio 0:c58229885f95 423 * Channels[i].DrRange.Value = ( DR_3 << 4 ) | DR_0;
mleksio 0:c58229885f95 424 * Channels[i].Band = 0;
mleksio 0:c58229885f95 425 * }
mleksio 1:2be292bd43f9 426 * // 500 kHz channels
mleksio 0:c58229885f95 427 * for( uint8_t i = LORA_MAX_NB_CHANNELS - 8; i < LORA_MAX_NB_CHANNELS; i++ )
mleksio 0:c58229885f95 428 * {
mleksio 0:c58229885f95 429 * Channels[i].Frequency = 903.0e6 + ( i - ( LORA_MAX_NB_CHANNELS - 8 ) ) * 1.6e6;
mleksio 0:c58229885f95 430 * Channels[i].DrRange.Value = ( DR_4 << 4 ) | DR_4;
mleksio 0:c58229885f95 431 * Channels[i].Band = 0;
mleksio 0:c58229885f95 432 * }
mleksio 0:c58229885f95 433 * \endcode
mleksio 0:c58229885f95 434 */
mleksio 0:c58229885f95 435 #else
mleksio 0:c58229885f95 436 #error "Please define a frequency band in the compiler options."
mleksio 0:c58229885f95 437 #endif
mleksio 0:c58229885f95 438
mleksio 1:2be292bd43f9 439 #endif // __LORAMAC_BOARD_H__