diff options
author | Lane Kolbly <lane.kolbly@ni.com> | 2022-01-31 16:10:42 -0600 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2022-02-03 14:19:40 -0600 |
commit | d2374c6ad67f94fa577d28d5660f32579f4775cc (patch) | |
tree | 5d18d4ae1ca9d5cd6720380d419a3888c64f4385 /host/tests/rfnoc_block_tests/x4xx_radio_block_test.cpp | |
parent | c8849fadc8819f5dbfd2d5fd3ad010da8e102c7a (diff) | |
download | uhd-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.cpp | 59 |
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) { |