aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/UHDDevice.cpp
AgeCommit message (Collapse)AuthorFilesLines
2017-12-04UHDDevice.cpp: add USRP B205mini supportPiotr Krysik1-0/+1
The B205mini is similar to the B200mini and runs OsmoTRX just fine, so let's make OsmoTRX recogonize and support it too. Change-Id: Iee575121248ea541f7abc49055e49ec2d30904c0
2017-07-10LimeSDR: Fix sample value rangeignasj1-2/+1
when "sc16" stream arg is passed to SoapyUHD sample value range is -32768 to 32767 Change-Id: I58b8b6b71648bd9cbc105ddaaa9a7cf0a31b3d47
2017-07-10LimeSDR: change tx window type to TX_WINDOW_FIXEDignasj1-1/+1
It seems that TX_WINDOW_USRP1 is for devices that do not support tx sync to timestamp. LimeSDR supports it. Changing to TX_WINDOW_FIXED greatly reduces number of "dumping stale buffer" messages Modified to match current master by Harald Welte. Change-Id: I8de5b165ccd72a62b0f16655618e24ca740d9637
2017-07-10LimeSDR: Change device detection to work with USB and PCIe versionsignasj1-1/+1
Modified to match current master by Harald Welte. Change-Id: Ie43610de0b2196d84caf09717ec8c8ca75ab926d
2017-06-29LimeSDR: set approximate tx offset value to make GSM workTom Tsou1-1/+1
may be fine-tuned in the future Modified to match current master by Harald Welte. Change-Id: Ied215ca9e9d9c346c2a654f96785d1b87b075129
2017-06-27uhd: Always specify samples-per-symbol for device lookupTom Tsou1-2/+2
Fix MCBTS device setup where the map access was failing on the wrong assumption that all devices support 1-SPS TX-RX operation. Some devices and/or configurations such as LIMESDR and MCBTS only support running at 4-SPS. Even though certain settings (e.g. number of physical channels or the FPGA clocking rate) are not dependent on the SPS value, we still need to specify because we use SPS as a parameter for device classification. Fixes: OS#2341 Change-Id: I56e939285d585cc38efa6c329e30e3acebb734eb Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-06-16uhd: Fix USRP2/N200/N210 device detectionTom Tsou1-12/+12
Commit 1fb0ce67 "uhd: Use map container for for device parameter access" inadvertently removed the string identifier for the USRP2 and derived devices (N200/N210). Add the missing USRP2 string identifier. Also search for partial string matches in the UHD provided device and mboard stings. This is necessary to guarantee that strings such as "N200r3" instead of just "N200" are sucessfully found. Tested with N200, X310, B200mini and B210 devices. Change-Id: Ide4e22418e2cc469418cba018970cb0eb9906697
2017-06-15uhd: Fix Tx-RX timing offset settingTom Tsou1-1/+1
Integer timestamp offset was set to zero due to bad cast-operator precedence. Change-Id: Ib1f524cc86416699b3c143e5faddb33d61380767
2017-06-14uhd: Add non-UmTRX channel swap supportTom Tsou1-21/+44
Previously an UmTRX-only feature. Change-Id: I4a0e0c1d69e89993158e948535ad33f54e568d2d Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-06-12uhd: Use map container for for device parameter accessTom Tsou1-274/+84
OsmoTRX is written in C++ so we might as well use built-in container types when applicable. Map access allows removal of significant amounts of special device handling code. Aggregate device rates and timing offsets into a single table with access keyed by device/tx-sps/rx-sps tuples. Change-Id: I8660f75a2b2a13488b913c07637bdd0f5f0f4cf9 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2017-05-19radioInterface: Remove UmTRX 'diversity' optionTom Tsou1-49/+7
The 'diversity' option was an experimental 2 antenna receiver implementation for UmTRX. The implementation has not been maintained and current working status is unknown. In addition to code rot, Coverity is triggering errors in the associated code sections. Removal of code cleans up many cases of special handling that were necessary to accommodate the implementation. Change-Id: I46752ccf5dbcffbec806081dec03e69a0fbdcdb7
2017-03-07uhd: Increase MC-BTS FPGA clock rate to 51.2 MHzTom Tsou1-10/+13
Addresses following issues where UHD 3.9 and likely other UHD versions would report a master clock (FPGA) rate error. Update MC-BTS FPGA clock for B200 and B210 to 51.2 MHz, which is supported by all UHD versions. Only B200/B210 is supported for MC-BTS operation. https://osmocom.org/issues/1963 https://osmocom.org/issues/1648 ALERT UHDDevice.cpp:548:set_master_clk: Failed to set master clock rate ALERT UHDDevice.cpp:549:set_master_clk: Requested clock rate 3.2e+06 ALERT UHDDevice.cpp:550:set_master_clk: Actual clock rate 5e+06 Change-Id: I78fb2c0959abd0e666628ba39f433162aafb067e
2017-03-07uhd: Add support for UHD-3.11 logging controlTom Tsou1-4/+10
The logging API changes in UHD-3.11, which causes build failure if not properly handled. Change-Id: I223ebb9fae3f4061e0cb37c05263c1b569e8f628
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>