Skip to content

Commit 0062112

Browse files
committed
Added support for new release of ARIB STD-T108 Ver1.4 under AS923 region
1 parent 26dd83c commit 0062112

File tree

4 files changed

+115
-14
lines changed

4 files changed

+115
-14
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@
7979

8080
// Default channel plan for region AS923. Possible selections:
8181
// CHANNEL_PLAN_GROUP_AS923_1, CHANNEL_PLAN_GROUP_AS923_2, CHANNEL_PLAN_GROUP_AS923_3,
82-
// CHANNEL_PLAN_GROUP_AS923_4, CHANNEL_PLAN_GROUP_AS923_1_JP
82+
// CHANNEL_PLAN_GROUP_AS923_4, CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT,
83+
// CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_DC, CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC
8384
"REGION_AS923_DEFAULT_CHANNEL_PLAN":"CHANNEL_PLAN_GROUP_AS923_1",
8485

8586
// Default channel plan for region CN470. Possible selections:

src/mac/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ option(REGION_RU864 "Region RU864" OFF)
3636
set(REGION_LIST REGION_EU868 REGION_US915 REGION_CN779 REGION_EU433 REGION_AU915 REGION_AS923 REGION_CN470 REGION_KR920 REGION_IN865 REGION_RU864)
3737

3838
# AS923 Channel Plan
39-
set(REGION_AS923_DEFAULT_CHANNEL_PLAN_LIST CHANNEL_PLAN_GROUP_AS923_1 CHANNEL_PLAN_GROUP_AS923_2 CHANNEL_PLAN_GROUP_AS923_3 CHANNEL_PLAN_GROUP_AS923_4 CHANNEL_PLAN_GROUP_AS923_1_JP)
39+
set(REGION_AS923_DEFAULT_CHANNEL_PLAN_LIST CHANNEL_PLAN_GROUP_AS923_1 CHANNEL_PLAN_GROUP_AS923_2 CHANNEL_PLAN_GROUP_AS923_3 CHANNEL_PLAN_GROUP_AS923_4 CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_DC CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC)
4040
set(REGION_AS923_DEFAULT_CHANNEL_PLAN CHANNEL_PLAN_GROUP_AS923_1 CACHE STRING "Default channel plan for AS923 is CHANNEL_PLAN_GROUP_AS923_1")
4141
set_property(CACHE REGION_AS923_DEFAULT_CHANNEL_PLAN PROPERTY STRINGS ${REGION_AS923_DEFAULT_CHANNEL_PLAN_LIST})
4242

src/mac/region/RegionAS923.c

Lines changed: 98 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@
4545
*/
4646
#define AS923_CARRIER_SENSE_TIME 5
4747

48+
/*!
49+
* Specifies the reception bandwidth to be used while executing the LBT
50+
* Max channel bandwidth is 200 kHz
51+
*/
52+
#define AS923_LBT_RX_BANDWIDTH 200000
53+
4854
#ifndef REGION_AS923_DEFAULT_CHANNEL_PLAN
4955
#define REGION_AS923_DEFAULT_CHANNEL_PLAN CHANNEL_PLAN_GROUP_AS923_1
5056
#endif
@@ -64,8 +70,8 @@
6470
// -1.8MHz
6571
#define REGION_AS923_FREQ_OFFSET ( ( ~( 0xFFFFB9B0 ) + 1 ) * 100 )
6672

67-
#define AS923_MIN_RF_FREQUENCY 915000000
68-
#define AS923_MAX_RF_FREQUENCY 928000000
73+
#define AS923_MIN_RF_FREQUENCY 920000000
74+
#define AS923_MAX_RF_FREQUENCY 923000000
6975

7076
#elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_3 )
7177

@@ -74,7 +80,7 @@
7480
#define REGION_AS923_FREQ_OFFSET ( ( ~( 0xFFFEFE30 ) + 1 ) * 100 )
7581

7682
#define AS923_MIN_RF_FREQUENCY 915000000
77-
#define AS923_MAX_RF_FREQUENCY 928000000
83+
#define AS923_MAX_RF_FREQUENCY 921000000
7884

7985
#elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_4 )
8086

@@ -85,9 +91,9 @@
8591
#define AS923_MIN_RF_FREQUENCY 917000000
8692
#define AS923_MAX_RF_FREQUENCY 920000000
8793

88-
#elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP )
94+
#elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT )
8995

90-
// Channel plan CHANNEL_PLAN_GROUP_AS923_1_JP
96+
// Channel plan CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT
9197

9298
#define REGION_AS923_FREQ_OFFSET 0
9399

@@ -98,11 +104,77 @@
98104
#define AS923_MIN_RF_FREQUENCY 920600000
99105
#define AS923_MAX_RF_FREQUENCY 923400000
100106

107+
#undef AS923_TX_MAX_DATARATE
108+
#define AS923_TX_MAX_DATARATE DR_5
109+
110+
#undef AS923_RX_MAX_DATARATE
111+
#define AS923_RX_MAX_DATARATE DR_5
112+
113+
#undef AS923_DEFAULT_MAX_EIRP
114+
#define AS923_DEFAULT_MAX_EIRP 13.0f
115+
101116
/*!
102-
* Specifies the reception bandwidth to be used while executing the LBT
103-
* Max channel bandwidth is 200 kHz
117+
* STD-T108 Ver1.4 does not require dwell-time enforcement when using LBT on channels 28 to 38
104118
*/
105-
#define AS923_LBT_RX_BANDWIDTH 200000
119+
#undef AS923_DEFAULT_UPLINK_DWELL_TIME
120+
#define AS923_DEFAULT_UPLINK_DWELL_TIME 0
121+
122+
#elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_DC )
123+
124+
/*
125+
* STD-T108 Ver1.4 allows the use of channels 24 to 38 without LBT.
126+
* However a duty cycle enforcement must be in place
127+
*/
128+
129+
// Channel plan CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_DC
130+
131+
#define REGION_AS923_FREQ_OFFSET 0
132+
133+
/*!
134+
* Restrict AS923 frequencies to channels 24 to 38
135+
* Center frequencies 920.6 MHz to 923.4 MHz @ 200 kHz max bandwidth
136+
*/
137+
#define AS923_MIN_RF_FREQUENCY 920600000
138+
#define AS923_MAX_RF_FREQUENCY 923400000
139+
140+
#undef AS923_TX_MAX_DATARATE
141+
#define AS923_TX_MAX_DATARATE DR_5
142+
143+
#undef AS923_RX_MAX_DATARATE
144+
#define AS923_RX_MAX_DATARATE DR_5
145+
146+
#undef AS923_DEFAULT_MAX_EIRP
147+
#define AS923_DEFAULT_MAX_EIRP 13.0f
148+
149+
/*!
150+
* STD-T108 Ver1.4 does not require dwell-time enforcement when using DC on channels 28 to 38
151+
*/
152+
#undef AS923_DEFAULT_UPLINK_DWELL_TIME
153+
#define AS923_DEFAULT_UPLINK_DWELL_TIME 0
154+
155+
/*!
156+
* Enable duty cycle enforcement
157+
*/
158+
#undef AS923_DUTY_CYCLE_ENABLED
159+
#define AS923_DUTY_CYCLE_ENABLED 1
160+
161+
#elif ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC )
162+
163+
/*
164+
* STD-T108 Ver1.4 allows the use of channels 37 to 61 with LBT and DC.
165+
* However dwell time enforcement must be enabled
166+
*/
167+
168+
// Channel plan CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC
169+
170+
#define REGION_AS923_FREQ_OFFSET 0
171+
172+
/*!
173+
* Restrict AS923 frequencies to channels 37 to 61
174+
* Center frequencies 922.4 MHz to 928.0 MHz @ 200 kHz max bandwidth
175+
*/
176+
#define AS923_MIN_RF_FREQUENCY 922400000
177+
#define AS923_MAX_RF_FREQUENCY 928000000
106178

107179
#undef AS923_TX_MAX_DATARATE
108180
#define AS923_TX_MAX_DATARATE DR_5
@@ -113,6 +185,20 @@
113185
#undef AS923_DEFAULT_MAX_EIRP
114186
#define AS923_DEFAULT_MAX_EIRP 13.0f
115187

188+
/*!
189+
* Enable duty cycle enforcement
190+
*/
191+
#undef AS923_DUTY_CYCLE_ENABLED
192+
#define AS923_DUTY_CYCLE_ENABLED 1
193+
194+
/*!
195+
* STD-T108 Ver1.4 requires a carrier sense time of at least 128 us on channels 37 to 61
196+
*/
197+
#undef AS923_CARRIER_SENSE_TIME
198+
#define AS923_CARRIER_SENSE_TIME 1
199+
200+
#else
201+
#error "Wrong default channel plan selected. Please review compiler options."
116202
#endif
117203

118204
/*
@@ -415,7 +501,8 @@ void RegionAS923InitDefaults( InitDefaultsParams_t* params )
415501
// Update the channels mask
416502
RegionCommonChanMaskCopy( RegionNvmGroup2->ChannelsMask, RegionNvmGroup2->ChannelsDefaultMask, CHANNELS_MASK_SIZE );
417503

418-
#if ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP )
504+
#if ( ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT ) || \
505+
( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC ) )
419506
RegionNvmGroup2->RssiFreeThreshold = AS923_RSSI_FREE_TH;
420507
RegionNvmGroup2->CarrierSenseTime = AS923_CARRIER_SENSE_TIME;
421508
#endif
@@ -937,7 +1024,8 @@ LoRaMacStatus_t RegionAS923NextChannel( NextChanParams_t* nextChanParams, uint8_
9371024

9381025
if( status == LORAMAC_STATUS_OK )
9391026
{
940-
#if ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP )
1027+
#if ( ( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT ) || \
1028+
( REGION_AS923_DEFAULT_CHANNEL_PLAN == CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC ) )
9411029
// Executes the LBT algorithm when operating in Japan
9421030
uint8_t channelNext = 0;
9431031

src/mac/region/RegionAS923.h

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,22 @@ extern "C"
7070
#define CHANNEL_PLAN_GROUP_AS923_4 4
7171

7272
/*!
73-
* Channel plan group AS923-1 for Japan
73+
* Channel plan group AS923-1 for Japan - channels 24 to 38 Listen Before Talk
7474
* AS923_FREQ_OFFSET = 0
7575
*/
76-
#define CHANNEL_PLAN_GROUP_AS923_1_JP 5
76+
#define CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_LBT 5
77+
78+
/*!
79+
* Channel plan group AS923-1 for Japan - channels 24 to 38 Duty Cycle
80+
* AS923_FREQ_OFFSET = 0
81+
*/
82+
#define CHANNEL_PLAN_GROUP_AS923_1_JP_CH24_CH38_DC 6
83+
84+
/*!
85+
* Channel plan group AS923-1 for Japan - channels 37 to 61 Listen Before Talk + Duty Cycle
86+
* AS923_FREQ_OFFSET = 0
87+
*/
88+
#define CHANNEL_PLAN_GROUP_AS923_1_JP_CH37_CH61_LBT_DC 7
7789

7890
/*!
7991
* LoRaMac maximum number of channels

0 commit comments

Comments
 (0)