aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/dboard/db_ubx.hpp
diff options
context:
space:
mode:
authormattprost <matt.prost@ni.com>2020-07-22 12:13:59 -0500
committerAaron Rossetto <aaron.rossetto@ni.com>2020-08-04 15:46:02 -0500
commitd1799df5a43eb350a8d11f3b225a33254abb0401 (patch)
treec73c47a355ab3aa78f7930b0ba3863a9631ee24a /host/lib/usrp/dboard/db_ubx.hpp
parent18aeb2077b8c6a339f833fb53d90171a359175be (diff)
downloaduhd-d1799df5a43eb350a8d11f3b225a33254abb0401.tar.gz
uhd-d1799df5a43eb350a8d11f3b225a33254abb0401.tar.bz2
uhd-d1799df5a43eb350a8d11f3b225a33254abb0401.zip
x300: change default dboard clock rate from 50 to 100 MHz
This sets the reference clock for X300 daughterboards (other than UBX) to 100 MHz by default to improve RF performance. Note: The UBX daughterboard requires a clock rate of no more than the max pfd frequency (50 or 25 MHz depending on the hardware rev) in order to maintain phase synchronization. If a UBX daughterboard is present on the X300, the clock rate for all daughterboards will be set to the pfd frequency by default. This is because of the limitation on X300 that requires the daughterboards to use the same clock rate. Signed-off-by: mattprost <matt.prost@ni.com>
Diffstat (limited to 'host/lib/usrp/dboard/db_ubx.hpp')
-rw-r--r--host/lib/usrp/dboard/db_ubx.hpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/host/lib/usrp/dboard/db_ubx.hpp b/host/lib/usrp/dboard/db_ubx.hpp
new file mode 100644
index 000000000..246a89eb0
--- /dev/null
+++ b/host/lib/usrp/dboard/db_ubx.hpp
@@ -0,0 +1,57 @@
+//
+// Copyright 2020 Ettus Research, a National Instruments Brand
+//
+// SPDX-License-Identifier: GPL-3.0-or-later
+//
+
+#pragma once
+
+#include <uhd/usrp/dboard_base.hpp>
+
+using namespace uhd;
+using namespace uhd::usrp;
+
+namespace uhd { namespace usrp { namespace dboard { namespace ubx {
+
+static const dboard_id_t UBX_PROTO_V3_TX_ID(0x73);
+static const dboard_id_t UBX_PROTO_V3_RX_ID(0x74);
+static const dboard_id_t UBX_PROTO_V4_TX_ID(0x75);
+static const dboard_id_t UBX_PROTO_V4_RX_ID(0x76);
+static const dboard_id_t UBX_V1_40MHZ_TX_ID(0x77);
+static const dboard_id_t UBX_V1_40MHZ_RX_ID(0x78);
+static const dboard_id_t UBX_V1_160MHZ_TX_ID(0x79);
+static const dboard_id_t UBX_V1_160MHZ_RX_ID(0x7A);
+static const dboard_id_t UBX_V2_40MHZ_TX_ID(0x7B);
+static const dboard_id_t UBX_V2_40MHZ_RX_ID(0x7C);
+static const dboard_id_t UBX_V2_160MHZ_TX_ID(0x7D);
+static const dboard_id_t UBX_V2_160MHZ_RX_ID(0x7E);
+static const dboard_id_t UBX_LP_160MHZ_TX_ID(0x0200);
+static const dboard_id_t UBX_LP_160MHZ_RX_ID(0x0201);
+static const dboard_id_t UBX_TDD_160MHZ_TX_ID(0x0202);
+static const dboard_id_t UBX_TDD_160MHZ_RX_ID(0x0203);
+static const std::vector<dboard_id_t> ubx_ids{UBX_PROTO_V3_TX_ID,
+ UBX_PROTO_V4_TX_ID,
+ UBX_V1_40MHZ_TX_ID,
+ UBX_V1_160MHZ_TX_ID,
+ UBX_V2_40MHZ_TX_ID,
+ UBX_V2_160MHZ_TX_ID,
+ UBX_LP_160MHZ_TX_ID,
+ UBX_TDD_160MHZ_TX_ID,
+ UBX_PROTO_V3_RX_ID,
+ UBX_PROTO_V4_RX_ID,
+ UBX_V1_40MHZ_RX_ID,
+ UBX_V1_160MHZ_RX_ID,
+ UBX_V2_40MHZ_RX_ID,
+ UBX_V2_160MHZ_RX_ID,
+ UBX_LP_160MHZ_RX_ID,
+ UBX_TDD_160MHZ_RX_ID};
+
+static UHD_INLINE double get_max_pfd_freq(dboard_id_t dboard_id)
+{
+ if ((dboard_id == UBX_PROTO_V3_TX_ID) || (dboard_id == UBX_PROTO_V3_RX_ID)) {
+ return 25e6;
+ }
+ return 50e6;
+}
+
+}}}}; // namespace uhd::usrp::dboard::ubx