diff options
author | Mark Meserve <mark.meserve@ni.com> | 2018-10-02 14:26:49 -0500 |
---|---|---|
committer | Brent Stapleton <bstapleton@g.hmc.edu> | 2018-11-05 13:43:07 -0800 |
commit | 728d9abfe7fd9adf87ba4f87627829e09ddcc8cf (patch) | |
tree | 757accf69ea77d5f04ce147c0188be20b742a9f0 /host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp | |
parent | 44eb4b4b43a58324854ce50ef983331c98125eeb (diff) | |
download | uhd-728d9abfe7fd9adf87ba4f87627829e09ddcc8cf.tar.gz uhd-728d9abfe7fd9adf87ba4f87627829e09ddcc8cf.tar.bz2 uhd-728d9abfe7fd9adf87ba4f87627829e09ddcc8cf.zip |
rh: add lo distribution support
- This is a combination of 5 commits.
- rh: add lo distribution board gpio expander
- rh: add lo distribution mpm functions
- rh: add code to conditionally initialize lo distribution
- rh: change empty i2c device from exception to assertion
- rh: add lo distribution board control
Diffstat (limited to 'host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp')
-rw-r--r-- | host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp b/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp index 4f4dd925c..c070dabea 100644 --- a/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp +++ b/host/lib/usrp/dboard/rhodium/rhodium_radio_ctrl_impl.hpp @@ -114,6 +114,12 @@ public: bool get_tx_lo_export_enabled(const std::string& name, const size_t chan); bool get_rx_lo_export_enabled(const std::string& name, const size_t chan); + // LO Distribution Control + void set_tx_lo_output_enabled(const bool enabled, const std::string& port_name, const size_t chan); + void set_rx_lo_output_enabled(const bool enabled, const std::string& port_name, const size_t chan); + bool get_tx_lo_output_enabled(const std::string& port_name, const size_t chan); + bool get_rx_lo_output_enabled(const std::string& port_name, const size_t chan); + // LO Gain Control //! Set the external gain for a TX LO @@ -185,6 +191,25 @@ private: const direction_t dir ); + //! Validate that port_name is valid, and that LO distribution functions + // can be called in this instance + void _validate_output_port( + const std::string& port_name, + const std::string& function_name + ); + + //! Configure LO Distribution board's termination switches + void _set_lo_output_enabled( + const bool enabled, + const std::string& port_name, + const direction_t dir + ); + + bool _get_lo_output_enabled( + const std::string& port_name, + const direction_t dir + ); + //! Configure LO1's output power // Out of range values will be coerced to [0-63] double _set_lo1_power( @@ -336,6 +361,13 @@ private: double _rx_lo_freq = 0.0; double _tx_lo_freq = 0.0; + //! LO Distribution board + bool _lo_dist_present = false; + + //! LO Distribution board output status + bool _lo_dist_rx_out_enabled[4] = { false, false, false, false }; + bool _lo_dist_tx_out_enabled[4] = { false, false, false, false }; + }; /* class radio_ctrl_impl */ }} /* namespace uhd::rfnoc */ |