aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/dboard/twinrx
Commit message (Collapse)AuthorAgeFilesLines
* host: Update code base using clang-tidyMartin Braun2021-03-171-26/+29
| | | | | | | | | | | | The checks from the new clang-tidy file are applied to the source tree using: $ find . -name "*.cpp" | sort -u | xargs \ --max-procs 8 --max-args 1 clang-tidy --format-style=file \ --fix -p /path/to/compile_commands.json Note: This is the same procedure as 107a49c0, but applied to all the new code since then.
* twinrx: Fix missing default copy ctorMartin Braun2021-03-041-0/+3
| | | | | | | twinrx_gain_config_t defined an assignment operator, but not a default copy ctor. This is not allowed in modern C++, although compilers let it slide and provide their own defaults. Clang, however, throws a warning so let's fix it.
* host: Update code base using clang-tidyMartin Braun2021-03-042-12/+12
| | | | | | | | | The checks from the new clang-tidy file are applied to the source tree using: $ find . -name "*.cpp" | sort -u | xargs \ --max-procs 8 --max-args 1 clang-tidy --format-style=file \ --fix -p /path/to/compile_commands.json
* ADF535x: Change freq_resolution to mod2michael-west2021-02-041-4/+4
| | | | | | | | | The freq_resolution parameter to the set_frequency() method was confusing. Changing it to the mod2 value clarifies the intention and makes the math to reduce the FRAC2 and MOD2 values much easier to read and maintain. Signed-off-by: michael-west <michael.west@ettus.com>
* TwinRX: Spur cleanupmichael-west2021-02-042-10/+33
| | | | | | | | | | - Reduce FRAC2 and MOD2 values on ADF5356 - Add write to register 10 and delay during retune on ADF5356 - Make negative bleed conditional on integer or fractional N mode for ADF5356 - Tune unused LOs out of band to remove interference Signed-off-by: michael-west <michael.west@ettus.com>
* uhd: Disable optimizations for Mac for build speedSteven Koo2020-08-121-0/+9
| | | | | twinrx_gain_tables takes long time to build with optimizations on macOS / Clang. Turn them off for this platform.
* x300: change default dboard clock rate from 50 to 100 MHzmattprost2020-08-041-21/+30
| | | | | | | | | | | | | | This sets the reference clock for X300 daughterboards (other than UBX) to 100 MHz by default to improve RF performance. Note: The UBX daughterboard requires a clock rate of no more than the max pfd frequency (50 or 25 MHz depending on the hardware rev) in order to maintain phase synchronization. If a UBX daughterboard is present on the X300, the clock rate for all daughterboards will be set to the pfd frequency by default. This is because of the limitation on X300 that requires the daughterboards to use the same clock rate. Signed-off-by: mattprost <matt.prost@ni.com>
* twinrx: Provide power cal IDMartin Braun2020-05-192-0/+16
| | | | | | | | | | | | | | | | | | Note that the TwinRX has a different behaviour if two or one channel are enabled. For that reason, TwinRX requires 8 different sets of calibration data: - For one vs. two channels - For channel 0 and channel 1 - For RX1 and RX2 Since every combination of these settings is possible, that results in 2^3 == 8 combinations. The choice of RX1 vs. RX2 is encoded in the calibration key. The choice of one vs. two channels is also encoded in the calibration key, and is derived using an expert node. Channel 0 and 1 are assumed symmetric, thus, the encoding for those happens in the calibration serial.
* uhd: Apply clang-format against all .cpp and .hpp files in host/Martin Braun2020-03-038-963/+1314
| | | | | Note: template_lvbitx.{cpp,hpp} need to be excluded from the list of files that clang-format gets applied against.
* uhd: fixing MSVC warningsBrent Stapleton2020-01-091-1/+4
| | | | | | | | | | | Small changes to remove various compiler warnings found in MSVC - Adding uhd::narrow_cast to verious spots - wavetable.hpp: all floats literals in the wavetable. - paths_test: unnecessary character escape - replay example: remove unreferenced noc_id - adfXXXX: Fixing qualifiers to match between parent and derived classes - rpc, block_id: Removing unused name in try...catch
* uhd: Replace usage of boost smart pointers with C++11 counterpartsMartin Braun2019-11-261-2/+2
| | | | | | | | | | | | | | | | | | | This removes the following Boost constructs: - boost::shared_ptr, boost::weak_ptr - boost::enable_shared_from_this - boost::static_pointer_cast, boost::dynamic_pointer_cast The appropriate includes were also removed. All C++11 versions of these require #include <memory>. Note that the stdlib and Boost versions have the exact same syntax, they only differ in the namespace (boost vs. std). The modifications were all done using sed, with the exception of boost::scoped_ptr, which was replaced by std::unique_ptr. References to boost::smart_ptr were also removed. boost::intrusive_ptr is not removed in this commit, since it does not have a 1:1 mapping to a C++11 construct.
* twinrx: Make gpio_iface a wb_iface (was: timed_wb_iface)Martin Braun2019-11-261-11/+2
| | | | | This completely eliminates the need for cmd_time_ctrl in the TwinRX codebase, reducing the number of dependencies on the X300 codebase.
* twinrx: set lo2 to use new low spur tuning modeMark Meserve2019-05-071-5/+2
|
* twinrx: add lo charge pump propertiesMark Meserve2019-05-024-19/+94
|
* uhd: Replace all usage of boost::noncopyable with uhd::noncopyableMartin Braun2019-02-151-2/+2
| | | | | | This fixes the build errors that occur due to switching locations of noncopyable.hpp within Boost, and also allows us to remove boost::noncopyable in one fell swoop.
* uhd: skip formatting misc arrays, maps, etc.Brent Stapleton2019-01-161-0/+2
| | | | | | Various data structures are nicely formatted to be human-readable. clang-format makes these structures harder to read, so we can skip formatting these sections.
* TwinRX: Fix tuningMichael West2019-01-021-1/+1
| | | | | - Set SPI clock back to 3 MHz - Fix returned frequency for ADF5355 (rev A and B boards)
* TwinRX: Make routing to LO1 and LO2 mutually exclusivemichael-west2018-12-102-25/+15
|
* TwinRX: Tuning improvementsmichael-west2018-12-101-2/+7
| | | | | | - Added delay for VTUNE calibration as per ADF5355 and ADF5356 data sheets - Increased SPI clock to 10 MHz - Removed write to register 10 during tuning of ADF5356 to match ADF5355 code and reduce tune time
* TwinRX: Fix initializationmichael-west2018-12-101-62/+60
| | | | | | | - Reordered initialization - Fixed issue where LO2 initialization data was being written to LO1 - Moved SPI config to be a member variable so it is not constantly re-created - Changed SPI clock divider from hard-coded value to a calculation based on CODEC rate
* twinrx: enable ch1 lo amps if ch2 is using an external lo sourceMark Meserve2018-08-211-1/+13
| | | | | - AMP_LO1_EN_CH1 controls U2, the amp for the external LO1 port, so it must be set high if channel 2 is using an external LO (external or reimport)
* lib: Purge use of boost::assign, except for uhd::dictMartin Braun2018-05-021-770/+769
| | | | | | | Replaced with initialization lists. Note: uhd::dict does not work with initializer lists without making changes to said data structure. This commit has no functional changes, so keeping the boost::assigns for uhd::dict.
* lib: Purge all references to boost::this_thread::sleep()Martin Braun2018-04-301-2/+3
| | | | Replace with std::this_thread::sleep_for().
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-143-4/+4
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* uhd: Update license headersMartin Braun2018-02-197-7/+13
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* fixup! TwinRX: Added ADF5356 synth and TwinRX Rev C supportDerek Kozel2018-01-121-1/+1
| | | | | | The phase detector frequency value was incorrect for the Rev C LO1 Reviewed-by: Mark Meserve <mark.meserve@ni.com>
* Move all license headers to SPDX format.Martin Braun2017-12-226-72/+6
|
* TwinRX: Added ADF5356 synth and TwinRX Rev C supportDerek Kozel2017-12-083-38/+65
| | | | | | | | | ADF5355 and ADF5356 support merged into adf535x class Default register values moved into regmap Reviewed-By: Martin Braun <martin.braun@ettus.com> Reviewed-By: Ashish Chaudhari <ashish@ettus.com> Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* Merge branch 'maint'Martin Braun2017-06-273-16/+21
|\
| * twinrx: add reimport lo modeMark Meserve2017-06-153-16/+21
| |
* | utils: introduce new logging API and remove msg APIAndrej Rode2017-02-201-2/+3
| |
* | uhd: replace BOOST_FOREACH with C++11 range-based for loopAndrej Rode2017-02-101-3/+3
|/ | | | | Note: This is the first commit that uses for-range, and range-based for-loops are now usable for UHD development.
* Moved default register values into ic_reg_mapDerek Kozel2017-01-301-0/+2
|
* lib: remove statements after throwAndrej Rode2017-01-121-1/+0
|
* Remove all boost:: namespace prefix for uint32_t, int32_t etc. (fixed-width ↵Martin Braun2016-11-085-40/+40
| | | | | | | | types) - Also removes all references to boost/cstdint.hpp and replaces it with stdint.h (The 'correct' replacement would be <cstdint>, but not all of our compilers support that).
* TwinRX: Remove unhelpful warningDerek Kozel2016-10-261-8/+0
|
* TwinRX: Use command time to schedule synchronous eventsDerek Kozel2016-10-262-0/+63
|
* TwinRX: Fixed missing and redundant writes to FE settingsDerek Kozel2016-08-261-0/+6
| | | | | | TwinRX's Nyquist expert now writes the frontend correction settings on every tune to a new frequency. This guarantees phase alignment when timed commands are used and introduces minimal overhead.
* Fix minor spelling errorDerek Kozel2016-08-091-1/+1
|
* Add sleep function to dboard_ifaceKevin Gilbert2016-08-051-4/+3
| | | | | Having this function allows a dboard_iface implementation to be aware of the timing of various calls such as SPI and register writes.
* Added TwinRX daughterboard control.Ashish Chaudhari2016-07-198-0/+3504