aboutsummaryrefslogtreecommitdiffstats
path: root/host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp
diff options
context:
space:
mode:
authorLane Kolbly <lane.kolbly@ni.com>2022-01-31 16:10:42 -0600
committerAaron Rossetto <aaron.rossetto@ni.com>2022-02-03 14:19:40 -0600
commitd2374c6ad67f94fa577d28d5660f32579f4775cc (patch)
tree5d18d4ae1ca9d5cd6720380d419a3888c64f4385 /host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp
parentc8849fadc8819f5dbfd2d5fd3ad010da8e102c7a (diff)
downloaduhd-d2374c6ad67f94fa577d28d5660f32579f4775cc.tar.gz
uhd-d2374c6ad67f94fa577d28d5660f32579f4775cc.tar.bz2
uhd-d2374c6ad67f94fa577d28d5660f32579f4775cc.zip
host: zbx: Expose tuning table on property tree
This allows viewing or, conceivably, customizing the tuning table that ZBX uses, depending on the particular needs of the end user.
Diffstat (limited to 'host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp')
-rw-r--r--host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp b/host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp
index 92ed07a25..1e422f03e 100644
--- a/host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp
+++ b/host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp
@@ -581,6 +581,65 @@ BOOST_FIXTURE_TEST_CASE(zbx_lo_tree_test, x400_radio_fixture)
}
}
+BOOST_FIXTURE_TEST_CASE(zbx_custom_tx_tune_table_test, x400_radio_fixture)
+{
+ auto tree = test_radio->get_tree();
+ constexpr size_t chan = 0;
+ constexpr double ep = 10.0;
+
+ test_radio->set_tx_frequency(4.4e9, chan);
+
+ BOOST_REQUIRE(abs(test_radio->get_tx_lo_freq(ZBX_LO2, chan) - 5447680000.0) < ep);
+
+ // Custom TX tune table to try. This table is identical to the normal table,
+ // except it only has one entry (4.03GHz-4.5GHz) and the IF2 frequency for
+ // that band is 10MHz lower (chosen arbitrarily)
+ // Turn clang-formatting off so it doesn't compress these tables into a mess.
+ // clang-format off
+ static const std::vector<tune_map_item_t> alternate_tx_tune_map = {
+ // | min_band_freq | max_band_freq | rf_fir | if1_fir | if2_fir | mix1 m, n | mix2 m, n | if1_freq_min | if1_freq_max | if2_freq_min | if2_freq_max |
+ { 4030e6, 4500e6, 0, 1, 1, 0, 0, -1, 1, 0, 0, 1050e6, 1050e6 },
+ };
+
+ // Turn clang-format back on just for posterity
+ // clang-format on
+
+ tree->access<std::vector<uhd::usrp::zbx::tune_map_item_t>>(
+ "dboard/tx_frontends/0/tune_table")
+ .set(alternate_tx_tune_map);
+
+ BOOST_REQUIRE(abs(test_radio->get_tx_lo_freq(ZBX_LO2, chan) - 5437440000.0) < ep);
+}
+
+BOOST_FIXTURE_TEST_CASE(zbx_custom_rx_tune_table_test, x400_radio_fixture)
+{
+ auto tree = test_radio->get_tree();
+ constexpr size_t chan = 0;
+ constexpr double ep = 10.0;
+
+ test_radio->set_rx_frequency(4.4e9, chan);
+
+ BOOST_REQUIRE(abs(test_radio->get_rx_lo_freq(ZBX_LO2, chan) - 6236160000.0) < ep);
+
+ // Custom RX tune table to try. This table is identical to the normal table,
+ // except it only has one entry (4.2GHz-4.5GHz) and the IF2 frequency for
+ // that band is 10MHz lower (chosen arbitrarily)
+ // Turn clang-formatting off so it doesn't compress these tables into a mess.
+ // clang-format off
+ static const std::vector<tune_map_item_t> alternate_rx_tune_map = {
+ // | min_band_freq | max_band_freq | rf_fir | if1_fir | if2_fir | mix1 m, n | mix2 m, n | if1_freq_min | if1_freq_max | if2_freq_min | if2_freq_max |
+ { 4200e6, 4500e6, 0, 2, 2, 0, 0, -1, 1, 0, 0, 1840e6, 1840e6 },
+ };
+
+ // Turn clang-format back on just for posterity
+ // clang-format on
+
+ tree->access<std::vector<uhd::usrp::zbx::tune_map_item_t>>(
+ "dboard/rx_frontends/0/tune_table")
+ .set(alternate_rx_tune_map);
+
+ BOOST_REQUIRE(abs(test_radio->get_rx_lo_freq(ZBX_LO2, chan) - 6225920000.0) < ep);
+}
BOOST_FIXTURE_TEST_CASE(zbx_ant_test, x400_radio_fixture)
{