From 963ccb9badab05d0f18d8306c0e9ece420e99fbd Mon Sep 17 00:00:00 2001 From: "Raymond.Knopp" Date: Thu, 17 Nov 2016 11:57:14 +0100 Subject: [PATCH 1/5] some changes for tx-gain setting --- targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp | 21 ++++++------------- .../CONF/enb.band7.tm1.lmssdr.conf | 2 +- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp index c1e3cb81c1..3abcbbac5a 100644 --- a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp +++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp @@ -131,18 +131,8 @@ 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) { - /* 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", (uint16_t)gv); - LMS_WriteParam(lms_device,LMS7param(G_PGA_RBB),(uint16_t)gv);*/ + LMS_SetNormalizedGain(lms_device, LMS_CH_TX, 0, openair0_cfg[0].tx_gain[0]/100.0); + LMS_SetNormalizedGain(lms_device, LMS_CH_RX, 0, openair0_cfg[0].rx_gain[0]/openair0_cfg[0].rx_gain_offset[0]); return(0); } @@ -209,10 +199,8 @@ int trx_lms_start(openair0_device *device){ LMS_SetAntenna(lms_device, LMS_CH_RX, 0, 3); 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++) { if (LMS_SetLPFBW(lms_device,LMS_CH_RX,i,device->openair0_cfg->rx_bw)!=0) @@ -239,6 +227,9 @@ int trx_lms_start(openair0_device *device){ tx_stream.throughputVsLatency = 0.1; tx_stream.dataFmt = lms_stream_t::LMS_FMT_I12; tx_stream.isTx = true; + + trx_lms_set_gains(device, device->openair0_cfg); + if (LMS_SetupStream(lms_device, &tx_stream)!=0) printf("TX stream setup failed %s\n",LMS_GetLastErrorMessage()); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf index b0ef9e0374..d912b1a102 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.lmssdr.conf @@ -39,7 +39,7 @@ eNBs = nb_antennas_ports = 1; nb_antennas_tx = 1; nb_antennas_rx = 1; - tx_gain = 60; + tx_gain = 100; rx_gain = 111; prach_root = 0; prach_config_index = 0; From c1360397ed37cc6e6c05f0ff9cbcf8e18fdd543e Mon Sep 17 00:00:00 2001 From: "Raymond.Knopp" Date: Sat, 7 Jan 2017 14:55:04 +0100 Subject: [PATCH 2/5] CMakeList.txt changes for LMSSDR, lmssdr config file 50 PRB, rx gain setting in lms_lib.cpp --- cmake_targets/CMakeLists.txt | 1 + targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp | 9 ++++++--- .../GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 714a732132..26d297f46f 100644 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -554,6 +554,7 @@ elseif (${RF_BOARD} STREQUAL "OAI_BLADERF") elseif (${RF_BOARD} STREQUAL "OAI_LMSSDR") include_directories("${OPENAIR_TARGETS}/ARCH/LMSSDR/USERSPACE/LIB") + include_directories("/usr/local/include/lime") LINK_DIRECTORIES("/usr/lib/x86_64-linux-gnu") LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/lmsSDR") LINK_DIRECTORIES("${CMAKE_CURRENT_BINARY_DIR}/lms7002m") diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp index c2063527d0..bd58bb7484 100644 --- a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp +++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp @@ -37,6 +37,8 @@ * @{ */ #include +#include +#include #include "common_lib.h" lms_device_t* lms_device; @@ -46,8 +48,7 @@ lms_stream_t tx_stream; #define RXDCLENGTH 4096 #define NUMBUFF 32 -int16_t cos_fsover8[8] = {2047, 1447, 0, -1448, -2047, -1448, 0, 1447}; -int16_t cos_3fsover8[8] = {2047, -1448, 0, 1447, -2047, 1447, 0, -1448}; +using namespace lime; extern "C" { @@ -145,7 +146,9 @@ int trx_lms_set_gains(openair0_device* device, openair0_config_t *openair0_cfg) gv = 0; } printf("[LMS] Setting 7002M G_PGA_RBB to %d\n", (int16_t)gv); - lms7->Modify_SPI_Reg_bits(LMS7param(G_PGA_RBB),(int16_t)gv); + LMS7002M lms7; + lms7.SetConnection(lms7.GetConnection()); + lms7.Modify_SPI_Reg_bits(LMS7param(G_PGA_RBB),(int16_t)gv); return(0); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf index af9ed2c221..b01537d78d 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf @@ -31,7 +31,7 @@ eNBs = tdd_config_s = 0; prefix_type = "NORMAL"; eutra_band = 7; - downlink_frequency = 2660000000L; + downlink_frequency = 2680000000L; uplink_frequency_offset = -120000000; Nid_cell = 0; N_RB_DL = 50; @@ -149,7 +149,7 @@ eNBs = ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.2/24"; 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 }; From c70e705aa43e426b0b2c44ee3bb1e18c32d92895 Mon Sep 17 00:00:00 2001 From: "Raymond.Knopp" Date: Wed, 11 Jan 2017 16:10:27 +0100 Subject: [PATCH 3/5] lmssdr configuration file --- .../GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf index b01537d78d..1e4482364d 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf @@ -70,7 +70,7 @@ eNBs = pusch_p0_Nominal = -96; pusch_alpha = "AL1"; - pucch_p0_Nominal = -100; + pucch_p0_Nominal = -104; msg3_delta_Preamble = 6; pucch_deltaF_Format1 = "deltaF2"; pucch_deltaF_Format1b = "deltaF3"; From 773afc1490bf9c2b5bb7ecbb08052c16d997ecae Mon Sep 17 00:00:00 2001 From: "Raymond.Knopp" Date: Wed, 18 Jan 2017 13:21:07 +0100 Subject: [PATCH 4/5] TX power calibration, RX_W by default --- targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp | 2 +- .../GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp index bd58bb7484..1482115e10 100644 --- a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp +++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp @@ -213,7 +213,7 @@ int trx_lms_start(openair0_device *device){ printf("Set TX frequency %f MHz\n",device->openair0_cfg[0].tx_freq[0]/1e6); printf("Override antenna settings to: RX1_W, TXA_2"); - LMS_SetAntenna(lms_device, LMS_CH_RX, 0, 3); + LMS_SetAntenna(lms_device, LMS_CH_RX, 0, 2); LMS_SetAntenna(lms_device, LMS_CH_TX, 0, 2); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf index 1e4482364d..e12acef703 100644 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf @@ -39,7 +39,7 @@ eNBs = nb_antenna_ports = 1; nb_antennas_tx = 1; nb_antennas_rx = 1; - tx_gain = 60; + tx_gain = 100; rx_gain = 111; prach_root = 0; prach_config_index = 0; @@ -50,7 +50,7 @@ eNBs = pucch_nRB_CQI = 1; pucch_nCS_AN = 0; pucch_n1_AN = 32; - pdsch_referenceSignalPower = -27; + pdsch_referenceSignalPower = -30; pdsch_p_b = 0; pusch_n_SB = 1; pusch_enable64QAM = "DISABLE"; From 1224cf44ae9c1951614a4df3db5a9153fb96fd5c Mon Sep 17 00:00:00 2001 From: "Raymond.Knopp" Date: Wed, 18 Jan 2017 14:14:07 +0100 Subject: [PATCH 5/5] switch RX to HIGH band input by default --- targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp index 1482115e10..3a9878e82b 100644 --- a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp +++ b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp @@ -212,8 +212,8 @@ int trx_lms_start(openair0_device *device){ } printf("Set TX frequency %f MHz\n",device->openair0_cfg[0].tx_freq[0]/1e6); - printf("Override antenna settings to: RX1_W, TXA_2"); - LMS_SetAntenna(lms_device, LMS_CH_RX, 0, 2); + printf("Override antenna settings to: RX1_H, TXA_2"); + LMS_SetAntenna(lms_device, LMS_CH_RX, 0, 1); LMS_SetAntenna(lms_device, LMS_CH_TX, 0, 2);