aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fixup! uhd: Allow pass raw IQ data array to tone generatorLars Amsel2022-01-131-1/+1
|
* fpga: x400: Fix rfnoc_image_core.vh pathWade Fife2022-01-121-1/+1
| | | | | | Previously, when running rfnoc_image_builder, the rfnoc_image_core.vh file in the main x400 directory was being used instead of the one generated by rfnoc_image_builder.
* uhd: Fix non-standard function name macrosMartin Braun2022-01-127-14/+24
| | | | | | | | | | | | | | | | | Throughout UHD, we are using a random mix of __FUNCTION__, __func__, __PRETTY_FUNCTION__, and BOOST_CURRENT_FUNCTION. Note that the first two macros are non-standard (although many compilers understand them), and the last requires Boost. __func__ is available since C++11, but is not the best choice because the C++ standard doesn't require it to be of any specific value. We thus define UHD_FUNCTION and UHD_PRETTY_FUNCTION as portable macros. The former simply contains the undecorated function name, the latter the expanded function with full signature. As it happens, our currently supported compilers didn't have any issues using non-standard macros, so the main fix here is the removal of the Boost macros and the harmonization of the other macros.
* x300: Fix LED configuration for TwinRXMartin Braun2022-01-111-13/+53
| | | | | | | | | | | | | | The problem was that TwinRX has a special LED configuration (unlike most other daughterboards): Since it has two channels, it is possible to stream RX from both SMA ports. In that case, we would light up both LEDs in green (which was not happening, only one LED would light up, depending on which antenna was set last). This fixes the problem and turns on both LEDs when both channels are used, and both SMA ports are selected. Note that the reason for this issue was an incorrect porting of this code from UHD 3. There, we had separate LED ATR objects per channel.
* x300: clang-formatMartin Braun2022-01-1110-61/+65
|
* host: Make get_mb_controller publicLane Kolbly2022-01-111-13/+13
|
* host: tests: Make x4xx unit test support GPIOLane Kolbly2022-01-111-1/+1
|
* uhd: update git://github.com references to httpsSteven Koo2022-01-114-14/+14
| | | | | | | GitHub is removing support for using git://. Switch to https. https://github.blog/2021-09-01-improving-git-protocol-security-github/ Signed-off-by: Steven Koo <steven.koo@ni.com>
* e3xx: Fix frequency queryingMartin Braun2022-01-101-2/+11
| | | | | | | The E3xx devices have one LO per TX/RX, respectively. That means when changing the frequency on channel 0, the frequency on channel 1 also gets changed. The code didn't track this change properly: When setting channel 1, channel 0's frequency didn't match.
* RFNoC: Fix DSP frequency accuracymichael-west2022-01-104-12/+26
| | | | | | | | | | The host code was calculating and programming a 32-bit value for the DSP frequency, but the DDS modules in the FPGA only use the upper 24-bits. This led to inaccurate frequency values being returned. This change corrects the resolution of the value on the host side so an accurate value is returned. Signed-off-by: michael-west <michael.west@ettus.com>
* examples: support multiple streamers in benchmark_rateAndrew Lynch2022-01-101-43/+103
|
* rfnoc: Add atomic item size property for RFNoC blocksLars Amsel2022-01-1011-10/+232
| | | | | | | | | | | | | | | An RFNoC block (like the radio) might require a minimal number of items in each clock cycle, e.g. the radio has to process SPC (samples per cycle). Because data in RFNoC is transmitted and processed in packets, we have to make sure the items inside these packets are a multiple of the items processed in each cycle. This commit adds an atomic item size properties which is set by the radio and adapted by the streamers. The streamers adapt the SPP property of the radio block controller depending on the MTU value. This might lead to an SPP value which does not align with the SPC value of the radio block, hence we add a property resolver for the atomic item size.
* MPM: X410: Set correct tuning wordLars Amsel2022-01-101-1/+7
| | | | | | The comment behind the tuning word is correct but 0x200 does not give a voltage of 1.65V but 2.5V, because the full range of the DAC is 5V not 3.3V).
* rfnoc: transport: Check if streamers are connected in send() and recv()Martin Braun2022-01-102-2/+40
| | | | | | | | | | | | | | | | This adds a check in send() and recv() whether or not the streamer is actually connected. If not, an exception is thrown with the message: [rx_stream] Attempting to call recv() before all channels are connected! or [tx_stream] Attempting to call send() before all channels are connected! The check is a single boolean flag check, but it does add a branch in our hot code. Since this event is unlikely, and only happens in badly configured apps, we will get some help from the CPUs branch prediction to reduce the additional cost of this check.
* uhd: Allow pass raw IQ data array to tone generatorLars Amsel2022-01-101-4/+15
| | | | | | | | Instead of calculating a tone from its parameter it is also useful to pass an precalculated signal to be played. This change modifies the __init__ to take an iq_data as parameter for the internal buffer and moves the generation of the tone from rate, frequency and amplitude into a class method. The streamer parameter was deleted (never used).
* fpga: e320: Connect CTRL_IN pins to FPGAMartin Braun2022-01-102-1/+12
| | | | | | | | These pins control hardware-controlled fast-lock for tuning or cycle-accurate gain control. This commit does nothing to these pins other than expose them into the design and assign them to zero. This does not change the current behaviour (the motherboard has pull-downs on these pins, so they're low by default).
* fpga: e320: Remove copy/paste from N310 codeMartin Braun2022-01-101-9/+0
|
* mpm: x410: Fix docstrings related to GPS sensorsMartin Braun2022-01-102-2/+2
| | | | No code changes, only comment changes.
* mpm: e320/e31x: Fix lo-lock sensorsMartin Braun2022-01-102-16/+39
| | | | | | | | | | | | | The LO-locked sensors on these devices were getting routed to the MPM API call get_lo_lock_sensor(), which takes a 'which' argument (rx or tx). However, UHD wants to pass a 'chan' argument (0 or 1). The way the code was structured, it would always return 'False' (LO not locked) when the argument was neither 'rx' or 'tx'. The solution is to add get_rx_lo_lock_sensor() and get_tx_lo_lock_sensor(), which generate the appropriate 'which' argument, but discard the 'chan' argument (there is only one LO per Tx and Rx, respectively).
* e31x/e320: Amend LO-locked sensor namesMartin Braun2022-01-103-20/+37
| | | | | | | | | In UHD 3, we had two sensors names for LO lock on these devices: lo_lock, and lo_locked. The latter is the more standard, and is checked in examples like rx_samples_to_file. In UHD 4, the latter was removed without comment. This adds the sensor back again and also updates the documentation accordingly.
* host: multi_usrp: Merge set_tx_subdev_spec and set_rx_subdev_specLane Kolbly2022-01-101-99/+67
| | | | | This change simply refactors these methods so that the core of the algorithm is no longer duplicated between them.
* rfnoc: ddc/duc: Improve variable name for _set_freq()Martin Braun2022-01-072-4/+4
| | | | | | | | As Github user johnwstanford points out, the DUC calls the argument 'input_rate', which is wrong (and was copy/pasted from the DDC code). By calling it dds_rate in both cases, we avoid such confusion. This commit only renames a variable. No changes whatsoever.
* lib: SSPH: Fix comment for convert_to_in_buff()Martin Braun2022-01-071-2/+1
| | | | | | | As Github user dylan-baros points out, the comment is copy/pasted from the SRPH. Only comment changes here.
* rfnoc: radio: Fix comment in radio_control_implMartin Braun2022-01-071-1/+1
| | | | | As Github user johnwstanford kindly points out, the comment was incorrect.
* cmake: Set debug to -Og for Clang buildsSteven Koo2022-01-061-0/+1
| | | | | | This fails to link otherwise on macOS Signed-off-by: Steven Koo <steven.koo@ni.com>
* ci: refactor dockerOSName to buildOSNameSteven Koo2022-01-063-16/+16
| | | | | | dockerOSName is misleading because it could be in a bare metal context Signed-off-by: Steven Koo <steven.koo@ni.com>
* ci: build on macOSSteven Koo2022-01-065-7/+69
| | | | | | This adds macOS build support using homebrew Signed-off-by: Steven Koo <steven.koo@ni.com>
* host: Add divider constructor to spi_config_tLane Kolbly2022-01-062-0/+16
|
* host: rf_control: Add internal antenna API abstraction.Lane Kolbly2022-01-056-49/+203
|
* host: tests: Add unit test for ZBX antenna APILane Kolbly2022-01-051-0/+20
|
* host: Make core_iface inheritence virtualLane Kolbly2022-01-051-1/+1
|
* host: Implement operator<< for data_reader_tLane Kolbly2022-01-051-0/+7
|
* lib: Remove superfluous includes of udp_zero_copy.hppMartin Braun2022-01-052-2/+0
|
* uhd: Remove tcp_zero_copyMartin Braun2022-01-054-295/+0
| | | | | This removes the tcp_zero_copy interface, which is not supported by any USRP.
* host: docs: Fix incorrect usage in GPIO docsLane Kolbly2022-01-051-4/+4
|
* host: Add char* overload for device_addr_tLane Kolbly2022-01-053-6/+12
| | | | | | | This allows constructing a multi_usrp using a string constant: ``` auto usrp = uhd::usrp::multi_usrp::make("type=x4xx"); ```
* docs: Fix page on GPIOMartin Braun2022-01-052-52/+21
| | | | | | | | | - Referred to E310 as E3x0, but that's wrong. E320 has a different GPIO bank naming scheme. - Fails to mention N3x0. This change makes the page mostly device-agnostic (X410 GPIO control is still elsewhere). - The first example had a typo (wrong pin was selected in ATR example). - The second example added nothing, and was removed for clarity.
* images: Clear out code from days of yoreMartin Braun2021-12-174-418/+17
| | | | | | | | | The images/ subdir is used to create images packages for release tags. However, it contained a lot of code from many releases ago, prior to the usage of the cache/ directory. This simply removes all the old code that is no longer required for creating release packages.
* dpdk: correct MTU warning messageAndrew Lynch2021-12-171-1/+1
|
* rfnoc: graph: make topology failure more descriptivemattprost2021-12-171-4/+41
| | | | | | | | Clarify that invalid RFNoC graph topology failures are due to an attempt to access input or output ports that are not connected to anything in the FPGA. Signed-off-by: mattprost <matt.prost@ni.com>
* dpdk: support new MTU discoveryAndrew Lynch2021-12-171-4/+4
|
* images: Add the utilization report for X410 images (X4_200)Martin Braun2021-12-171-1/+3
|
* uhd: nsis: Remove broken shortcuts in Windows installerAaron Rossetto2021-12-161-4/+0
| | | | | | | | The Windows UHD installer binary, generated by e.g. running the PACKAGE project in the Visual Studio solution generated by CMake, creates two shortcuts to utilities that are no longer included with the installer: the USRP2 card burner and USRP-N2xx net burner. This commit removes these defunct shortcuts.
* tools: Add check for SEP with ctrl enabled to rfnoc_image_builderLars Amsel2021-12-161-0/+13
| | | | | | | | | When creating RFNoC images at least one SEP needs to have ctrl enabled otherwise one will end up with a non-functional image. This commit adds a method to the image builder to do plausibility checks on the configuration. The only check done for now is to verify that there is at least one SEP with ctrl enabled.
* docs: Fix MathJax formulae renderingAaron Rossetto2021-12-161-1/+1
| | | | | | | | | | When a webpage is accessed via secure HTTP, and that webpage attempts to address active content via a non-secure URI, most modern browsers will block the loading of that content as a security precaution. In this case, the URI to the MathJax JavaScript rendering library was specified in the Doxygen configuration with an HTTP (i.e., non-encrypted) URI, thus preventing the browser from loading it and rendering formulae correctly.
* uhd: Fix RFNoC-capable detection in uhd_usrp_probeMartin Braun2021-12-161-1/+1
| | | | | For RFNoC devices, it now displays "RFNoC capable: Yes", like it did in UHD 3.
* rfnoc: Fix block_id::get_tree_root()Martin Braun2021-12-162-1/+3
| | | | | The path it returned was only valid in UHD 3. Added unit test to confirm.
* docs: Amend page on RFNoC propertiesMartin Braun2021-12-161-2/+12
| | | | Add an additional paragraph on back-edges, and when *not* to declare them.
* examples: Fix tx_bursts bandwidth/freq/gain reportingMartin Braun2021-12-161-11/+9
| | | | | | | | | | | | | This example would not specify a channel when querying the actual frequency/bandwidth/gain after setting it. When using the --channels options like this: tx_bursts --channels 1 --freq 1e9 [...] ...it would request the frequency of 1 GHz on channel 1, then query the frequency on channel 0 when reporting the "actual" frequency. Also removes some boost::format().
* fpga: x300: Fix time register readbackWade Fife2021-12-151-2/+2
|