aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/include
Commit message (Collapse)AuthorAgeFilesLines
* n310: Add Filter API to n310mattprost2022-04-071-1/+1
| | | | | | | | | | 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-1/+6
| | | | | | | | | | | | 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>
* uhd: Add support for the USRP X410Lars Amsel2021-06-109-6/+5461
| | | | | | | | | | | | | | | | Co-authored-by: Lars Amsel <lars.amsel@ni.com> Co-authored-by: Michael Auchter <michael.auchter@ni.com> Co-authored-by: Martin Braun <martin.braun@ettus.com> Co-authored-by: Paul Butler <paul.butler@ni.com> Co-authored-by: Cristina Fuentes <cristina.fuentes-curiel@ni.com> Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com> Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Co-authored-by: Lane Kolbly <lane.kolbly@ni.com> Co-authored-by: Max Köhler <max.koehler@ni.com> Co-authored-by: Andrew Lynch <andrew.lynch@ni.com> Co-authored-by: Grant Meyerhoff <grant.meyerhoff@ni.com> Co-authored-by: Ciro Nishiguchi <ciro.nishiguchi@ni.com> Co-authored-by: Thomas Vogel <thomas.vogel@ni.com>
* mpm: Implement 32 bit register interface with SPIToni Jones2021-03-045-6/+25
| | | | | | | | | Implement SPI transfers which are 12 bytes in length to support access for 32 bit register interfaces. 12 byte transactions are necessary for Titanium MB PS CPLD SPI transactions. This implementation supports 48 bits of TX data per transfer and offsets all flags and data shifts from the end of the TX data portion of the transfer buffer rather than the end of the entire transfer buffer.
* mpm: Apply clang-format against all .cpp and .hpp filesMartin Braun2020-03-034-72/+63
|
* mpm: mg: Make set_master_clock_rate() an async callMartin Braun2019-11-261-0/+15
| | | | | | The ad9371 call set_master_clock_rate() can take a while depending on the rate change, so make it asynchronous in order not to lock out the reclaimer loop.
* e310: Fix issues in MPM and UHDMartin Braun2019-11-261-12/+16
| | | | | | | | | | | - Remove superfluous INFO logging - Improve formatting in many places - Improve Pylint score in various places - Add tear_down to DB object - Simplify custom EEPROM code for E310 - Fix time source selection code - Remove references to GPS_CTRL and GPS_STATUS (are E320 only) - Move clock source control out of MboardRegs object
* Remove proto-RFNoC filesMartin Braun2019-11-262-61/+0
| | | | | | | This commit removes all files and parts of files that are used by proto-RFNoC only. uhd: Fix include CMakeLists.txt, add missing files
* n3xx: mg: Make set_freq() call asynchronousMartin Braun2019-08-221-0/+25
| | | | | | | This does not change the MPM/UHD API, but it makes the set_freq() call asynchronous on the MPM side. The upside is that it will release the GIL if the set_freq() call takes too long, e.g., because of MPM calibrations.
* e310/e320: Move E310 to MPM architecture and refactorSugandha Gupta2019-05-016-1/+142
| | | | | | | | | | | | - Turns the E310 into an MPM device (like N3xx, E320) - Factor out common code between E320 and E310, maximize sharing between the two devices - Remove all pre-MPM E310 code that is no longer needed - Modify MPM to remove all existing overlays before applying new ones (this is necessary to enable idle image mode for E310) Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* mpm: python: Move from Boost.Python to PyBind11Martin Braun2019-04-028-106/+94
|
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-086-6/+6
| | | | Updating all SPDX license identifiers to include "-or-later"
* uhd: mpm: apply clang-format to all filesBrent Stapleton2019-01-1622-738/+670
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-148-21/+21
| | | | | | | | | | | | | | | | | 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: i2c: Open and close i2c file descriptor on every accessAlex Williams2018-11-121-2/+6
| | | | | | This will release the i2c device when it's not in use. If MPM hangs on to the i2c devices, we won't be able to cleanly change FPGA images--The kernel hangs up the process until the refcount drops to zero.
* mpm: i2c: Add vector-based transfer functionAlex Williams2018-10-192-0/+23
| | | | This could lead to a less-restricted implementation for use in Python.
* mpm: Add i2c APIs for simple transfersAlex Williams2018-10-194-0/+108
|
* mpm: initial commit of E320 codeBrent Stapleton2018-07-186-7/+182
| | | | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* mpm: adding adf400x support to chipsBrent Stapleton2018-06-272-1/+10
| | | | | Adding ADF400X driver to MPM. This uses the Boost.Python bound spidev, and is largely a translation from the C++ driver in UHD.
* mpm: replace long execution function with async callTrung N Tran2018-04-301-2/+45
| | | | | | - Replace mykonos finish_initialization with async version - Replace myknonos setup_cal with async version - Remove disable_timeout on rpc_server init()
* mpm: Use configurable components for build systemAlex Williams2018-04-181-1/+4
| | | | | For a minimal build, default to off for components unless the MPM_DEVICE or the user requests it specifically.
* mpm: Update all license headersMartin Braun2018-02-1916-32/+32
| | | | | - Fix typo in company name (missing 'a') - Updated SPDX license identifier to version 3.0
* mpm: ad937x: RefactorMartin Braun2018-01-221-11/+41
| | | | | | - 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-122-2/+4
| | | | | | | | | 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-2221-275/+43
| | | | Now uses SPDX headers everywhere.
* mpm: Add mmap_regs_ifaceMartin Braun2017-12-222-0/+66
| | | | | | | This is a C++-based peek/poke interface into mmaped objects. Useful for better control over UIO devices. Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: Enable TX external LO set through args, simplify codeTrung N Tran2017-12-221-12/+7
| | | | | | | Simplify the process of setting external LO without calling through many API layers. Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: mykonos: Add API to change master clock rateTrung N Tran2017-12-221-0/+4
|
* mpm: ad937x: Add LO lock APIMartin Braun2017-12-221-0/+10
| | | | | Reviewed-By: Steven Bingler <steven.bingler@ni.com> Reviewed-By: Trung Tran <trung.tran@ettus.com>
* mpm: enable RX external LO set through argsTrung N Tran2017-12-221-2/+14
| | | | | | | | | 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-221-2/+89
| | | | | | | | | | | | | | | | | | | 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: Add log_buf classMartin Braun2017-12-222-0/+105
| | | | | | | This is a buffer for log messages, designed for getting log messages from C++ back into Python. Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* ad937x: address TODOs in adi_ctrlMark Meserve2017-12-221-0/+6
| | | | | change error outputs add comments to some functions
* ad937x: add missing docstrings to ctrlMark Meserve2017-12-221-0/+26
|
* mpm: ad937x: Updated controlsMark Meserve2017-12-221-0/+7
|
* mpm: spi: Added 16-bit SPI transactionsMark Meserve2017-12-221-0/+10
| | | | | - Adds convenience method to read 16-bit SPI transactions - Fixes peek16 in spi_regs_iface to actually use 16-bit transactions
* mg: General fixesMark Meserve2017-12-221-3/+2
| | | | | - Make DB probe-able - Add RPC client
* mpm: spi: Added 16-bit access to SPI regsMartin Braun2017-12-222-0/+15
|
* mpm: Enabled selection of SPI modeMartin Braun2017-12-222-1/+3
|
* mpm: eiscat: magnesium: Removed C++-only SPI ifacesMartin Braun2017-12-224-116/+6
| | | | | | | - EISCAT is now Python only with the exception of the definition of the SPI ifaces - Magnesium uses a Python-generated SPI iface - Removed SPI lock from EISCAT dboard
* mpm: eiscat: Added first pass at EISCAT dboard driverMartin Braun2017-12-221-0/+70
|
* mpm: Exposed spi regs iface factory to PythonMartin Braun2017-12-222-0/+38
|
* mpm: Added peek/poke interface to ad937x_ctrlMartin Braun2017-12-221-0/+6
|
* mpm: Major refactoringMartin Braun2017-12-2217-167/+512
| | | | | | - 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-223-5/+5
|
* lmk: Update LMK04828 driver with values for MagnesiumDerek Kozel2017-12-221-1/+1
|
* ad9371: Added JESD init functionalityMark Meserve2017-12-221-0/+22
|
* mpm: mpm reorganizationAndrej Rode2017-12-225-133/+3
|
* mpm: Improved ad937x codeMark Meserve2017-12-222-1/+150
| | | | | | - Add gain control pin configuration - Fixed gcc compilation - Better docstrings
* mpm: fixup for spi and ad937x path changesMark Meserve2017-12-225-42/+3
|