Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ZhouShuya
OpenXG-RAN
Commits
f7fb0280
Commit
f7fb0280
authored
Jan 20, 2017
by
Cedric Roux
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop-new-LMSSDR' into develop_integration_w03
parents
dec41a2a
1224cf44
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
51 additions
and
37 deletions
+51
-37
cmake_targets/CMakeLists.txt
cmake_targets/CMakeLists.txt
+1
-0
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
+28
-20
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf
...ROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf
+14
-9
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf
...ECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf
+5
-5
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
...TS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
+1
-1
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf
...s/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf
+1
-1
targets/RT/USER/lte-softmodem.c
targets/RT/USER/lte-softmodem.c
+1
-1
No files found.
cmake_targets/CMakeLists.txt
View file @
f7fb0280
...
@@ -554,6 +554,7 @@ elseif (${RF_BOARD} STREQUAL "OAI_BLADERF")
...
@@ -554,6 +554,7 @@ elseif (${RF_BOARD} STREQUAL "OAI_BLADERF")
elseif
(
${
RF_BOARD
}
STREQUAL
"OAI_LMSSDR"
)
elseif
(
${
RF_BOARD
}
STREQUAL
"OAI_LMSSDR"
)
include_directories
(
"
${
OPENAIR_TARGETS
}
/ARCH/LMSSDR/USERSPACE/LIB"
)
include_directories
(
"
${
OPENAIR_TARGETS
}
/ARCH/LMSSDR/USERSPACE/LIB"
)
include_directories
(
"/usr/local/include/lime"
)
LINK_DIRECTORIES
(
"/usr/lib/x86_64-linux-gnu"
)
LINK_DIRECTORIES
(
"/usr/lib/x86_64-linux-gnu"
)
LINK_DIRECTORIES
(
"
${
CMAKE_CURRENT_BINARY_DIR
}
/lmsSDR"
)
LINK_DIRECTORIES
(
"
${
CMAKE_CURRENT_BINARY_DIR
}
/lmsSDR"
)
LINK_DIRECTORIES
(
"
${
CMAKE_CURRENT_BINARY_DIR
}
/lms7002m"
)
LINK_DIRECTORIES
(
"
${
CMAKE_CURRENT_BINARY_DIR
}
/lms7002m"
)
...
...
targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp
View file @
f7fb0280
...
@@ -37,6 +37,8 @@
...
@@ -37,6 +37,8 @@
* @{
* @{
*/
*/
#include <lime/LimeSuite.h>
#include <lime/LimeSuite.h>
#include <lime/LMS7002M.h>
#include <lime/LMS7002M_RegistersMap.h>
#include "common_lib.h"
#include "common_lib.h"
lms_device_t
*
lms_device
;
lms_device_t
*
lms_device
;
...
@@ -46,8 +48,7 @@ lms_stream_t tx_stream;
...
@@ -46,8 +48,7 @@ lms_stream_t tx_stream;
#define RXDCLENGTH 4096
#define RXDCLENGTH 4096
#define NUMBUFF 32
#define NUMBUFF 32
int16_t
cos_fsover8
[
8
]
=
{
2047
,
1447
,
0
,
-
1448
,
-
2047
,
-
1448
,
0
,
1447
};
using
namespace
lime
;
int16_t
cos_3fsover8
[
8
]
=
{
2047
,
-
1448
,
0
,
1447
,
-
2047
,
1447
,
0
,
-
1448
};
extern
"C"
extern
"C"
{
{
...
@@ -131,18 +132,24 @@ void set_rx_gain_offset(openair0_config_t *openair0_cfg, int chain_index) {
...
@@ -131,18 +132,24 @@ void set_rx_gain_offset(openair0_config_t *openair0_cfg, int chain_index) {
*/
*/
int
trx_lms_set_gains
(
openair0_device
*
device
,
openair0_config_t
*
openair0_cfg
)
{
int
trx_lms_set_gains
(
openair0_device
*
device
,
openair0_config_t
*
openair0_cfg
)
{
/* double gv = openair0_cfg[0].rx_gain[0] - openair0_cfg[0].rx_gain_offset[0];
LMS_SetNormalizedGain
(
lms_device
,
LMS_CH_TX
,
0
,
openair0_cfg
[
0
].
tx_gain
[
0
]
/
100.0
);
// RX gains, use low-level setting
double
gv
=
openair0_cfg
[
0
].
rx_gain
[
0
]
-
openair0_cfg
[
0
].
rx_gain_offset
[
0
];
if
(
gv
>
31
)
{
printf
(
"RX Gain 0 too high, reduce by %f dB
\n
"
,
gv
-
31
);
gv
=
31
;
}
if
(
gv
<
0
)
{
printf
(
"RX Gain 0 too low, increase by %f dB
\n
"
,
-
gv
);
gv
=
0
;
}
printf
(
"[LMS] Setting 7002M G_PGA_RBB to %d
\n
"
,
(
int16_t
)
gv
);
LMS7002M
lms7
;
lms7
.
SetConnection
(
lms7
.
GetConnection
());
lms7
.
Modify_SPI_Reg_bits
(
LMS7param
(
G_PGA_RBB
),(
int16_t
)
gv
);
if (gv > 31) {
printf("RX Gain 0 too high, reduce by %f dB\n",gv-31);
gv = 31;
}
if (gv < 0) {
printf("RX Gain 0 too low, increase by %f dB\n",-gv);
gv = 0;
}
printf("[LMS] Setting 7002M G_PGA_RBB to %d\n", (uint16_t)gv);
LMS_WriteParam(lms_device,LMS7param(G_PGA_RBB),(uint16_t)gv);*/
return
(
0
);
return
(
0
);
}
}
...
@@ -205,14 +212,12 @@ int trx_lms_start(openair0_device *device){
...
@@ -205,14 +212,12 @@ int trx_lms_start(openair0_device *device){
}
}
printf
(
"Set TX frequency %f MHz
\n
"
,
device
->
openair0_cfg
[
0
].
tx_freq
[
0
]
/
1e6
);
printf
(
"Set TX frequency %f MHz
\n
"
,
device
->
openair0_cfg
[
0
].
tx_freq
[
0
]
/
1e6
);
printf
(
"Override antenna settings to: RX1_
W
, TXA_2"
);
printf
(
"Override antenna settings to: RX1_
H
, TXA_2"
);
LMS_SetAntenna
(
lms_device
,
LMS_CH_RX
,
0
,
3
);
LMS_SetAntenna
(
lms_device
,
LMS_CH_RX
,
0
,
1
);
LMS_SetAntenna
(
lms_device
,
LMS_CH_TX
,
0
,
2
);
LMS_SetAntenna
(
lms_device
,
LMS_CH_TX
,
0
,
2
);
trx_lms_set_gains
(
device
,
device
->
openair0_cfg
);
/*LMS_SetNormalizedGain(lms_device, LMS_CH_TX, 0, 0.175);
LMS_SetNormalizedGain(lms_device, LMS_CH_RX, 0, 0.65);*/
for
(
int
i
=
0
;
i
<
device
->
openair0_cfg
->
rx_num_channels
;
i
++
)
for
(
int
i
=
0
;
i
<
device
->
openair0_cfg
->
rx_num_channels
;
i
++
)
{
{
if
(
LMS_SetLPFBW
(
lms_device
,
LMS_CH_RX
,
i
,
device
->
openair0_cfg
->
rx_bw
)
!=
0
)
if
(
LMS_SetLPFBW
(
lms_device
,
LMS_CH_RX
,
i
,
device
->
openair0_cfg
->
rx_bw
)
!=
0
)
...
@@ -239,6 +244,9 @@ int trx_lms_start(openair0_device *device){
...
@@ -239,6 +244,9 @@ int trx_lms_start(openair0_device *device){
tx_stream
.
throughputVsLatency
=
0.1
;
tx_stream
.
throughputVsLatency
=
0.1
;
tx_stream
.
dataFmt
=
lms_stream_t
::
LMS_FMT_I12
;
tx_stream
.
dataFmt
=
lms_stream_t
::
LMS_FMT_I12
;
tx_stream
.
isTx
=
true
;
tx_stream
.
isTx
=
true
;
trx_lms_set_gains
(
device
,
device
->
openair0_cfg
);
if
(
LMS_SetupStream
(
lms_device
,
&
tx_stream
)
!=
0
)
if
(
LMS_SetupStream
(
lms_device
,
&
tx_stream
)
!=
0
)
printf
(
"TX stream setup failed %s
\n
"
,
LMS_GetLastErrorMessage
());
printf
(
"TX stream setup failed %s
\n
"
,
LMS_GetLastErrorMessage
());
...
@@ -284,7 +292,7 @@ int trx_lms_set_freq(openair0_device* device, openair0_config_t *openair0_cfg,in
...
@@ -284,7 +292,7 @@ int trx_lms_set_freq(openair0_device* device, openair0_config_t *openair0_cfg,in
// 31 = 19 dB => 105 dB total gain @ 2.6 GHz
// 31 = 19 dB => 105 dB total gain @ 2.6 GHz
/*! \brief calibration table for LMSSDR */
/*! \brief calibration table for LMSSDR */
rx_gain_calib_table_t
calib_table_
sodera
[]
=
{
rx_gain_calib_table_t
calib_table_
lmssdr
[]
=
{
{
3500000000.0
,
70.0
},
{
3500000000.0
,
70.0
},
{
2660000000.0
,
80.0
},
{
2660000000.0
,
80.0
},
{
2300000000.0
,
80.0
},
{
2300000000.0
,
80.0
},
...
@@ -369,7 +377,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg){
...
@@ -369,7 +377,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg){
break
;
break
;
}
}
openair0_cfg
[
0
].
rx_gain_calib_table
=
calib_table_
sodera
;
openair0_cfg
[
0
].
rx_gain_calib_table
=
calib_table_
lmssdr
;
set_rx_gain_offset
(
openair0_cfg
,
0
);
set_rx_gain_offset
(
openair0_cfg
,
0
);
device
->
Mod_id
=
1
;
device
->
Mod_id
=
1
;
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf
View file @
f7fb0280
...
@@ -17,12 +17,15 @@ eNBs =
...
@@ -17,12 +17,15 @@ eNBs =
mobile_country_code
=
"208"
;
mobile_country_code
=
"208"
;
mobile_network_code
=
"9
5
"
;
mobile_network_code
=
"9
3
"
;
//////////
Physical
parameters
:
//////////
Physical
parameters
:
component_carriers
= (
component_carriers
= (
{
{
node_function
=
"eNodeB_3GPP"
;
node_timing
=
"synch_to_ext_device"
;
node_synch_ref
=
0
;
frame_type
=
"FDD"
;
frame_type
=
"FDD"
;
tdd_config
=
3
;
tdd_config
=
3
;
tdd_config_s
=
0
;
tdd_config_s
=
0
;
...
@@ -34,6 +37,7 @@ eNBs =
...
@@ -34,6 +37,7 @@ eNBs =
N_RB_DL
=
50
;
N_RB_DL
=
50
;
Nid_cell_mbsfn
=
0
;
Nid_cell_mbsfn
=
0
;
nb_antennas_tx
=
1
;
nb_antennas_tx
=
1
;
nb_antenna_ports
=
1
;
nb_antennas_rx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
90
;
tx_gain
=
90
;
rx_gain
=
110
;
rx_gain
=
110
;
...
@@ -46,7 +50,7 @@ eNBs =
...
@@ -46,7 +50,7 @@ eNBs =
pucch_nRB_CQI
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
15
;
pdsch_referenceSignalPower
= -
23
;
pdsch_p_b
=
0
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_enable64QAM
=
"DISABLE"
;
...
@@ -64,9 +68,9 @@ eNBs =
...
@@ -64,9 +68,9 @@ eNBs =
srs_ackNackST
=;
srs_ackNackST
=;
srs_MaxUpPts
=;*/
srs_MaxUpPts
=;*/
pusch_p0_Nominal
= -
9
0
;
pusch_p0_Nominal
= -
9
6
;
pusch_alpha
=
"AL1"
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
96
;
pucch_p0_Nominal
= -
104
;
msg3_delta_Preamble
=
6
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
...
@@ -98,6 +102,7 @@ eNBs =
...
@@ -98,6 +102,7 @@ eNBs =
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n310
=
20
;
ue_TimersAndConstants_n311
=
1
;
ue_TimersAndConstants_n311
=
1
;
ue_TransmissionMode
=
1
;
}
}
);
);
...
@@ -133,7 +138,7 @@ eNBs =
...
@@ -133,7 +138,7 @@ eNBs =
//////////
MME
parameters
:
//////////
MME
parameters
:
mme_ip_address
= ( {
ipv4
=
"1
92.168.12.170
"
;
mme_ip_address
= ( {
ipv4
=
"1
27.0.0.3
"
;
ipv6
=
"192:168:30::17"
;
ipv6
=
"192:168:30::17"
;
active
=
"yes"
;
active
=
"yes"
;
preference
=
"ipv4"
;
preference
=
"ipv4"
;
...
@@ -142,11 +147,11 @@ eNBs =
...
@@ -142,11 +147,11 @@ eNBs =
NETWORK_INTERFACES
:
NETWORK_INTERFACES
:
{
{
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
eth0
"
;
ENB_INTERFACE_NAME_FOR_S1_MME
=
"
lo
"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"1
92.168.12.241
/24"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"1
27.0.0.2
/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
eth0
"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"
lo
"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"1
92.168.12.241
/24"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"1
27.0.0.5
/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
};
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf
View file @
f7fb0280
...
@@ -31,7 +31,7 @@ eNBs =
...
@@ -31,7 +31,7 @@ eNBs =
tdd_config_s
=
0
;
tdd_config_s
=
0
;
prefix_type
=
"NORMAL"
;
prefix_type
=
"NORMAL"
;
eutra_band
=
7
;
eutra_band
=
7
;
downlink_frequency
=
26
6
0000000
L
;
downlink_frequency
=
26
8
0000000
L
;
uplink_frequency_offset
= -
120000000
;
uplink_frequency_offset
= -
120000000
;
Nid_cell
=
0
;
Nid_cell
=
0
;
N_RB_DL
=
50
;
N_RB_DL
=
50
;
...
@@ -39,7 +39,7 @@ eNBs =
...
@@ -39,7 +39,7 @@ eNBs =
nb_antenna_ports
=
1
;
nb_antenna_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
6
0
;
tx_gain
=
10
0
;
rx_gain
=
111
;
rx_gain
=
111
;
prach_root
=
0
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_config_index
=
0
;
...
@@ -50,7 +50,7 @@ eNBs =
...
@@ -50,7 +50,7 @@ eNBs =
pucch_nRB_CQI
=
1
;
pucch_nRB_CQI
=
1
;
pucch_nCS_AN
=
0
;
pucch_nCS_AN
=
0
;
pucch_n1_AN
=
32
;
pucch_n1_AN
=
32
;
pdsch_referenceSignalPower
= -
27
;
pdsch_referenceSignalPower
= -
30
;
pdsch_p_b
=
0
;
pdsch_p_b
=
0
;
pusch_n_SB
=
1
;
pusch_n_SB
=
1
;
pusch_enable64QAM
=
"DISABLE"
;
pusch_enable64QAM
=
"DISABLE"
;
...
@@ -70,7 +70,7 @@ eNBs =
...
@@ -70,7 +70,7 @@ eNBs =
pusch_p0_Nominal
= -
96
;
pusch_p0_Nominal
= -
96
;
pusch_alpha
=
"AL1"
;
pusch_alpha
=
"AL1"
;
pucch_p0_Nominal
= -
10
0
;
pucch_p0_Nominal
= -
10
4
;
msg3_delta_Preamble
=
6
;
msg3_delta_Preamble
=
6
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1
=
"deltaF2"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
pucch_deltaF_Format1b
=
"deltaF3"
;
...
@@ -149,7 +149,7 @@ eNBs =
...
@@ -149,7 +149,7 @@ eNBs =
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"127.0.0.2/24"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"127.0.0.2/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"lo"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"lo"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"127.0.0.
4
/24"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"127.0.0.
5
/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
};
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf
View file @
f7fb0280
...
@@ -149,7 +149,7 @@ eNBs =
...
@@ -149,7 +149,7 @@ eNBs =
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"127.0.0.2/24"
;
ENB_IPV4_ADDRESS_FOR_S1_MME
=
"127.0.0.2/24"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"lo"
;
ENB_INTERFACE_NAME_FOR_S1U
=
"lo"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"127.0.0.
4
/24"
;
ENB_IPV4_ADDRESS_FOR_S1U
=
"127.0.0.
5
/24"
;
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
ENB_PORT_FOR_S1U
=
2152
;
# Spec 2152
};
};
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf
View file @
f7fb0280
...
@@ -39,7 +39,7 @@ eNBs =
...
@@ -39,7 +39,7 @@ eNBs =
nb_antennas_ports
=
1
;
nb_antennas_ports
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_tx
=
1
;
nb_antennas_rx
=
1
;
nb_antennas_rx
=
1
;
tx_gain
=
6
0
;
tx_gain
=
10
0
;
rx_gain
=
111
;
rx_gain
=
111
;
prach_root
=
0
;
prach_root
=
0
;
prach_config_index
=
0
;
prach_config_index
=
0
;
...
...
targets/RT/USER/lte-softmodem.c
View file @
f7fb0280
...
@@ -1360,12 +1360,12 @@ void init_openair0() {
...
@@ -1360,12 +1360,12 @@ void init_openair0() {
openair0_cfg
[
card
].
rx_gain
[
i
]
=
PHY_vars_UE_g
[
0
][
0
]
->
rx_total_gain_dB
-
rx_gain_off
;
openair0_cfg
[
card
].
rx_gain
[
i
]
=
PHY_vars_UE_g
[
0
][
0
]
->
rx_total_gain_dB
-
rx_gain_off
;
}
}
openair0_cfg
[
card
].
configFilename
=
rf_config_file
;
printf
(
"Card %d, channel %d, Setting tx_gain %f, rx_gain %f, tx_freq %f, rx_freq %f
\n
"
,
printf
(
"Card %d, channel %d, Setting tx_gain %f, rx_gain %f, tx_freq %f, rx_freq %f
\n
"
,
card
,
i
,
openair0_cfg
[
card
].
tx_gain
[
i
],
card
,
i
,
openair0_cfg
[
card
].
tx_gain
[
i
],
openair0_cfg
[
card
].
rx_gain
[
i
],
openair0_cfg
[
card
].
rx_gain
[
i
],
openair0_cfg
[
card
].
tx_freq
[
i
],
openair0_cfg
[
card
].
tx_freq
[
i
],
openair0_cfg
[
card
].
rx_freq
[
i
]);
openair0_cfg
[
card
].
rx_freq
[
i
]);
openair0_cfg
[
card
].
configFilename
=
rf_config_file
;
}
}
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment