aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python/usrp_mpm/dboard_manager
Commit message (Collapse)AuthorAgeFilesLines
* mpm: mg: Make Magnesium __init__ exception-safeMartin Braun2017-12-221-5/+33
|
* mpm: Make dboard manager __init__ exception-safeMartin Braun2017-12-221-12/+17
|
* mpm: enable RX external LO set through argsTrung N Tran2017-12-221-0/+11
| | | | | | | | | 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-221-2/+21
| | | | | | | | | | | | | | | | | | | 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: 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: 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-222-4/+3
| | | | Log prefixes weren't properly being set.
* mpm: mg: Move CPLD controls to dedicated classMartin Braun2017-12-221-91/+163
|
* mpm: Replace MMCM lock and TDC PPS sleeps with poll_with_timeoutMartin Braun2017-12-221-4/+7
| | | | This increases init speed by replacing worst-case sleeps with polls.
* lmk: change holdover settings to reduce lock timedjepson12017-12-222-11/+24
| | | | | - 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: 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: mg: Specify the required overlay for FPGA auto-loadingMartin Braun2017-12-221-0/+15
|
* 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: Add mboard EEPROM supportMartin Braun2017-12-221-3/+3
| | | | | | MPMD binds a property for the mboard EEPROM to the appropriate RPC calls. PeriphManager now provides default implementations for an mboard EEPROM.
* mg: Updated JESD204b init seq and documentation.djepson12017-12-221-25/+37
| | | | | | | | | | | - 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>
* mg: Preliminary clock sync supportdjepson12017-12-221-1/+36
| | | | Signed-off-by: djepson1 <daniel.jepson@ni.com>
* mg: Clean up radio_regs creationdjepson12017-12-221-5/+9
| | | | Signed-off-by: djepson1 <daniel.jepson@ni.com>
* mg: Updated support for LMKdjepson12017-12-222-32/+116
| | | | | | | | - add clock shifting - add DAC support - modify __init__ calls for cleanup Signed-off-by: djepson1 <daniel.jepson@ni.com>
* mpm: Added sensor APIMartin Braun2017-12-221-0/+38
| | | | | | | | - 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
* mpm: Update TDC sync code to make it generic for N dboardsDaniel Jepson2017-12-221-0/+3
|
* mpm: Added lmk_mg to CMakeDaniel Jepson2017-12-221-0/+1
|
* mpm: Streaming-related improvements to Magnesium controlsDJ Epson2017-12-222-79/+310
|
* mg: General fixesMark Meserve2017-12-221-4/+6
| | | | | - Make DB probe-able - Add RPC client
* n310/eiscat: Removed 20 MHz as a valid ref clock frequencyMartin Braun2017-12-222-9/+13
|
* eiscat: Change sync pin configuration to switch to CD in case of errorDerek Kozel2017-12-221-17/+49
|
* eiscat: Fixing a sequencing issue with channel enables for signal integrity ↵djepson12017-12-221-8/+5
| | | | reasons
* mpm: fixed mpm rerun issuesugandhagupta2017-12-221-0/+6
|
* eiscat: Move JESD init and ADC reset to its own functionMartin Braun2017-12-221-29/+37
|
* eiscat: JESD failure does no longer throw; returns failureMartin Braun2017-12-221-2/+2
|
* eiscat: Unset initialized-flag when ref clock freq is changedMartin Braun2017-12-221-3/+4
|
* eiscat: Minor logging update for clock syncMartin Braun2017-12-221-0/+4
|
* eiscat: Skip re-initialization of dboardsMartin Braun2017-12-221-1/+16
|
* EISCAT: Hard reset ADCs before init, fixed interleaving engineDaniel Jepson2017-12-221-5/+15
|
* mpm/mpmd: Call init() during UHD session init, not on hwd spawnMartin Braun2017-12-222-7/+23
|
* eiscat: Made more functions return status values instead of None/voidMartin Braun2017-12-221-0/+2
|
* mpm: Removed gratuitous encode(), safer udev lookupsMartin Braun2017-12-221-2/+2
| | | | | - Udev lookups now just return empty lists when they can't find anything - Made SPI dev interface factory Py2/3 safe
* mpm: Made code Python3-compatibleMartin Braun2017-12-225-2/+10
|
* mpm: Replaced xrange with range for better Python future-proofingMartin Braun2017-12-222-2/+2
|
* eiscat/mpm: Moved EISCAT full init sequence to UHDMartin Braun2017-12-221-2/+5
|
* mpm/eiscat: Updated bringup procedure for dual-synched dboardsDaniel Jepson2017-12-221-146/+228
|
* mpm/eiscat: Updates to LMK04828 driverDaniel Jepson2017-12-221-35/+52
|
* mpm/EISCAT: Renamed UIO udev labels, enabled spidevs on both dboardsMartin Braun2017-12-221-1/+4
| | | | The UIO labels will require an update to the device tree overlay file.
* mpm: Made overlay selection a static method for more flexibilityMartin Braun2017-12-222-7/+27
|
* mpm: Added auto-loading of dboard-specific overlaysMartin Braun2017-12-222-0/+7
|
* mpm: Factored out common LMK04828 codeMartin Braun2017-12-222-55/+8
|