| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| | |
- Also checks for invalid int_n_step values.
|
| |
| |
| |
| |
| |
| | |
Lowest master clock rate is now 220 kHz. At low clock rates,
the convergence time for the DC offset and quadrature calibration
times is much larger, though.
|
| |
| |
| |
| |
| |
| | |
- gpio_atr_3000 will not blindly use the mask when writing
the ATR and GPIO OUT values. The mask will be ANDed with
the value in the ATR Disable register
|
| | |
|
| |
| |
| |
| |
| | |
- Removed implicit type converstions in ATR address passing
- Changed magic numbers to named constants
|
|/
|
|
|
|
|
|
| |
- Refactored GPIO ATR definitions
- Added new 3000 core with a more efficient API
- Added a separate db_gpio_atr core to control the ATR bus
- Ported b2xx, e3xx and x3xx to the new core
- Minor cleanup
|
| |
|
|
|
|
|
|
|
| |
- b200: compat 11
- b200mini: compat 2
- e300: compat 11
- x300: compat 15
|
| |
|
|
|
|
| |
Removes all DCM reset codes.
|
|
|
|
|
|
| |
Compensate for headroom required to rotate a signal in
the CORDIC. Fixes some CORDIC-related clipping issues,
that reduced ENOB to 15 or 14.5 bits.
|
|
|
|
| |
flush to print cleanly.
|
| |
|
| |
|
|
|
|
|
|
| |
* Unreferenced exceptions in try-catch statements
* Incorrect function documentation
* Unlabelled unused variables
|
|
|
|
| |
user to see, with brevity.
|
| |
|
|
|
|
| |
- It's status is thrown away anyway
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- b200: compat 10
- e300: compat 10
- x300: compat 14
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch addresses issue:
#742 "tx_waveforms seems to produce unexpectedly large image"
Tx Quad Cal performance is temporally dependent with better results
when run after the AD9361 is configured for transmission than at
initialization. This gets is roughly 5-10 dB of additional quadrature
image suppression.
Even better performance can be reached when Tx Quad Cal is run
after streaming and the AD9361 is actively transmitting. Calibration
in this state, however, requires user intervention by retuning the
transmit chain by > 100 MHz. Total IQ suppression should be in the
range of 40-50+ dBFS dependent on operating frequency.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch addresses issue:
#872 "B200: Tx and Rx calibration share same frequency state"
ADI specifies recalibration for certain paths when the LO shifts by
more than 100 MHz. Tx and Rx maintain independent LO frequencies so
use separate values for determining whether to perform re-calibration
at tuning intervals.
Also, maintain last calibration frequencies from initialization and
clock rate changes. Doing so prevents a re-calibration if the first
requested Tx or Rx frequency is close to the default values of
850 and 800 MHz respectively.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Addressed and related issues:
#186 "B200: Catalina RX signal distortion"
#821 "Incorrect behavior with auto DC Offset correction turnned off"
#820 "Rx DC Offset Correction Convergence on B2xx Dependent on Master Clock Rate"
#755 "Demodulate IQ signal amplitude oscillation on B210 at 200 MHz carrier"
Due to recent change "ad9361: Invert phase on Rx LNA bypass path", we
now have uniform phase alignment across the entire gain range. This
drastically improves performance of RF DC tracking - not to be confused
with the - active and input dependent - baseband (BB) DC tracking loop.
RF DC tracking is not affected by input signals and updates during gain
changes. The updated configuration provides improved DC suppression for
operation whether BB tracking loop is enabled or disabled.
New behavior differs from the previous case where disabling BB tracking
would clear all - static and active - calibration tables. Now, static
correction tables are not wiped when BB tracking is turned off.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Patch provides an alternative resolution to issue #807
"B210: severe distortion on In-phase data for some gain settings"
Rx quadrature tracking, an active input-sensitive loop, causes problems
on a handful of receive signals. Problematic signals include pulsed GMSK
and near-DC tones among others.
As an alternative, improve operation when active tracking is disabled.
Run single shot quadrature calibration at the following events to provide
calibrated image suppression. The corrections without active tracking are
not input dependent.
Rx quadrature single shot calibration points:
1. AD9361 initialization
2. Clock rate change
3. Tuning differences greater then 100 MHz when tracking is disabled
Note that if tracking is enabled (default case), this patch has no effect
during streaming. Only the non-default (user set) case is affected.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
|
|
|
|
| |
- Included list header in soft_reg header
- Fixed typo in x300_impl
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
* Cleaned up usage of handles vs. handle pointers
* Store global string for last error thrown
* Removed uhd::device_addr_t handle, added std::vector<std::string> handle
|
| |
| |
| |
| |
| |
| | |
set LibUHD to required
* If required component's dependencies aren't met, CMake will throw an error unless user specifically disables it
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Resolves issue #890
"E300: Does not transmit on master"
Fixes GPIO register mismatch introduced by c2827e9a0b.
"x300, e300: Moved common register names to radio namespace"
With register correction, transmit and LED behaviour performs as
expected.
Signed-off-by: Tom Tsou <tom.tsou@ettus.com>
|
| | |
|
| |
| |
| |
| |
| |
| | |
* Fixes building E300 support in native mode on any Linux system with libudev headers
* Added E300_NATIVE check to e300_common.cpp
* Improved network mode documentation
|
| | |
|
| |
| |
| |
| |
| |
| | |
* Wrapped uhd::device_addrs_t, added find functions for multi_usrp, multi_usrp_clock
* Replaced getopt with public domain implementation
* Minor bugfixes
|
| |
| |
| |
| | |
This preps the code for merging common registers altogether.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
* multi_usrp, multi_usrp_clock, and associated classes accessible through C
* Added Doxygen documentation explaining structure and API
* Simple RX and TX streaming examples
* Unit tests for different parts of C interface and C++ error conversion
|
| |
| |
| |
| |
| | |
* On utility level, force user to use --args=type=foo
* In each loader, throw an error if args are ambiguous
|
| |
| |
| |
| |
| | |
- Fixes USB hang issues on OS X
- Uses usb_errors
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The old code used a non standard (though very common) way
to determine the size of an array.
In order to avoid warnings, pass another parameter to indicate
the size.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
|
| |
| |
| |
| |
| | |
- Added get_register_info function to get bitwidth and R/W access for a registers
- Better error reporting
|