Espotel / Mbed 2 deprecated LoRaWAN_ELMO_TxRx_Template

Dependencies:   SX1272lib mbed

Committer:
mleksio
Date:
Wed Dec 16 14:25:16 2015 +0000
Revision:
0:c58229885f95
Child:
1:2be292bd43f9
first commit

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