Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of LoRaMacLib by
LoRaMac-board.h
- Committer:
- pzheng
- Date:
- 2015-12-03
- Revision:
- 10:66e623be7f8a
- Parent:
- 9:b3ddbad8c5e3
- Child:
- 11:29686c1ac910
File content as of revision 10:66e623be7f8a:
/*
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2013 Semtech
Description: LoRa MAC layer board dependent definitions
License: Revised BSD License, see LICENSE.TXT file include in the project
Maintainer: Miguel Luis and Gregory Cristian
*/
#ifndef __LORAMAC_BOARD_H__
#define __LORAMAC_BOARD_H__
/*!
* LoRaMac maximum number of channels
*/
#define LORA_MAX_NB_CHANNELS 16
/*!
* Minimal datarate that can be used by the node
*/
#define LORAMAC_MIN_DATARATE DR_0
/*!
* Minimal datarate that can be used by the node
*/
#define LORAMAC_MAX_DATARATE DR_7
/*!
* Default datarate used by the node
*/
#define LORAMAC_DEFAULT_DATARATE DR_0
/*!
* Minimal Tx output power that can be used by the node
*/
#define LORAMAC_MIN_TX_POWER TX_POWER_02_DBM
/*!
* Minimal Tx output power that can be used by the node
*/
#define LORAMAC_MAX_TX_POWER TX_POWER_20_DBM
/*!
* Default Tx output power used by the node
*/
#define LORAMAC_DEFAULT_TX_POWER TX_POWER_14_DBM
/*!
* Returns individual channel mask
*
* \param[IN] channelIndex Channel index 1 based
* \retval channelMask
*/
#define LC( channelIndex ) ( uint16_t )( 1 << ( channelIndex - 1 ) )
/*!
* LoRaMac TxPower definition
*/
#define TX_POWER_20_DBM 0
#define TX_POWER_14_DBM 1
#define TX_POWER_11_DBM 2
#define TX_POWER_08_DBM 3
#define TX_POWER_05_DBM 4
#define TX_POWER_02_DBM 5
/*!
* LoRaMac datarates definition
*/
#define DR_0 0 // SF12 - BW125
#define DR_1 1 // SF11 - BW125
#define DR_2 2 // SF10 - BW125
#define DR_3 3 // SF9 - BW125
#define DR_4 4 // SF8 - BW125
#define DR_5 5 // SF7 - BW125
#define DR_6 6 // SF7 - BW250
#define DR_7 7 // FSK
/*!
* LoRaMac default channels definition
*/
#if defined( USE_BAND_868 )
/*!
* Second reception window channel definition.
*/
// Channel = { Frequency [Hz], Datarate }
#define RX_WND_2_CHANNEL { 869525000, DR_3 }
/*!
* LoRaMac maximum number of bands
*/
#define LORA_MAX_NB_BANDS 5
/*!
* LoRaMac EU868 default bands
*/
typedef enum
{
BAND_G1_0,
BAND_G1_1,
BAND_G1_2,
BAND_G1_3,
BAND_G1_4,
}BandId_t;
// Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
#define BAND0 { 100 , TX_POWER_14_DBM, 0, 0 } // 1.0 %
#define BAND1 { 100 , TX_POWER_14_DBM, 0, 0 } // 1.0 %
#define BAND2 { 1000, TX_POWER_14_DBM, 0, 0 } // 0.1 %
#define BAND3 { 10 , TX_POWER_14_DBM, 0, 0 } // 10.0 %
#define BAND4 { 100 , TX_POWER_14_DBM, 0, 0 } // 1.0 %
/*!
* LoRaMac default channels
*/
// Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
#define LC1 { 868100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 1 }
#define LC2 { 868300000, { ( ( DR_6 << 4 ) | DR_0 ) }, 1 }
#define LC3 { 868500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 1 }
#define LC4 { 868850000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC5 { 869050000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC6 { 869525000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
/*#define LC7 { 867700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC8 { 867900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC9 { 868800000, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 }
*/
#elif defined( USE_BAND_915 )
/*!
* Second reception window channel definition.
*/
// Channel = { Frequency [Hz], Datarate }
#define RX_WND_2_CHANNEL { 923100000, DR_3 }
/*!
* LoRaMac maximum number of bands
*/
#define LORA_MAX_NB_BANDS 1
// Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
#define BAND0 { 1, TX_POWER_14_DBM, 0, 0 } // 100.0 %
/*!
* LoRaMac default channels
*/
// Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
#define LC1 { 921500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC2 { 921700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC3 { 921900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
//Added by pzheng 20151203
#define LC4 { 922100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC5 { 922300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC6 { 922500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC7 { 922700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC8 { 922900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC9 { 000000000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#elif defined( USE_BAND_433 )
/*!
* Second reception window channel definition.
*/
// Channel = { Frequency [Hz], Datarate }
#define RX_WND_2_CHANNEL { 434900000, DR_3 }
/*!
* LoRaMac maximum number of bands
*/
#define LORA_MAX_NB_BANDS 1
// Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
#define BAND0 { 1, TX_POWER_14_DBM, 0, 0 } // 100.0 %
/*!
* LoRaMac default channels
*/
// Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
#define LC1 { 433300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC2 { 433500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC3 { 433700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC4 { 433900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC5 { 434100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC6 { 434300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC7 { 434500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC8 { 434700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC9 { 000000000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
//Added by pzheng20151203
#elif defined( USE_BAND_470 )
/*!
* Second reception window channel definition.
*/
// Channel = { Frequency [Hz], Datarate }
#define RX_WND_2_CHANNEL { 471300000, DR_3 }
/*!
* LoRaMac maximum number of bands
*/
#define LORA_MAX_NB_BANDS 1
// Band = { DutyCycle, TxMaxPower, LastTxDoneTime, TimeOff }
#define BAND0 { 1, TX_POWER_14_DBM, 0, 0 } // 100.0 %
/*!
* LoRaMac default channels
*/
// Channel = { Frequency [Hz], { ( ( DrMax << 4 ) | DrMin ) }, Band }
#define LC1 { 471500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC2 { 471700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC3 { 471900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC4 { 472100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC5 { 472300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC6 { 472500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC7 { 472700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC8 { 472900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#define LC9 { 000000000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
#else
#error "Please define a frequency band in the compiler options."
#endif
#endif // __LORAMAC_BOARD_H__
