aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/lib/mykonos
Commit message (Collapse)AuthorAgeFilesLines
* mpm: ad937x: Fix tuning codeMartin Braun2022-04-111-2/+53
| | | | | | | | | | | | This fixes a known issue (see TODO) that the N300 and N310 have sub-Hz tuning inaccuracies. In fact, these are explained in the corresponding User Guide (UG-992). This commit modifies MPM to return the actual frequency when calling into ad937x_device::tune() or ad937x_device::get_freq(), instead of the nearest integer value. Co-authored-by: Arthur Moraes do Lago <arthurmoraeslago@gmail.com>
* n310: Add Filter API to n310mattprost2022-04-073-17/+70
| | | | | | | | | | Add the Filter API to n3xx specifically for the AD937x device. The TX filter is limited to 32 taps, and the RX filter is limited to 48 taps. This feature requires MPM version 4.2 or later on the device. Co-authored-by: bpadalino <bpadalino@gmail.com> Signed-off-by: mattprost <matt.prost@ni.com>
* n310: Add frontend bandwidth controlmattprost2022-04-071-10/+33
| | | | | | | | | | | | Allow users to control the Mykonos frontend bandwidth settings for Rx and Tx. Note that this operation requires the daughterboard to re-initialize, so it may take some time. Values for frontend filter settings were derived using ADI's AD9371 Filter Wizard. This feature requires MPM version 4.1 or later on the device. Co-authored-by: bpadalino <bpadalino@gmail.com> Signed-off-by: mattprost <matt.prost@ni.com>
* cmake: Replace CMAKE_{SOURCE,BINARY}_DIR with UHD_*_DIRMartin Braun2021-09-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | See the CMake 3.8 documentation on these two variables: https://cmake.org/cmake/help/v3.8/variable/PROJECT-NAME_SOURCE_DIR.html https://cmake.org/cmake/help/v3.8/variable/CMAKE_SOURCE_DIR.html Under normal circumstances, these two are identical. For sub-projects (i.e., when building UHD as part of something else that is also a CMake project), only the former is useful. There is no discernible downside of using UHD_SOURCE_DIR over CMAKE_SOURCE_DIR. This was changed using sed: $ sed -i "s/CMAKE_SOURCE_DIR/UHD_SOURCE_DIR/g" \ `ag -l CMAKE_SOURCE_DIR **/{CMakeLists.txt,*.cmake}` $ sed -i "s/CMAKE_BINARY_DIR/UHD_BINARY_DIR/g" \ `ag -l CMAKE_BINARY_DIR **/{CMakeLists.txt,*.cmake}` At the same time, we also replace the CMake variable UHD_HOST_ROOT (used in MPM) with UHD_SOURCE_DIR. There's no reason to have two variables with the same meaning and different names, but more importantly, this means that UHD_SOURCE_DIR is defined even in those cases where MPM calls into CMake files from UHD without any additional patches. Shoutout to GitHub user marcobergamin for bringing this up.
* host: Add static_assert to prevent meta_range_t(0,0)Lane Kolbly2021-07-141-1/+1
| | | | | | | meta_range_t(0,0) actually calls the iterator-based constructor for meta_range_t, which is almost certainly not the intended constructor for that call syntax. Therefore, we add a static_assert to prevent such usage, and fix all failing instances.
* mpm: Apply clang-format against all .cpp and .hpp filesMartin Braun2020-03-032-4/+7
|
* ad937x: increase default dc offset averaging windowMark Meserve2019-10-101-0/+19
| | | | | | - Fixes an issue where RX with close in signals (<5 kHz) had large discontinuities in IQ data - For <1 kHz, an LO offset should be used
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-084-4/+4
| | | | Updating all SPDX license identifiers to include "-or-later"
* mpm: lib: mykonos: adi_ctrl: Remove unused variableMoritz Fischer2019-02-151-2/+0
| | | | | | | Remove unused variable data_word that never gets set, but never read. Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: lib: mykonos: ad937x_device: Remove unused variableMoritz Fischer2019-02-151-3/+0
| | | | | | | Remove unused 'coerced_value' variable since nobody reads it ever. Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-1613-1382/+1550
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Applying formatting changes to all .cpp and .hpp files in the following directories: ``` find host/examples/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/tests/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/neon/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/dboard/magnesium/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/device3/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/mpmd/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/lib/usrp/x300/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find host/utils/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file find mpm/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Also formatted host/include/, except Cpp03 was used as a the language standard instead of Cpp11. ``` sed -i 's/ Cpp11/ Cpp03/g' .clang-format find host/include/ -iname *.hpp -o -iname *.cpp | \ xargs clang-format -i -style=file ``` Formatting style was designated by the .clang-format file.
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-142-9/+9
| | | | | | | | | | | | | | | | | Also updates our coding style file. Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code (with GNU compliant sed): cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done > convert.sed \ && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \ '*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed (Make sure the backslashes don't get mangled!)
* mpm: ad9371: Accept PID 0x01 as well as 0x03Martin Braun2018-06-281-1/+5
|
* mpm: replace long execution function with async callTrung N Tran2018-04-301-7/+7
| | | | | | - Replace mykonos finish_initialization with async version - Replace myknonos setup_cal with async version - Remove disable_timeout on rpc_server init()
* mg: fix char printout of arm versionMark Meserve2018-03-081-3/+3
|
* mpm: Update all license headersMartin Braun2018-02-1913-26/+26
| | | | | - Fix typo in company name (missing 'a') - Updated SPDX license identifier to version 3.0
* mpm: ad937x: implement set_bw_filterTrung N Tran2018-02-083-6/+24
|
* mpm: ad9371: Enable separate RX1/RX2 enable pinsTrung N Tran2018-02-081-2/+2
| | | | | | For each channel, we have individual enable input trigger. Reviewed-by: Martin Braun <martin.braun@ettus.com>
* mpm: ad937x: RefactorMartin Braun2018-01-223-138/+271
| | | | | | - No functional changes - const-ify parameters and local variables where appropriate - Fix long lines and inconsistent formatting
* mpm: mg: Pass deserializer_lane_xbar to ad937x_configTrung N Tran2018-01-125-6/+10
| | | | | | | | | Slot A and Slot B are different in how the JESD lanes are connected. We now pass in different deserializer_lane_xbar config values for each slot. Reviewed-by: Martin Braun <martin.braun@ettus.com> Reviewed-by: Daniel Jepson <daniel.jepson@ettus.com> Reviewed-by: Mark Meserve <mark.meserve@ni.com>
* mpm: Harmonize all license headerMartin Braun2017-12-2217-182/+43
| | | | Now uses SPDX headers everywhere.
* mpm: Fix floating-point errors in MCR configurationMartin Braun2017-12-223-83/+114
| | | | | | Use fuzzy comparisons for setting the MCR. Reviewed-By: Trung Tran <trung.tran@ettus.com>
* mpm: Enable TX external LO set through args, simplify codeTrung N Tran2017-12-225-48/+67
| | | | | | | Simplify the process of setting external LO without calling through many API layers. Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: mykonos: Increase SPI speed to 20 MHzTrung N Tran2017-12-221-1/+1
|
* mpm: mykonos: Add API to change master clock rateTrung N Tran2017-12-226-9/+126
|
* mpm: ad937x: Add LO lock APIMartin Braun2017-12-221-0/+11
| | | | | Reviewed-By: Steven Bingler <steven.bingler@ni.com> Reviewed-By: Trung Tran <trung.tran@ettus.com>
* mpm: lib: ad937x: Change _get_arm_binary_pathMoritz Fischer2017-12-221-1/+1
| | | | | | | The firmware will be installed under /lib/firmware/adi/mykonos-m3.bin, so going forward this is the path we require. Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: enable RX external LO set through argsTrung N Tran2017-12-225-5/+50
| | | | | | | | | This change allow user to set RX LO of ad9371 to external or internal from args constructor of usrp device. new args is rx_lo_source value can be either internal or external: If there's no rx_lo_source specified or invalid value, default rx_lo is used; which is internal LO. Usage example: usrp_application --args "rx_lo_source=external"
* mg: enable init and track calibration APITrung Tran2017-12-223-58/+75
| | | | | | | | | | | | | | | | | | | Currently, AD9371 turned on most of the calibration and hard coding the turning on process during bringup time. This change enables users to pass in a mask field for init ARM calibration and tracking arm calibration at the time creating USRP device reference. This mask field can be passed through device arguments of: 1/ init_cals : for init ARM calibration masks. This is defined in AD9371 UG-992 table 65. Default to 0x4DFF 2/ tracking_cals : for tracking calibration masks. This is defined in AD9371 UG-992 table 66. Default to 0xC3 Example of pasing in init calibration and tracking calibration mask usrp_application --args "init_cals=0x4f, tracking_cals=0xC3" NOTE: UHD currently expect user to input the correct init_cals and tracking_cals. There's no mechanism to check if init mask and tracking mask are valid. For example if the init mask field not mask 0x4f, the AD9371 will failed to setup.
* mpm: ad937x: Make log functions go through central loggerMartin Braun2017-12-221-5/+26
| | | | Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* mykonos: turn on init cals and tracking calsTrung N Tran2017-12-221-13/+13
|
* ad937x: remove magic constant in ad937x_config_tMark Meserve2017-12-222-4/+7
|
* ad937x: revise ad937x_deviceMark Meserve2017-12-221-8/+8
| | | | | | add comments add TODOs fix set_gain return value
* ad937x: add comments to ad937x_gain_ctrl_configMark Meserve2017-12-222-17/+19
|
* ad937x: update ad937x_firMark Meserve2017-12-222-3/+4
| | | | | add comment label get_fir as const
* ad937x: address TODOs in adi_ctrlMark Meserve2017-12-221-10/+44
| | | | | change error outputs add comments to some functions
* ad937x: cleanup and optimize ad937x_config_tMark Meserve2017-12-222-66/+54
|
* mg: replace bind with lambda in ad937x_deviceMark Meserve2017-12-221-49/+56
|
* mg: add const where possible in ad937x_deviceMark Meserve2017-12-222-43/+43
|
* mg: make timeout values uint32_tMark Meserve2017-12-221-1/+1
|
* mg: add new framer/deframer valuesMark Meserve2017-12-221-3/+6
| | | | | this fixes the channel swap in RX preserves functionality in TX
* adi: update arm_version function signatureMark Meserve2017-12-223-1/+36
|
* adi: reapply our changes to API version 3565Mark Meserve2017-12-224-33/+33
|
* adi: update to API version 3565Mark Meserve2017-12-2214-1191/+3244
|
* mpm: ad937x: Updated controlsMark Meserve2017-12-226-236/+460
|
* mg: General fixesMark Meserve2017-12-224-133/+128
| | | | | - Make DB probe-able - Add RPC client
* mg: bring up linksMark Meserve2017-12-224-64/+76
|
* mpm: Added peek/poke interface to ad937x_ctrlMartin Braun2017-12-221-0/+12
|
* mpm: Major refactoringMartin Braun2017-12-226-74/+107
| | | | | | - Created clean interfaces for SPI and registers - Severed most links to UHD - Added a lockable class which allows exposing mutexes into Python
* mpm: Fixed a plethora of SPI-related issuesMartin Braun2017-12-226-30/+50
|