调试版本,多个调试标识,接收时有bug

Fork of LoRaWAN-lib by Semtech

Committer:
lzbpli
Date:
Mon Sep 26 05:53:55 2016 +0000
Revision:
8:246353e3cbc5
Parent:
7:c16969e0f70f
test version

Who changed what in which revision?

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