Revert "Merge remote-tracking branch 'origin/calib-LimeSDR' into develop_integration_w06"

This reverts commit ce14050bb4, reversing
changes made to 0ada1e9e32.
This commit is contained in:
Cedric Roux
2017-02-10 17:32:26 +01:00
parent 94e039ac87
commit 9bf108c227
9 changed files with 32 additions and 4625 deletions
+2 -13
View File
@@ -137,13 +137,10 @@ void PHY_ofdm_mod(int *input, /// pointer to complex input
printf("[PHY] symbol %d/%d offset %d (%p,%p -> %p)\n",i,nb_symbols,i*fftsize+(i*nb_prefix_samples),input,&input[i*fftsize],&output[(i*fftsize) + ((i)*nb_prefix_samples)]);
#endif
#if 0
#ifndef __AVX2__
// handle 128-bit alignment for 128-bit SIMD (SSE4,NEON,AltiVEC)
idft((int16_t *)&input[i*fftsize],
/* TODO: we always use temp, TBC */
//(fftsize==128) ? (int16_t *)temp : (int16_t *)&output[(i*fftsize) + ((1+i)*nb_prefix_samples)],
(int16_t *)temp,
(fftsize==128) ? (int16_t *)temp : (int16_t *)&output[(i*fftsize) + ((1+i)*nb_prefix_samples)],
1);
#else
// on AVX2 need 256-bit alignment
@@ -152,11 +149,7 @@ void PHY_ofdm_mod(int *input, /// pointer to complex input
1);
#endif
#endif /* #if 0 */
idft((int16_t *)&input[i*fftsize],
(int16_t *)temp,
1);
// Copy to frame buffer with Cyclic Extension
// Note: will have to adjust for synchronization offset!
@@ -167,14 +160,10 @@ void PHY_ofdm_mod(int *input, /// pointer to complex input
// msg("Doing cyclic prefix method\n");
#if 0
/* TODO: we always use temp, TBC */
#ifndef __AVX2__
if (fftsize==128)
#else
if (fftsize<=512)
#endif
#endif /* #if 0 */
{
for (j=0; j<fftsize ; j++) {
output_ptr[j] = temp_ptr[j];
-3
View File
@@ -362,9 +362,6 @@ struct openair0_device_t {
*/
int (*trx_set_gains_func)(openair0_device* device, openair0_config_t *openair0_cfg);
/*! \brief Indicator that device is running
*/
int trx_started;
};
/* type of device init function, implemented in shared lib */
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+18 -40
View File
@@ -132,37 +132,26 @@ 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 ret=0;
double rxg_ratio = openair0_cfg[0].rx_gain[0]/openair0_cfg[0].rx_gain_offset[0];
if (rxg_ratio > 1) {
printf("[LMS] Reduce RX Gain 0 by %f dB\n",openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0]);
ret = -1;
rxg_ratio = 1;
}
LMS_SetNormalizedGain(lms_device, LMS_CH_TX, 0, openair0_cfg[0].tx_gain[0]/100.0);
LMS_SetNormalizedGain(lms_device, LMS_CH_RX, 0, .8*rxg_ratio);
/*
// 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;
ret=-1;
gv = 31;
}
if (gv < 0) {
printf("RX Gain 0 too low, increase by %f dB\n",-gv);
gv = 0;
ret=-1;
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);
*/
return(ret);
return(0);
}
/*! \brief Start LMSSDR
@@ -174,8 +163,7 @@ int trx_lms_start(openair0_device *device){
lms_info_str_t list[16]={0};
int n= LMS_GetDeviceList(list);
int ret;
if (n <= 0) {
fprintf(stderr, "No LimeSDR board found: %s\n", n < 0?LMS_GetLastErrorMessage():"");
return -1;
@@ -224,9 +212,9 @@ 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_H, TXA_2");
// LMS_SetAntenna(lms_device, LMS_CH_RX, 0, 1);
// LMS_SetAntenna(lms_device, LMS_CH_TX, 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);
@@ -257,7 +245,7 @@ int trx_lms_start(openair0_device *device){
tx_stream.dataFmt = lms_stream_t::LMS_FMT_I12;
tx_stream.isTx = true;
if ((ret = trx_lms_set_gains(device, device->openair0_cfg))<0) return(-1);
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());
@@ -271,7 +259,6 @@ int trx_lms_start(openair0_device *device){
printf("Failed to start TX stream %s\n",LMS_GetLastErrorMessage());
if (LMS_StartStream(&tx_stream)!=0)
printf("Failed to start Rx stream %s\n",LMS_GetLastErrorMessage());
device->trx_started=1;
return 0;
}
@@ -285,7 +272,6 @@ int trx_lms_stop(openair0_device *device) {
LMS_DestroyStream(lms_device,&rx_stream);
LMS_DestroyStream(lms_device,&tx_stream);
LMS_Close(lms_device);
device->trx_started=0;
}
/*! \brief Set frequencies (TX/RX)
@@ -306,27 +292,19 @@ int trx_lms_set_freq(openair0_device* device, openair0_config_t *openair0_cfg,in
// 31 = 19 dB => 105 dB total gain @ 2.6 GHz
/*! \brief calibration table for LMSSDR */
// V1.2 board
rx_gain_calib_table_t calib_table_lmssdr_1v2[] = {
{3500000000.0,44.0}, // on L PAD
{2660000000.0,62.0}, // on L PAD
{2300000000.0,62.0}, // on L PAD
{1880000000.0,64.0}, // on L PAD
{816000000.0,79.0}, // on W PAD
{-1,0}};
// V1.4 board
rx_gain_calib_table_t calib_table_lmssdr[] = {
{3500000000.0,97.0}, // on H PAD
{2660000000.0,110.0}, // on H PAD
{2300000000.0,106.0}, // on H PAD
{1880000000.0,106.0}, // on H PAD
{816000000.0,102.0}, // on W PAD
{3500000000.0,70.0},
{2660000000.0,80.0},
{2300000000.0,80.0},
{1880000000.0,74.0}, // on W PAD
{816000000.0,76.0}, // on W PAD
{-1,0}};
/*! \brief Get LMSSDR Statistics
* \param device the hardware to use
* \returns 0 in success
@@ -354,7 +332,7 @@ int trx_lms_reset_stats(openair0_device* device) {
*/
void trx_lms_end(openair0_device *device) {
device->trx_started=0;
}
extern "C" {
+4 -44
View File
@@ -88,12 +88,6 @@ typedef struct
//! Sampling rate
double sample_rate;
//! rx RF frequency
double rx_RFfreq;
//! tx RF frequency
double tx_RFfreq;
//! time offset between transmiter timestamp and receiver timestamp;
double tdiff;
@@ -143,8 +137,6 @@ static int trx_usrp_start(openair0_device *device)
s->tx_count = 0;
s->rx_timestamp = 0;
device->trx_started=1;
return 0;
}
/*! \brief Terminate operation of the USRP transceiver -- free all associated resources
@@ -160,7 +152,7 @@ static void trx_usrp_end(openair0_device *device)
s->tx_md.end_of_burst = true;
s->tx_stream->send("", 0, s->tx_md);
s->tx_md.end_of_burst = false;
device->trx_started=0;
}
/*! \brief Called to send samples to the USRP RF target
@@ -396,45 +388,14 @@ int trx_usrp_set_freq(openair0_device* device, openair0_config_t *openair0_cfg,
usrp_state_t *s = (usrp_state_t*)device->priv;
pthread_t f_thread;
double rx_off,tx_off;
printf("Setting USRP TX Freq %f, RX Freq %f\n",openair0_cfg[0].tx_freq[0],openair0_cfg[0].rx_freq[0]);
if (fabs(s->rx_RFfreq-openair0_cfg[0].rx_freq[0])<1e6) {
// induce use of digital tuning
rx_off = s->rx_RFfreq-openair0_cfg[0].rx_freq[0];
}
else { // allow UHD to select the frequnecy
rx_off = 0;
s->rx_RFfreq = openair0_cfg[0].rx_freq[0];
}
if (fabs(s->tx_RFfreq-openair0_cfg[0].tx_freq[0])<1e6) {
// induce use of digital tuning
tx_off = s->tx_RFfreq-openair0_cfg[0].tx_freq[0];
}
else { // allow UHD to select the frequnecy
tx_off = 0;
s->tx_RFfreq = openair0_cfg[0].tx_freq[0];
}
printf("Setting USRP TX Freq %f (%f), RX Freq %f (%f)\n",s->tx_RFfreq,tx_off,s->rx_RFfreq,rx_off);
// spawn a thread to handle the frequency change to not block the calling thread
if (dont_block == 1)
pthread_create(&f_thread,NULL,freq_thread,(void*)device);
else {
uhd::tune_request_t treq_rx(s->rx_RFfreq+rx_off);
treq_rx.rf_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
treq_rx.rf_freq = s->rx_RFfreq;
s->usrp->set_rx_freq(treq_rx);
uhd::tune_request_t treq_tx(s->tx_RFfreq+tx_off);
treq_tx.rf_freq_policy = uhd::tune_request_t::POLICY_MANUAL;
treq_tx.rf_freq = s->tx_RFfreq;
s->usrp->set_tx_freq(treq_tx);
s->usrp->set_tx_freq(device->openair0_cfg[0].tx_freq[0]);
s->usrp->set_rx_freq(device->openair0_cfg[0].rx_freq[0]);
}
return(0);
@@ -492,7 +453,6 @@ int trx_usrp_set_gains(openair0_device* device,
* \param card refers to the hardware index to use
*/
int trx_usrp_stop(openair0_device* device) {
device->trx_started=0;
return(0);
}
+8 -13
View File
@@ -372,15 +372,14 @@ static void *UE_thread_synch(void *arg)
while (sync_var<0)
pthread_cond_wait(&sync_cond, &sync_mutex);
pthread_mutex_unlock(&sync_mutex);
printf("Started device, unlocked sync_mutex (UE_sync_thread)\n");
if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) {
LOG_E(HW,"Could not start the device\n");
oai_exit=1;
}
pthread_mutex_unlock(&sync_mutex);
printf("Started device, unlocked sync_mutex (UE_sync_thread)\n");
while (oai_exit==0) {
if (pthread_mutex_lock(&UE->proc.mutex_synch) != 0) {
@@ -497,14 +496,13 @@ static void *UE_thread_synch(void *arg)
UE->rfdevice.trx_set_freq_func(&UE->rfdevice,&openair0_cfg[0],0);
//UE->rfdevice.trx_set_gains_func(&openair0,&openair0_cfg[0]);
//UE->rfdevice.trx_stop_func(&UE->rfdevice);
// sleep(1);
UE->rfdevice.trx_stop_func(&UE->rfdevice);
sleep(1);
init_frame_parms(&UE->frame_parms,1);
// if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) {
// LOG_E(HW,"Could not start the device\n");
// oai_exit=1;
// }
if (UE->rfdevice.trx_start_func(&UE->rfdevice) != 0 ) {
LOG_E(HW,"Could not start the device\n");
oai_exit=1;
}
}
else {
UE->is_synchronized = 1;
@@ -952,9 +950,6 @@ void *UE_thread(void *arg) {
itti_send_msg_to_task (TASK_NAS_UE, INSTANCE_DEFAULT, message_p);
#endif
while (UE->rfdevice.trx_started==0)
usleep(500);
while (!oai_exit) {
if (UE->is_synchronized == 0) {