Commit graph

62 commits

Author SHA1 Message Date
Martin Braun
f2bcec5945 mpm: Replace MMCM lock and TDC PPS sleeps with poll_with_timeout
This increases init speed by replacing worst-case sleeps with polls.
2017-12-22 15:04:02 -08:00
djepson1
5eb49364ce lmk: change holdover settings to reduce lock time
- Register 0x150 bit [1] to '0'
  - Change lock detect to poll operation
2017-12-22 15:04:02 -08:00
Martin Braun
e212936218 mpm: mg: Minor cleanup in __init__
- Moved AD9371 API generation around
- Fixed some PyLint warnings
2017-12-22 15:04:02 -08:00
Martin Braun
be7e72ed1d mpm: mg: Enable user EEPROM data read/write 2017-12-22 15:04:02 -08:00
Trung N Tran
832e9fc794 mpm: mg: Specify I2C parents for GPIO devices
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.
2017-12-22 15:04:02 -08:00
Martin Braun
c8094c0e51 mpm: mg: Specify the required overlay for FPGA auto-loading 2017-12-22 15:04:02 -08:00
Martin Braun
d601fd03d5 mpm: Properly populate device_info dict for dboard classes
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>
2017-12-22 15:04:02 -08:00
Martin Braun
cea45dda8f mpm: Add mboard EEPROM support
MPMD binds a property for the mboard EEPROM to the appropriate RPC
calls. PeriphManager now provides default implementations for an mboard
EEPROM.
2017-12-22 15:04:02 -08:00
djepson1
4e0600b00a mg: Updated JESD204b init seq and documentation.
- 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>
2017-12-22 15:04:02 -08:00
djepson1
6858b05357 mg: Fix debug support for CPLD accesses
Signed-off-by: djepson1 <daniel.jepson@ni.com>
2017-12-22 15:04:02 -08:00
djepson1
58e83611f4 mg: Clean up CPLD initialization.
Signed-off-by: djepson1 <daniel.jepson@ni.com>
2017-12-22 15:04:02 -08:00
djepson1
ca847bb474 mg: Preliminary clock sync support
Signed-off-by: djepson1 <daniel.jepson@ni.com>
2017-12-22 15:04:02 -08:00
djepson1
6bb1e12503 mg: Clean up radio_regs creation
Signed-off-by: djepson1 <daniel.jepson@ni.com>
2017-12-22 15:04:02 -08:00
djepson1
ee3f82e454 mg: Updated support for LMK
- add clock shifting
  - add DAC support
  - modify __init__ calls for cleanup

Signed-off-by: djepson1 <daniel.jepson@ni.com>
2017-12-22 15:04:02 -08:00
Martin Braun
e2f8f8e0bd mpm: Added sensor API
- 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
2017-12-22 15:04:02 -08:00
Daniel Jepson
3b716315fe mpm: Update TDC sync code to make it generic for N dboards 2017-12-22 15:04:01 -08:00
Daniel Jepson
39e7b7fd13 mpm: Added lmk_mg to CMake 2017-12-22 15:04:01 -08:00
DJ Epson
f141f71180 mpm: Streaming-related improvements to Magnesium controls 2017-12-22 15:04:01 -08:00
Mark Meserve
309a2f04e3 mg: General fixes
- Make DB probe-able
- Add RPC client
2017-12-22 15:04:00 -08:00
Martin Braun
7cd6758336 n310/eiscat: Removed 20 MHz as a valid ref clock frequency 2017-12-22 15:04:00 -08:00
Derek Kozel
e5a7be4453 eiscat: Change sync pin configuration to switch to CD in case of error 2017-12-22 15:04:00 -08:00
djepson1
d15b55481d eiscat: Fixing a sequencing issue with channel enables for signal integrity reasons 2017-12-22 15:04:00 -08:00
sugandhagupta
0347dc8b4b mpm: fixed mpm rerun issue 2017-12-22 15:04:00 -08:00
Martin Braun
8e1dec25f2 eiscat: Move JESD init and ADC reset to its own function 2017-12-22 15:03:59 -08:00
Martin Braun
d6dc8377ed eiscat: JESD failure does no longer throw; returns failure 2017-12-22 15:03:59 -08:00
Martin Braun
d6d4ac861e eiscat: Unset initialized-flag when ref clock freq is changed 2017-12-22 15:03:59 -08:00
Martin Braun
62e2c25107 eiscat: Minor logging update for clock sync 2017-12-22 15:03:59 -08:00
Martin Braun
5f803ae32e eiscat: Skip re-initialization of dboards 2017-12-22 15:03:59 -08:00
Daniel Jepson
45012fa48c EISCAT: Hard reset ADCs before init, fixed interleaving engine 2017-12-22 15:03:59 -08:00
Martin Braun
40235b8c5a mpm/mpmd: Call init() during UHD session init, not on hwd spawn 2017-12-22 15:03:59 -08:00
Martin Braun
d68c7dfa5a eiscat: Made more functions return status values instead of None/void 2017-12-22 15:03:58 -08:00
Martin Braun
3c50e39d64 mpm: Removed gratuitous encode(), safer udev lookups
- Udev lookups now just return empty lists when they can't find anything
- Made SPI dev interface factory Py2/3 safe
2017-12-22 15:03:58 -08:00
Martin Braun
6183d9eeaa mpm: Made code Python3-compatible 2017-12-22 15:03:58 -08:00
Martin Braun
2bd564ca22 mpm: Replaced xrange with range for better Python future-proofing 2017-12-22 15:03:58 -08:00
Martin Braun
34174c98f3 eiscat/mpm: Moved EISCAT full init sequence to UHD 2017-12-22 15:03:58 -08:00
Daniel Jepson
a233877f65 mpm/eiscat: Updated bringup procedure for dual-synched dboards 2017-12-22 15:03:58 -08:00
Daniel Jepson
273b959fd3 mpm/eiscat: Updates to LMK04828 driver 2017-12-22 15:03:58 -08:00
Martin Braun
5edeeef564 mpm/EISCAT: Renamed UIO udev labels, enabled spidevs on both dboards
The UIO labels will require an update to the device tree overlay file.
2017-12-22 15:03:58 -08:00
Martin Braun
7c9b801906 mpm: Made overlay selection a static method for more flexibility 2017-12-22 15:03:53 -08:00
Martin Braun
245b96a777 mpm: Added auto-loading of dboard-specific overlays 2017-12-22 15:03:53 -08:00
Martin Braun
5a4a78de61 mpm: Factored out common LMK04828 code 2017-12-22 15:03:53 -08:00
Martin Braun
9dee6175da mpm: Moved device and dboard init/deinit to their own methods
Also cleaned up some cruft.
2017-12-22 15:03:53 -08:00
Martin Braun
ca1723c02e eiscat: Enabled Phase DAC SPI
Requires the appropriate overlay.
2017-12-22 15:03:53 -08:00
Martin Braun
b39dafa1ee mpm: Enabled selection of SPI mode 2017-12-22 15:03:53 -08:00
Martin Braun
e6858a61a8 mpm: Moved some SPI setup code to dboard base 2017-12-22 15:03:53 -08:00
Martin Braun
13cd22e867 mpm: Added command line args to usrp_hwd.py 2017-12-22 15:03:53 -08:00
Martin Braun
4efea95324 mpm: Enabled mboard EEPROM readout 2017-12-22 15:03:53 -08:00
Martin Braun
b5b1ef2de2 mpm: Various EISCAT fixes 2017-12-22 15:03:53 -08:00
Mark Meserve
24d3011233 mg: bring up links 2017-12-22 15:03:52 -08:00
Martin Braun
8f9f29dabc mpm: eiscat: Fixed missing parameter in dboard code 2017-12-22 15:03:52 -08:00