| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- 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>
|
|
|
|
| |
Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
|
|
|
|
|
|
| |
Default is to run in parallel. serialize_init=1 will run them serially.
Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
|
| |
|
| |
|
|
|
|
|
| |
- Added 'product' information to N310
- MPM discovery checks for 'product' field
|
|
|
|
|
| |
This tqdm is not using anywhere and causing trouble for the sdimage; so
I remove it.
|
| |
|
| |
|
|
|
|
| |
Reviewed-By: Trung Tran <trung.tran@ettus.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.
|
|
|
|
| |
Reviewed-By: Mark Meserve <mark.meserve@ni.com>
|
|
|
|
| |
Note: The AD9371 lock sensors are only stubbed out for now.
|
|
|
|
|
| |
This commit combines code from various branches to finally enable both
UDP and Liberio transports.
|
| |
|
|
|
|
|
| |
Note: The dispatcher is not yet used at this point. However, it will
check the existence of certain devices.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
Now, when claiming a device, the connection type will be stored as a
string in PeriphManagerBase. This way we can read out the current
connection type even when not currently inside an RPC call.
|
| |
|
|
|
|
| |
Use @norpc instead. This fixes some linting issues.
|
| |
|
|
|
|
|
|
|
|
| |
- Any RPC call with uncaught exceptions will result in additional
logging on MPM side
- Adds get_last_error() API call
- get_last_error() is populated by various methods within rpc_server.py,
but also from every uncaught exception
|
|
|
|
|
| |
-update_fpga loads the FPGA image from the base class's update_component function
-checks if FPGA image is a bit or bin file, and converts to Zynq-compatible binfile if necessary
|
|
|
|
|
|
|
|
| |
-update_component takes a byte array containing the data to be written,
and a dictionary containing the metadata of the component to be
updated
-The metadata must contain 'id' and 'filename'
-The metadata may contain an md5 hash ('md5')
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- Number of samples for TDC measurement bumped back up to 512 (was
previously reduced because of slow sampling speed)
- Non-functional changes: Modified formatting to pacify PyLint
|
|
|
|
| |
This increases init speed by replacing worst-case sleeps with polls.
|
|
|
|
| |
This is a convenience function for polling with sleeps and timeouts.
|
|
|
|
|
|
|
| |
On the N310, there's a penalty for calling time.sleep(). This means the
polling loop was extremely slow for polling TDC updates. Now, it simply
polls as fast as possible. Note: This could hog the bus if run outside
of an initialization sequence, where no one else is using the bus.
|
|
|
|
|
| |
- Register 0x150 bit [1] to '0'
- Change lock detect to poll operation
|
|
|
|
|
| |
- Moved AD9371 API generation around
- Fixed some PyLint warnings
|
| |
|
|
|
|
|
|
| |
This exposes two new API calls to read and write arbitrary data to the
device's EEPROM.
Please keep in mind that EEPROMs have limited write cycles!
|
|
|
|
|
|
|
|
|
|
| |
BufferFS is a serialization format with CRC checking and optional
byte-alignment for records. It allows storing arbitrary blobs, together
with a 8-character identifier, in a contiguous buffer that supports
random access. This is suitable for storing arbitrary blobs in EEPROM,
but could also support other things.
Signed-off-by: Martin Braun <martin.braun@ettus.com>
|
| |
|