From 615284c5c8b8169d9f2cf9e0f26127284db96985 Mon Sep 17 00:00:00 2001 From: luis_pereira87 Date: Thu, 25 Apr 2024 13:06:41 +0100 Subject: [PATCH] Add support for USRP X410 to run with 200 MHz bandwidth in FR2 at 120 kHz SCS --- openair1/PHY/NR_TRANSPORT/nr_prach.c | 6 ++++++ openair1/PHY/NR_UE_TRANSPORT/nr_prach.c | 6 ++++++ radio/USRP/usrp_lib.cpp | 16 ++++++++++++---- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/openair1/PHY/NR_TRANSPORT/nr_prach.c b/openair1/PHY/NR_TRANSPORT/nr_prach.c index 95c2c8040b..d103505357 100644 --- a/openair1/PHY/NR_TRANSPORT/nr_prach.c +++ b/openair1/PHY/NR_TRANSPORT/nr_prach.c @@ -350,6 +350,12 @@ void rx_nr_prach_ru(RU_t *ru, dftlen = dftlen*6; break; + case 245760: + // 200 MHz @ 245.76 Ms/s + Ncp <<= 3; + dftlen <<= 3; + break; + default: AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu); } diff --git a/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c b/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c index 3ba71ed3ea..ea24f0a45c 100644 --- a/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c +++ b/openair1/PHY/NR_UE_TRANSPORT/nr_prach.c @@ -366,6 +366,12 @@ int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, int frame, uint8_t dftlen = dftlen*6; break; + case 245760: + // 200 MHz @ 245.76 Ms/s + Ncp <<= 3; + dftlen <<= 3; + break; + default: AssertFatal(1==0,"sample rate %f MHz not supported for numerology %d\n", fp->samples_per_subframe / 1000.0, mu); } diff --git a/radio/USRP/usrp_lib.cpp b/radio/USRP/usrp_lib.cpp index 4218ae7748..ad0404f13d 100644 --- a/radio/USRP/usrp_lib.cpp +++ b/radio/USRP/usrp_lib.cpp @@ -1220,12 +1220,20 @@ extern "C" { LOG_I(HW,"%s() sample_rate:%u\n", __FUNCTION__, (int)openair0_cfg[0].sample_rate); switch ((int)openair0_cfg[0].sample_rate) { + case 245760000: + // from usrp_time_offset + // openair0_cfg[0].samples_per_packet = 2048; + openair0_cfg[0].tx_sample_advance = 15; // to be checked + openair0_cfg[0].tx_bw = 200e6; + openair0_cfg[0].rx_bw = 200e6; + break; + case 184320000: // from usrp_time_offset - //openair0_cfg[0].samples_per_packet = 2048; - openair0_cfg[0].tx_sample_advance = 15; //to be checked - openair0_cfg[0].tx_bw = 100e6; - openair0_cfg[0].rx_bw = 100e6; + // openair0_cfg[0].samples_per_packet = 2048; + openair0_cfg[0].tx_sample_advance = 15; // to be checked + openair0_cfg[0].tx_bw = 100e6; + openair0_cfg[0].rx_bw = 100e6; break; case 122880000: