aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M
AgeCommit message (Collapse)AuthorFilesLines
2016-03-08EDGE: Combine shared GMSK and 8-PSK demodulator sectionsTom Tsou1-22/+35
Timing recovery and single tap channel compensation are identical in both GMSK and EDGE receivers. This is the section ahead of and including the optional 4-1 downsampler. GMSK and EDGE specific sections operate at 1 SPS. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08EDGE: Add random burst generator filler optionTom Tsou3-6/+18
When EDGE is enabled with the '-e' option, the random burst generator switches from GMSK normal bursts to 8-PSK EDGE bursts. $ ./osmo-trx -e -r 7 Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08sigproc: Add various GSM burst generatorsTom Tsou3-41/+74
Setup generators for empty, random, and dummy bursts. This moves error prone burst length handling out of the Transceiver and into the signal processing core. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08sigproc: Always use 625 sample length bursts with 4 SPSTom Tsou1-12/+12
At 4 samples per symbol, we don't need to maintain the 156/157 sample slot structure to account for the GSM 156.25 sample burst length. Set the 4 SPS Laurent modulator to ignore the guard interval setting and always output 625 sample sized bursts. The EDGE 8-PSK modulator already has this behavior. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-08EDGE: Add interfaces to enable EDGE transceiverTom Tsou4-39/+99
Create EDGE slot type in the Transceiver. When EDGE mode is enabled for a particular slot, blind detection will be performed by correlating against EDGE followed by normal bursts if no EDGE burst is found. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06EDGE: Add 8-PSK modulator and demodulatorTom Tsou4-32/+537
Setup correlator and detection process similar to the GMSK receiver chain. Require 4 SPS sampling on both Rx and Tx paths as 1 SPS sampling adds too much distoration for 8-PSK recovery. Core receiver operations still run at 1 SPS with the exception of fractional delay filtering, which runs at the higher rate. Perform linear equalization to handle the Gaussian pulse induced ISI. The fixed impulse response used for equalizer tap calculation consists of combined EDGE pulse shape filter and effects of the downsampling filter. Note that the non-adaptive equalizer corrects for modulation induced band limiting and does not account for or compensate for fading channel effects. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06EDGE: Setup variable sampling on receive pathTom Tsou9-74/+144
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>
2016-03-06sigproc: Remove normal burst DFE equalizerTom Tsou4-301/+29
DFE equalizer is unused and has been experiencing code rot for multiple years. The effect is a significant amount of baggage being carried in the Transceiver and interfaces. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2016-03-06sigproc: Remove dynamic SPS configurationTom Tsou3-67/+52
Samples per symbol used by the transceiver is not configurable through the socket interface once running, so stop pretending like it could be. Initialize all tables and midambles at start. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-11-09Transceiver52M: Fix ARM build issuesTom Tsou1-11/+11
Patch f147b174 "sigproc: Make convolution and convert input buffers immutable" changed the internal conversion interface with the addition of the const type qualifier. This change was not reflected on ARM builds which led to build failure. Add const qualifier to resolve build issue. 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-21sigproc: Make convolution and convert input buffers immutableTom Tsou5-55/+68
For good practice, use const specifier when applicable. Signed-off-by: Tom Tsou <tom@tsou.cc>
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-30Transceiver: Add support for OsmoBTS style handover.Alexander Chemeris2-4/+47
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30Transceiver: Fix whitespace.Alexander Chemeris1-2/+2
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-30transceiver: Add a debug option to dump selected timeslots to disk.Alexander Chemeris2-1/+27
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30Transceiver: Do not update state->SNRestimate if equalization is disabled.Alexander Chemeris1-4/+4
This also fix a bug of using bool type for noise instead of float. 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-30sigProcLib: Abstract out common part of Normal/RACH burst detection.Alexander Chemeris3-82/+65
As a side change - get rid of passing toa and amp arguments as pointers and use references instead. The commit doesn't change behaviour, but makes the code cleaner. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30Transceiver: Update noise level only when the timeslot is marked as IDLE.Alexander Chemeris2-16/+32
We can't rely on an assumption that if we can't decode a burst - it's noise. There are many rasons why we can't decode a burst even if it's well above the noise level. Just one example is a RACH burst which can be overlapped with another RACH burst up to a level both are completely unrecognizable. Another example is when a burst is destroyed by bad multi-path. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30transceiver: Remove noise/RSSI gating.Alexander Chemeris1-2/+1
It does more harm than good. the current noise calculation is too error prone, so we can't trust it. And we end up loosing perfectly good bursts because of that. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30osmo-trx: Add an option to swap channels on UmTRX.Alexander Chemeris5-9/+16
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30sigProcLib: Check for bogus TOA before using it.Alexander Chemeris1-2/+2
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30Transceiver: Fix clipping detection.Alexander Chemeris3-36/+55
There are two primary changes in this commit: 1) Return values of detect functions changed form bool to int to actually pass the return value from the inner function and notify higher levels about clipping. Previously the information was lost due to conversion to bool. 2) Clipping level is not the final verdict now. We still try to demod a burst and mark it as clipped only if the level is above the clipping level AND we can't demod it. The reasoning for this is that in real life we want to do as much as possible to demod the burst, because we want to get as much from our dynamic range as possible. So a little bit of clipping is fine and is expected. We just don't want too much of it to break our demod. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30Transceiver: Print noise level for each burst in debug mode.Alexander Chemeris2-10/+14
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-07-30osmo-trx: Add a command line option for the dBFS to dBm offset.Alexander Chemeris3-28/+46
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-06-01sigProcLib: Fix burst start phase.Alexander Chemeris1-1/+1
R&S CMD57 complains about the start phase of bursts, particularly it shows -15 to -30 deg of error for the bit 0.5 position (start tail bit). This patch makes it happy. ETSI TS 145 004 section 2.2 describes this: "Before the first bit of the bursts as defined in 3GPP TS 45.002 enters the modulator, the modulator has an internal state as if a modulating bit stream consisting of consecutive ones (di = 1) had entered the differential encoder." Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-06-01transceiver: Drive clock indication form the receive thread.Alexander Chemeris1-10/+5
Receive thread receives data from the device, which is a more stable source of clocking than the transmit side. If transmit side has a hiccup, osmo-trx doesn't send the clock indication, and transmit side is getting completely lost in time. With this patch we ensure that clock indication keeps coming. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-06-01transceiver: Fix out-of-bounds acces in genRandNormalBurst().Alexander Chemeris1-2/+2
We should read gTrainingSequence starting from 0 bit index, not 61 bit index. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-24osmo-trx: Fix random filler command line option.Alexander Chemeris2-3/+13
Filler types was of "bool" type, which prevented it from taking values greter than 1. And RAND filler type has integer value of 2, which was casted to 1 on assigning, which led to a normal filler table being used instead of the RAND one.
2015-05-24Transceiver52M: Change POWERON behavior to return success if the transceiver ↵Ivan Kluchnikov1-1/+1
is already running, and only return fail on device failure
2015-05-20Transceiver: Check TSC values to be in [0..7] range.Alexander Chemeris1-3/+3
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-20Transceiver: Make error response to an unknown command on UDP command ↵Alexander Chemeris1-0/+1
interface more understandable. Previously we just repeated the last response which could confuse a command sender. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-05-19test: Add command line random normal burst optionTom Tsou3-100/+164
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-18sigproc: Add clipping detection on RACH and TSC inputTom Tsou3-6/+43
Alert user of overdriven burst input indicated by a positive threshold detector result. This indication serves as notification that the receive RF gain level is too high for the configured transceiver setup. 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>
2015-05-07radioInterface: Reset sample buffer cursors on each startTom Tsou1-0/+3
Non-zero buffer indices may lead to uplink/downlink timing offset during repeated start/stop cycles. Mainly affects USRP2 and other resampled devices that rely on the buffer to absorb sample block sizes that are not multiples of the burst size. Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
2015-01-19usrp1: Update device API for frequency offset tuningTom Tsou1-1/+1
Commit 8e17df7374367d57 "Add option for baseband frequency offset", modified the base device API to allow for RF tuning, which was never updated for the USRP1. Update the implementation to match the API, however, note actual offset in the USRP1 remains unsupported. 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 Tsou7-102/+229
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-15Transceiver52M: Allow setting gain before POWERONTom Tsou4-30/+26
There is no reason gain settings should not be modifiable when the radio is running or not. 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>