aboutsummaryrefslogtreecommitdiffstats
path: root/mpm
Commit message (Collapse)AuthorAgeFilesLines
* mpm: enable RX external LO set through argsTrung N Tran2017-12-227-7/+75
| | | | | | | | | 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-225-62/+185
| | | | | | | | | | | | | | | | | | | 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: Run C++ logger through central loggingMartin Braun2017-12-221-0/+16
| | | | Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* mpm: ad937x: Make log functions go through central loggerMartin Braun2017-12-221-5/+26
| | | | Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* mpm: Add log_buf classMartin Braun2017-12-224-0/+170
| | | | | | | 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>
* mpm: mg: Add lowband LO lock and AD9371 lock sensorsMartin Braun2017-12-222-3/+55
| | | | Note: The AD9371 lock sensors are only stubbed out for now.
* mpm/mpmd: Move to request_xport()/commit_xport() architectureMartin Braun2017-12-225-166/+386
| | | | | This commit combines code from various branches to finally enable both UDP and Liberio transports.
* mpm: Lower logging level for PeriphManagerBase.deinit()Martin Braun2017-12-221-2/+2
|
* mpm: n310: Load Liberio dispatcherMartin Braun2017-12-221-9/+39
| | | | | Note: The dispatcher is not yet used at this point. However, it will check the existence of certain devices.
* mpm: mg: Refactor some periph inits into __init__Martin Braun2017-12-221-40/+18
| | | | | | | 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.
* mpm: mg: Fix linting issues and warningsMartin Braun2017-12-221-51/+47
| | | | | | - Removed superfluous code - Fixed most PyLint warnings - Reordered methods to match call order
* mpm: Fix minor logging issues with LMK04828 codeMartin Braun2017-12-223-7/+5
| | | | Log prefixes weren't properly being set.
* mpm: mg: Move CPLD controls to dedicated classMartin Braun2017-12-221-91/+163
|
* mpm: Add configurable log levelsMartin Braun2017-12-222-4/+30
|
* mpm: Cache connection type in PeriphManagerBaseMartin Braun2017-12-222-1/+19
| | | | | | 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.
* mpm: Add LiberioDispatcherTableTrung Tran2017-12-222-0/+74
|
* mykonos: turn on init cals and tracking calsTrung N Tran2017-12-221-13/+13
|
* mpm: Remove leading _ from _get_device_info()Martin Braun2017-12-223-4/+5
| | | | Use @norpc instead. This fixes some linting issues.
* mpm: Make list_updateable_components return somethingMartin Braun2017-12-221-2/+1
|
* mpm: Improve exception/error handlingMartin Braun2017-12-221-19/+75
| | | | | | | | - 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
* fpga load: add N310 update FPGA functionBrent Stapleton2017-12-221-0/+14
| | | | | -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
* fpga load: add update_component function to MPMBrent Stapleton2017-12-222-0/+95
| | | | | | | | -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')
* mpm: Minor refactoring of PeriphManagerBase attributesMartin Braun2017-12-222-8/+3
|
* sync: add PDAC BIST testdjepson12017-12-221-0/+80
|
* n3xx_bist: Fix spurious reference to self.REVMartin Braun2017-12-221-2/+1
|
* mpm: server supports binary strings being sent across rpcBrent Stapleton2017-12-221-2/+7
|
* n3xx_bist: Specify localhost for opening UHD sessionsMartin Braun2017-12-221-1/+1
|
* mpm: tdc_sync: Fix number of samples, formatting issuesMartin Braun2017-12-221-7/+9
| | | | | | - 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
* mpm: Replace MMCM lock and TDC PPS sleeps with poll_with_timeoutMartin Braun2017-12-222-12/+18
| | | | This increases init speed by replacing worst-case sleeps with polls.
* mpm: Add mpmutils module, includes poll_with_timeoutMartin Braun2017-12-222-2/+41
| | | | This is a convenience function for polling with sleeps and timeouts.
* mpm: tdc_sync: Remove sleeps in offset pollingMartin Braun2017-12-221-7/+7
| | | | | | | 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.
* lmk: change holdover settings to reduce lock timedjepson12017-12-223-14/+25
| | | | | - Register 0x150 bit [1] to '0' - Change lock detect to poll operation
* mpm: mg: Minor cleanup in __init__Martin Braun2017-12-221-6/+26
| | | | | - Moved AD9371 API generation around - Fixed some PyLint warnings
* mpm: mg: Enable user EEPROM data read/writeMartin Braun2017-12-221-2/+100
|
* mpm: n310: Enable read/write of user EEPROM dataMartin Braun2017-12-221-0/+67
| | | | | | 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!
* mpm: Add BufferFS serialization libraryMartin Braun2017-12-223-0/+401
| | | | | | | | | | 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>
* n3xx: enable 1G clock with gpio settings.Ryan Marlow2017-12-221-0/+17
|
* mpm: mg: Specify I2C parents for GPIO devicesTrung N Tran2017-12-221-3/+77
| | | | | | 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.
* mpm: n3xx: Add GPS locked sensorTrung N Tran2017-12-221-0/+13
|
* mpm: mg: Specify the required overlay for FPGA auto-loadingMartin Braun2017-12-221-0/+15
|
* mpm: Provide default dboard EEPROM getter/settersMartin Braun2017-12-221-0/+28
| | | | | The setter will throw an exception though. It is supposed to be overriden by device-specific classes.
* mpm: Properly populate device_info dict for dboard classesMartin Braun2017-12-221-1/+18
| | | | | | | | | | | 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>
* mpm: sysfsgpio: Allow to filter by parent deviceTrung Tran2017-12-221-11/+22
| | | | | | There are cases where we need to specify a parent device in order to disambiguate GPIO devices with the same label. This lets you passing in a parent udev device to clarify.
* bit to bin: initial commit of converter scriptBrent Stapleton2017-12-221-0/+121
|
* mpm: n310: Add mboard EEPROM supportMartin Braun2017-12-221-0/+15
| | | | | This is a specific override for the N310. It returns all the default device info as a dict.
* mpm: Add mboard EEPROM supportMartin Braun2017-12-222-4/+28
| | | | | | MPMD binds a property for the mboard EEPROM to the appropriate RPC calls. PeriphManager now provides default implementations for an mboard EEPROM.
* Sync: Improved range checking for offset measurements.djepson12017-12-221-2/+2
|
* mg: Updated JESD204b init seq and documentation.djepson12017-12-222-41/+65
| | | | | | | | | | | - 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>
* mg: Fix debug support for CPLD accessesdjepson12017-12-221-1/+0
| | | | Signed-off-by: djepson1 <daniel.jepson@ni.com>
* mg: Clean up CPLD initialization.djepson12017-12-221-16/+32
| | | | Signed-off-by: djepson1 <daniel.jepson@ni.com>