aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp')
-rw-r--r--host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp38
1 files changed, 34 insertions, 4 deletions
diff --git a/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp b/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp
index cb45208ce..46b9410cd 100644
--- a/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp
+++ b/host/lib/usrp/dboard/eiscat/eiscat_radio_ctrl_impl.hpp
@@ -54,11 +54,17 @@ public:
* Valid antenna values:
* - BF: This is the default. Will apply the beamforming matrix in whatever
* state it currently is.
- * - Rx0...Rx15: Will mux the antenna signal 0...15 straight to this
- * channel. Note that this will disable the FIR matrix entirely.
+ * - RX0...RX15: Will mux the antenna signal 0...15 straight to this
+ * channel. Note that this will disable the FIR matrix entirely, and will
+ * also disable contributions from other USRPs.
* - BF0...BF15: Will configure the FIR filter matrix such that only the
- * contributions from antenna 0...15 are passed to this channel.
- *
+ * contributions from antenna 0...15 are passed to this channel. This
+ * should produce the same signal as RX0..RX15, reduced by 12 dB (because
+ * the FIR matri needs to account for bit growth from adding 16 channels)
+ * - FI$idx: Here, $idx is a number (the filter index, hence the name).
+ * This will apply filter index $idx to all input channels. Useful for
+ * testing actual beamforming applications, when the same signal is
+ * applied to all inputs.
*
* \throws uhd::value_error if the antenna value was not valid
*/
@@ -125,6 +131,30 @@ private:
const double normalized_gain
);
+ /*! Directly writes a value to the beam configuration register.
+ */
+ void configure_beams(uint32_t reg_value);
+
+ /*! Controls selection of beams coming from the FIR matrix.
+ *
+ * The following values are allowed:
+ * - 0: We stream the lower 5 beams, plus the neighbours contribution
+ * - 1: We stream the upper 5 beams, plus the neighbours contribution
+ * - 2: We stream the lower 5 beams, without the neighbours contribution
+ * - 3: We stream the upper 5 beams, without the neighbours contribution
+ */
+ void set_beam_selection(int beam_selection);
+
+ /*! Controls if we're using the FIR matrix
+ *
+ * If this is false, the beam selection is irrelevant.
+ */
+ void enable_firs(bool enable);
+
+ /*! Enables counter instead of JESD core output
+ */
+ void enable_counter(bool enable);
+
/*! The number of channels this block outputs
*
* This is *not* the number of antennas, but the number of streams a single