aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/UHDDevice.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-01-19Revert "uhd: Set minimum supported version to 3.9.0"Tom Tsou1-0/+6
This reverts commit 93ca09ea61d044e5f8662b28bf084c808cac4f2c. Ettus Research recommends the use of 3.9 series of UHD releases, but requiring this version has lead to issues with broken OBS and packaged binaries by Debian, Ubuntu, and other distributions. Change-Id: Ie6b175ac6d46d091937380c79fdd0125b16ec75f Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-01-11uhd: Add X300 sample timing for 4 SPSTom Tsou1-0/+1
Previously only 4/1 and 1/1 configurations Tx/Tx samples-per-symbol were supported. Change-Id: I9153171fe3af95e1cb0d9d35a9287dfde155d184
2016-10-25uhd: Set minimum supported version to 3.9.0Tom Tsou1-6/+0
Versions of UHD prior to 3.9.0 are no longer supported. Rather then backport and ifdef UHD version specific API and behavioral changes, set minimum support to the current LTS release, which is 3.9.0. Change-Id: Id7d15b52cd4e45f1d856a6ef3a84832a28f2dd04 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-10-18uhd: Add missing B200 sample timing for 4 SPS receiveTom Tsou1-1/+2
Only B210 timing was previously set in the timing table. Change-Id: Idc8d1be8201ad086c57dd9b3d6d72d277306cd2b
2016-07-20uhd: Update USRP2/N200/N210 for 4 SPS RxTom Tsou1-2/+2
Requires changing the radioInterface API to pass in Rx side SPS value. Update the (deprecated) diversity configuration to match as well. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-17uhd: Add command line option for GPS referenceTom Tsou1-4/+20
Unlike earlier versions of UHD, the current release (3.9.2) does not automatically select on-board GPSDO as the reference source. Modify the command line settings to allow explicit selection of GPS in addition to the external setting. Simultaneous GPS and external reference settingis disallowed. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-12UHD: Initial LimeSDR support.Alexander Chemeris1-1/+24
Only EDGE mode is currently supported. Traditional 1 SPS Rx / 4 SPS Tx mode requires different sampling rates which is not currently working. RF performance is also sub-optimal and requires more tuning.
2016-07-01mcbts: Add multi-ARFCN radio supportTom Tsou1-8/+46
Add new radio interface "radioInterfaceMulti" for multi-carrier support. Only USRP B200/B210 devices are supported because of sample rate requirements (3.2 Msps). Only 4 SPS operation Tx/RX is supported. 8-PSK is supported. Other options may be added at a later time Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01radioInterface: Convert diversity argument to general typeTom Tsou1-39/+31
Rather than a simple bool type, convert the diversity switch to the device interface specifer: enum InterfaceType { NORMAL, RESAMP_64M, RESAMP_100M, DIVERSITY, }; The more general specifier allows passing in special cases other then selection diversity such as multi-ARFCN support. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-07-01transceiver: Add Rx samples-per-symbol optionTom Tsou1-9/+9
Previous approach was to enable 4 SPS on the receive path only for EDGE use, which is not a requirement for 4 SPS operation. Make the 4 SPS configuration setting directly settable. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-06-22uhd: Fix comment.Alexander Chemeris1-1/+1
It's osmo-trx, not OpenBTS anymore. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Set minimum UHD version requirement for E3XXTom Tsou1-3/+31
Create runtime version check for minimum supported UHD driver when using USRP E3XX devices. The minimum version, 3.9.0, matches supported version on current E3XX release images. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Make device offset check a private methodTom Tsou1-61/+62
Removes extra arguments and a static call. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-05-03uhd: Update default E3XX settingsTom Tsou1-4/+5
Tune timing values after testing on UHD 003.009.002 for E3XX. Table value for 1 sps was off by 10 samples causing improper operation. Table value for 4 sps was shifted by 1 sample for more accurate timing. Also update E3XX description string detection. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-04-26uhd: Correct timing alignment in 8-PSK and GMSK downlink burstsTom Tsou1-2/+2
Delay the EDGE downlink bursts by one symbol in order to match GMSK pulse shaping group delay. The difference in group delay arises from the dual pulse filter combination of the GMSK Laurent represenation whereas 8-PSK uses a single pulse linear filter. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-23EDGE: Fix USRP B210 device supportTom Tsou1-0/+1
Commit 871b8782 "EDGE: Add support for UmTRX" disabled B210 support using EDGE. Add B210 explicitly to the timing offset table to avoid this issue. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-22EDGE: Add support for UmTRX.Alexander Chemeris1-24/+14
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06EDGE: Setup variable sampling on receive pathTom Tsou1-42/+92
Allow setting the device to non single SPS sample rates - mainly running at 4 SPS as the signal processing library does not support other rates. Wider bandwith support is required on the receive path to avoid 8-PSK bandlimiting distortion for EDGE. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-10-21uhd: Remove references to USRP B205Tom Tsou1-11/+2
Certain pre-release versions of the B200mini used the B205 naming, which no longer exists. Update device naming and detection to reflect current UHD product names. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-08-21uhd: Use internal UHD tick conversionsTom Tsou1-26/+10
UHD handles built in tick and floating point timestamp conversion since version 003.005.004. This removes the need for separate UHD timespec to tick conversion. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-08-21uhd: Add version 3.9.0 supportTom Tsou1-6/+26
New functionality includes B200-mini device support and updated timing values to match FPGA changes. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30uhd: Output Rx/Tx gain limits to log to make it more transparent.Alexander Chemeris1-4/+10
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30uhd: Fix UmTRX tuning broken in commit 90f7a01d.Alexander Chemeris1-1/+2
Commit 90f7a01d lost "return" statement. We also should account the fact that offset can be negative. We should return the tuning request immediately after Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30uhd: Fix rounding error in timestamp conversion functions.Alexander Chemeris1-2/+14
Rounding error introduced oscilating timing advance error by regularly overwriting one bit and then skipping one bit. This commit also adds an error message to show up in logs if this ever happens again. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30osmo-trx: Add an option to swap channels on UmTRX.Alexander Chemeris1-3/+3
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-18uhd: Pass UHD command line arguments to constructorTom Tsou1-2/+2
Previous behaviour used UHD command line args string for device search, but did not apply the values to the device constructor. Now use the user passed args string for both find and device construction. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-18umtrx: Don't use DSP tuning, because LMS6002D PLL steps are small enough.Alexander Chemeris1-1/+13
We end up with DSP tuning just for 2-3Hz, which is meaningless and only distort the signal. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-18uhd: Set RF frontend bandwidth for UmTRX to improve signal quality.Alexander Chemeris1-0/+10
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-18UmTRX: Manually set Tx gain stages for the best signal quality.Alexander Chemeris1-4/+41
New UHD versions support split configuration of Tx gain stages. We utilize this to set the gain configuration, optimal for the Tx signal quality. From our measurements, VGA1 must be 18dB plus-minus one and VGA2 is the best when 23dB or lower. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-18uhd: Use full DAC scale with UmTRX to improve signal quality.Alexander Chemeris1-3/+17
Signed-off-by: Tom Tsou <tom@tsou.cc>
2014-12-15b210: Lock dual-channel tuning accessTom Tsou1-0/+3
Frequency tuning is a multi-step process with RF and DDC/DUC protoimns that can be corrupted if both channels attempt to tune at the same time. Signed-off-by: Tom Tsou <tom@tsou.cc>
2014-12-15Transceiver52M: Add X300/X310 and E310 USRP supportTom Tsou1-13/+38
Treat X300 similar to N200 and resample with 100 MHz base clocking, which provides some amount of oversampling for reduced phase error compared to the 1 sample per symbol receiver. Treat E310 similar to 13 MHz rate devices for the lowest computational use. Signed-off-by: Tom Tsou <tom@tsou.cc>
2014-12-15Transceiver52M: Implement POWEROFF commandTom Tsou1-10/+47
Add stop and restart capability through the POWEROFF and POWERON commands. Calling stop causes receive streaming to cease, and I/O threads to shutdown leaving only the control handling thread running. Upon receiving a POWERON command, I/O threads and device streaming are restarted. Proper shutdown of the transceiver is now initiated by the destructor, which calls the stop command internally to wind down and deallocate threads. Signed-off-by: Tom Tsou <tom@tsou.cc>
2014-12-15uhd: Display current timestamp with buffer status errorsTom Tsou1-6/+7
Existing implementation outputs sample buffer parameters, but it is helpful to know the submitted timestamp that led to the errant condition. Signed-off-by: Tom Tsou <tom@tsou.cc>
2014-04-09Transceiver52M: Add E1XX USRP device id and timingsThomas Tsou1-2/+21
Device specific timing settings for the E100 and E110 were missing from the Tx/Rx offset table. Add E1XX identifier and offsets to the device list and offset table respectively. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-03-27Transceiver52M: Allow startup delay for stream alignmentThomas Tsou1-5/+11
UHD requires a small amount of time to align multiple streams at startup. Delay the startup by 100 ms relative to the queried device time (actual delay inclusive of control latencies will be less). The following error is only relevant to dual-channel UHD devices (e.g. Fairwaves UmTRX and Ettus B210). UHD Error: The receive packet handler failed to time-align packets. 1002 received packets were processed by the handler. However, a timestamp match could not be determined. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-03-27Transceiver52M: Set UHD rates before creating streamersThomas Tsou1-12/+12
Recent versions of UHD require setting the sample rate before creating streamers otherwise the following exception occurs. Boost_105300; UHD_003.007.000-0-g7fef199d terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::math::rounding_error> >' what(): Error in function boost::math::round<d>(d): Value -nan can not be represented in the target integer type. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-03-06Transceivert52M: Add option for baseband frequency offsetThomas Tsou1-9/+16
Allow command line setting of the DSP frequency in UHD. All channels will be tuned with the same offset. Dual-channel tuning with the B210, which uses a single LO, will override the command line offset value and set the DSP frequency automatically. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-03-03Transceiver52M: Enable B210 dual channel supportThomas Tsou1-12/+89
The main difference between existing UmTRX dual channel is the single LO on B210 transmit and receive front-ends vs. independent tuning paths. In order to support dual-ARFCN frequencies, baseband offset conversion must be applied by tuning the FPGA CORDIC for each channel. For B210, the following tuning order is applied. 1. If the new frequency of channel A is within the baseband range of channel B, then retune both channels with the RF centered and equal valued positive and negative baseband shifts. 2. If the new frequency of channel A is not with the baseband range of channel B, then retune channel A directly (without manual applied offset). Channel B will no longer be tuned to the previous frequency. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-03-03Transceiver52M: Disable initial device time resetThomas Tsou1-16/+26
With dual-channels on B210, we lose the ability to reset both channels to a synchronized state. Instead, let the timestamp clock start with an arbitary value, which is the first timestamp received from the device, instead of a near-zero value. This approach also makes integration for device, in general, with free-running timestamp clocks. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-03-03Transceiver52M: Split B200 and B210 identifiersThomas Tsou1-7/+13
Differentiate between the two in order to provide enumeration for dual-channel support. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2014-02-13Transceiver52M: Set B2XX clock frequency to 26 MHzThomas Tsou1-1/+1
Change from the original USRP1 rate of 52 MHz. On B2XX we can use 26 MHz, which is closer to the default 32 MHz of the device. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-16Transceiver52M: UHD: Check running status before stopping streamThomas Tsou1-1/+4
On startup errors we get a segfault if we stop and shutdown. This is because we try to send a stop stream command to the device before it has been created. Setup a check for running status before attempting to stop the physical device. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-16Transceiver52M: Output device and operating mode to stdoutThomas Tsou1-12/+17
Very useful user information at startup. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Enable all warnings and resolveThomas Tsou1-0/+2
Mainly basic signed vs unsigned comparisons and intializer ordering. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Add dual channel diversity receiver optionThomas Tsou1-8/+56
This patch add support for dual channel diversity on the receive path. This allows two antennas two shared antennas to be used for each ARFCN handling channel in the receiver. This configuration may improvde performance in multi-path fading environments, however, noise andpotential interference levels are increased due to the higher bandwidth used. The receive path is oversampled by a factor of four for a rate of 1.083333 Msps. If the receive paths are tuned within a maximum channel spacing (currently set at 600 kHz), then both ARFCN frequencies are processed by each channel of the receiver. Otherwise, the frequency shifted diversity path is disabled and standard non-diversity operation takes place. Diversity processing is handled by selecting the path with the higheset energy level and discarding the burst on the second path. Selection occurs on a burst-by-burst basis. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: UHD: Add string descriptors to device-offset pairsThomas Tsou1-10/+11
As we add more channel combintions including but not limited to new devices, signal processing schemes, and diversity, we'll need to handle more special cases. Add string descriptions for just a bit more sanity. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: UHD: Continue on receive and send timeoutsThomas Tsou1-4/+0
With testing on current UHD releases, currently 003.005.xxx series, timeout errors on both receive and transmit are recoverable on network and USB based devices. Remove the fatal error conditions. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Use USRP1 type window for B2xx devicesThomas Tsou1-6/+12
B2xx is a USB based device so use the USRP1 based adaptive flow control window for transmit bursts. This adds additional stability primarily on ARM platforms. Signed-off-by: Thomas Tsou <tom@tsou.cc>
2013-11-15Transceiver52M: Set variable thread priority levelsThomas Tsou1-5/+5
The transceiver and underlying device drivers are threaded. use the following priority levels. 0.50 - UHD driver internal threads 0.45 - Receive device drive thread 0.44 - Transmit device drive thread 0.43 - UHD asynchronous update thread (error reporting) 0.42 - Receive burst processing thread(s) Signed-off-by: Thomas Tsou <tom@tsou.cc>