| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Reviewed-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
| |
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
| |
For unknown revs, this now scales back to the last known rev.
Reviewed-By: Trung Tran <trung.tran@ettus.com>
|
|
|
|
| |
Now uses SPDX headers everywhere.
|
|
|
|
|
|
|
| |
Refactoring to use the C++-based UIO objects. The Liberio and Ethernet
objects now open the UIO before using it, and close it once done.
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
|
| |
- Moved nijesdcore to cores/
- Moved udev, net, dtoverlay, uio to sys_utils/
- Made all imports non-relative (except in __init__.py files)
- Removed some unnecessary imports
- Reordered some imports for Python conventions
|
|
|
|
|
|
|
|
| |
- re-structured Magnesium.init_jesd() sequence to accomodate the reconfiguration
- added DRP access protocols to nijesdcore.py
- cleaned up a few comments and log statements in nijesdcore.py for flow
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
|
| |
Simplify the process of setting external LO without calling through many API
layers.
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
| |
Reviewed-By: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
| |
- ClockSynchronizer object has no more permanent lifetime
- DboardClockControl object lives within `with' statement
- dboard_ctrl_regs are limited to init()
|
|
|
|
|
|
|
| |
Previously, the daughterboard requested an overlay file based on SFP
preference using magic values. This commit moves the decision making to
the peripheral manager, which uses our singular name (ie 'n3xx' for the
N310).
|
|
|
|
|
| |
Note: The sensor API for this lives in n310, but it queries the dboards
for a ref lock status, which is now no longer a stub.
|
|
|
|
| |
Note: On the first run, this flag will always assert.
|
| |
|
|
|
|
|
|
| |
The clock_synchronizer, jesdcore, and dboard_clk_control objects don't
need to exist for the full lifetime of the Magnesium class. Having them
around complicates management of UIO file descriptors.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- re-wrote portions of the LMK driver for flexible rates and configuration
- tweaked TDC driver for compatibility and ease of debugging
- updated comments and log statements throughout for uniformity
|
|
|
|
|
|
|
|
|
|
| |
The master_clock_rate argument is passed to init() during
initialization; this change allows to query the correct MCR at
initialization time. It does not allow changing the MCR while a session
is active.
The MCR also affects the LO settings; it is the reference clock for the
lowband LOs.
|
|
|
|
|
|
|
|
|
| |
- Add LO locked APIs to Magnesium
- Add LO locked sensor APIs for RX/TX and highband/lowband LOs
- Poll all those sensors from magnesium_radio_ctrl_impl
Reviewed-By: Steven Bingler <steven.bingler@ni.com>
Reviewed-By: Trung Tran <trung.tran@ettus.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Note: The AD9371 lock sensors are only stubbed out for now.
|
|
|
|
|
|
|
| |
SPI interfaces and -lock, user EEPROM, radio regs, CPLD, dboard clock
control and GPIO expander can be initialized in Magnesium.__init__().
This shaves a little time off of the actual init() call and allows for
earlier failures.
|
|
|
|
|
|
| |
- Removed superfluous code
- Fixed most PyLint warnings
- Reordered methods to match call order
|
|
|
|
| |
Log prefixes weren't properly being set.
|
| |
|
|
|
|
| |
This increases init speed by replacing worst-case sleeps with polls.
|
|
|
|
|
| |
- Register 0x150 bit [1] to '0'
- Change lock detect to poll operation
|
|
|
|
|
| |
- Moved AD9371 API generation around
- Fixed some PyLint warnings
|
| |
|
|
|
|
|
|
| |
The Magnesium daughterboards have GPIO port expanders, but both have the
same udev label. In order to specify which port expander to use, we pass
in the parent udev I2c device.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to this commit, device_info was always an empty dictionary on all
dboard classes. The device_info dict is now auto-populated from the
EEPROM contents, if any were provided.
Dboard classes can still opt to amend that dictionary in specific class
implementations.
Signed-off-by: Martin Braun <martin.braun@ettus.com>
|
|
|
|
|
|
| |
MPMD binds a property for the mboard EEPROM to the appropriate RPC
calls. PeriphManager now provides default implementations for an mboard
EEPROM.
|
|
|
|
|
|
|
|
|
|
|
| |
- Based on feedback from ADI, updated SYSREF sequencing for
meeting deterministic latency requirements.
- Changed majority of register addresses in nijesdcore.py to
constants.
- Corrected write data to SYSREF_CAPTURE_CONTROL to produce
the correct SYSREF toggle rate inside the FPGA.
Signed-off-by: djepson1 <daniel.jepson@ni.com>
|
|
|
|
| |
Signed-off-by: djepson1 <daniel.jepson@ni.com>
|
|
|
|
| |
Signed-off-by: djepson1 <daniel.jepson@ni.com>
|
|
|
|
| |
Signed-off-by: djepson1 <daniel.jepson@ni.com>
|
|
|
|
| |
Signed-off-by: djepson1 <daniel.jepson@ni.com>
|
|
|
|
|
|
|
|
| |
- add clock shifting
- add DAC support
- modify __init__ calls for cleanup
Signed-off-by: djepson1 <daniel.jepson@ni.com>
|
|
|
|
|
|
|
|
| |
- Motherboard sensors are automatically populated into the property
tree, they can be automatically enumerated and queried
- Daughterboard sensors have an API for querying and enumerating
sensors, but this commit does not automatically add them to the
property tree
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Make DB probe-able
- Add RPC client
|
| |
|