| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
These allow specifying a min/max frequency on a device basis, instead of
querying those from get_?x_freq_range(). The trouble with those methods
is, they include the tune range provided by DSP tuning, which is not
what we want for this calibration.
|
|
|
|
|
|
| |
- Whitespace issues
- Unclear help messages
- Unnecessary derive-from-object
|
|
|
|
|
|
|
| |
Fixes some minor reporting issues that occurred in devtest streaming
tests with only rx or only tx.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
|
| |
This function had an issue where it might return negative frequency
values. A quick fix was to limit it to positive frequencies.
Since this function was duplicated between multi_usrp and
multi_usrp_rfnoc, this patch also moves it to a common location to not
have to fix it twice.
|
| |
|
|
|
|
|
| |
Change version from a numeric to a string, in order to
differentiate between versions like "1.1" and "1.10".
|
|
|
|
|
|
| |
Sleep was incorrectly in nanosecond counts instead of microsecond counts.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
| |
When a node has an action callback assigned this must be cleared
along with the block removal. Otherwise a post action callback
might try to modify node that are already removed which results
in an undefined behavior.
In particular this one fixes the
Unexpected error [ERROR] [CTRLEP] Caught exception during async message handling: map::at
when running the multi_usrp_test.py
|
| |
|
|
|
|
|
|
| |
This change adds the ability to specify in the YAML description for
your RFNoC image what the rfnoc_image_core should be named. This allows
you to have multiple RFNoC image cores generated for the same target.
|
|
|
|
|
|
| |
This causes a header file, rfnoc_image_core.vh, to be generated along
with rfnoc_image_core.v so that parameters like the CHDR width can be
shared betweend RFNoC and the BSP.
|
|
|
|
|
|
| |
CHDR_W was previosly hard coded to be 64, regardless of what the YAML
indicated. This updates to code to pull in the chdr_width from the YAML
image configuration file.
|
|
|
|
|
|
|
|
|
| |
This change makes it such that python_api_test.py will spawn
a subprocess for multi_usrp_test.py by explicitly calling the Python
interpreter, and making the path to multi_usrp_test.py the first
argument.
This fixes running this devtest after installing Python tests via ipks
on embedded devices.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In 073574e24, the MTU property resolver in `noc_block_base` was
refactored to make the resolver's output sensitivity list less
broad. The broadness was intentional as a consequence of allowing the
MTU forwarding policy to be changed at will, but had the unintended side
effect of being incompatible with certain RFNoC graph use cases. The
refactoring solved the issues, but added a new restriction that the MTU
forwarding policy could only be called once per instance of a NoC block.
Unfortunately, that refactoring introduced a bug. By moving the
registration of MTU resolvers to `set_mtu_forwarding_policy()`, no
resolvers would be added if the MTU forwarding policy was never changed
from the default of `DROP` (which is the case for the vast majority of
NoC blocks). However, the resolver had code that would run in the `DROP`
case to coerce the incoming MTU edge property to be the smaller of the
new value or the existing MTU value on that edge. With the resolvers
only getting added when the MTU forwarding policy is changed, this
coercion behavior would never execute, thus breaking a number of
devtests.
This commit ensures that the default coercion behavior is always present
regardless of whether the MTU forwarding policy is changed or not.
|
| |
|
|
|
|
| |
These registers aren't used anywhere in UHD.
|
|
|
|
| |
The numbers for these were swapped.
|
|
|
|
|
| |
This adds two structs (mm32_iface and mm32_iface_timed) which are
a container for peek/poke interfaces.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This PR relaxes the set_{rx|tx}_lo_{source|sources|export_enabled}()
functions to allow them to be called with 'internal'/ALL_LOS or
false/ALL_LOS on devices which do not support changing their LO source
or exporting. This makes the get and set functions for those LOs
settings more symmetrical in that the values returned from the get
function can be successfully passed to the set function. Prior to this
change, calling the set functions would throw an error indicating that
the device does not support manual configuration of the LO.
|
|
|
|
|
|
| |
The debian copyright requires the Apache 2.0 stanza for flatbuffers.
Signed-off-by: Steven Koo<steven.koo@ni.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to this commit, the MTU property resolver in noc_block_base had an
issue: for every MTU edge property (both input and output on each port)
on the block, the property resolver listed every other MTU edge property
in its output sensitivity list, regardless of whether or not the output
edge properties would ever be affected by the current MTU forwarding
policy. This breaks an inherent (and up until now, unwritten) contract
between a property resolver and UHD that only properties that can be
affected by the resolver should be included in the output sensitivity
list. The result of breaking the contract leads to errors being thrown
when committing an RFNoC graph in certain multi-channel use cases.
This commit refactors the MTU property resolver to use the MTU
forwarding policy to determine the correct set of edge properties to
include in the output sensitivity list. The change also introduces a new
restriction--the MTU forwarding policy may only be set once per instance
of a noc_block_base. Typically, a subclass implementing an RFNoC block
will call `set_mtu_forwarding_policy()` in its constructor to set a
custom MTU forwarding policy (if desired) and leave it untouched for the
lifetime of the block.
|
|
|
|
|
|
|
|
|
|
| |
Many updates to this test. Most tests weren't even working properly.
Highlights:
- Add device-specific configuration. Includes defaults, but also the
option to specify a YAML file.
- Improved output for better readability
- Made a whole bunch of tests work
|
|
|
|
|
|
|
|
|
|
|
| |
Like the example test, the Python-based test is now codified. The
"special sauce" for Python tests revolves around the fact that they
require the Python API, so we have to gracefully fail if the Python API
was never enabled, but hard-fail when the Python API is enabled, but not
working.
This creates a new type of devtest (UHDPythonTestCase) and moves
uhd_python_api_test over to the new type.
|
|
|
|
|
|
|
|
|
| |
A loop in mgmt_portal::_validate_stream_setup() was missing a sleep,
which was causing it to return long before the timeout with a timeout
error. This change adds that sleep and reduces the duration of the
sleep so it responds faster.
Signed-off-by: Michael West <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
| |
The N320, like the X310, has some frontend corrections (IQ balance, DC
offset) which can be controlled from software. The property tree entries
exist for these, but the radio_control APIs do not (which also disables
the multi_usrp APIs).
This makes it harder to disable DC offset or IQ balance corrections from
software, and disables our calibration utilities.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Property tree access via the device tree was resulting in a segmentation
fault because the device::_tree member was not properly initialized for
the redirector_device class. The redirector_device also had a
get_tree() method that was not actually called because the get_tree()
method in the parent class was not declared virtual and all calls to
get_tree() were done on the parent class (i.e. get_device()->get_tree().
- Added initializer for device::_tree member in redirector_device class
constructor
- Removed redirector_device::get_tree() method
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The experts framework has two ways of integrating expert nodes into the
property tree: add_prop_node() and add_dual_prop_node(). In the latter
case, the experts should take care of coercion, and thus, we subscribe
to the desired value.
In the former case, this is not necessary, and precludes us from using
set_coercer() with prop nodes on the prop tree. This change lets us use
regular nodes in the expert framework that also use property tree
coercers.
As of now, there is not a single property node in UHD that uses
add_prop_node() and also does any kind of coercion, so this change has
no effect on current code (this is only used in TwinRX as of now).
|
|
|
|
| |
Adds a missing <thread>, <algorithm>, and <chrono>.
|
|
|
|
|
|
|
|
|
| |
Previously, uhd_usrp_probe would simply print "RX Dboard: dboard"
as the header for RFNoC dboards. This was not very informative,
so this change prints out the block ID to get a little bit more
information.
Non-RFNoC dboards retain their old functionality.
|
|
|
|
|
|
|
| |
Add extra precision to if frequency in the low band rx path in order to
avoid hitting the edges of a filter.
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
|
| |
This reverts commit 969e426f2ef57f8d6fd3099870955ba2083abf9c.
Revert "fixup! N310: Low band IF adjustments"
This reverts commit 71137999430afaca18bfff179e6a3c4b0276d54c.
|
|
|
|
| |
device3 was an object used in UHD-3 RFNoC. It is no longer required.
|
|
|
|
|
|
|
| |
Increase thread priority on TX thread and remove memory copy to reduce
underruns.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Disabling this feature will allow the USRP to send a continuous stream
of Rx data to a host machine without throttling due to lack of flow
control credits. This is unnecessary overhead on lossless transports
such as pcie or aurora.
Usage: add 'enable_fc=false' to stream_args.args
Signed-off-by: mattprost <matt.prost@ni.com>
|
|
|
|
|
|
|
| |
Added "n320" to supported devices and set TX and RX sample rates to
12.288 Msps.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
| |
Changed register offset from 4 bytes to 8 bytes. The registers in the
frontend were not being properly addressed, so calibration, IQ mapping,
and frontend corrections were not working properly.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
| |
Available antennas for TX and RX were swapped.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Our APIs are not consistent when it comes to handling invalid settings.
Some setting (like antenna, LO name, ...) will trigger an exception when
invalid. Other settings (gain, frequency, clock rate) will get coerced
to a valid value.
This behaviour does make sense for the most part (it is more intuitive
that 81 dB gets coerced to 80 dB if that's the maximum, but coercing an
invalid antenna value like "RX1" has no clear alternative). And in any
case, this is the behaviour that UHD has always had.
In this commit, all Doxygen headers in multi_usrp are updated to exactly
describe their behaviour (coerce or throw).
|
| |
|
|
|
|
|
|
|
| |
Reverts charge pump current changes for 10 MHz reference / 184.32 MHz
master clock rate case that caused additional phase noise.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
|
|
| |
The DFT plotting routine hangs when the dynamic range equals zero,
so this change adds a limit so that the dynamic range never goes
below 10.
|
|
|
|
|
|
|
| |
A typo was causing an issue with order of precedence in the calculation
of the LO frequency when using an external LO for RX on the N310.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
| |
The RX FE core was using the address for the TX FE core.
|
| |
|
|
|
|
| |
The has_tx_power_reference called has_rx_power_reference by mistake.
|
|
|
|
|
|
|
|
|
|
| |
Removing the FIR filter in the frontend to reclaim resources and remove
redundancy when using a DDC block. The default image has a DDC block,
so only users making custom RFNoC images and using TwinRX will need to
take care to properly downconvert the full bandwidth coming from the
radio block.
Signed-off-by: michael-west <michael.west@ettus.com>
|
|
|
|
| |
Also fixes a typo in the calibration manual page.
|