Espotel / Mbed 2 deprecated LoRaWAN_ELMO_TxRx_Template

Dependencies:   SX1272lib mbed

Committer:
mleksio
Date:
Tue Mar 15 23:27:24 2016 +0000
Revision:
1:2be292bd43f9
Parent:
0:c58229885f95
Child:
5:be347c6040c1
Upgrade related to Semtech stack ver. 4.1.0.

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