diff options
author | mattprost <matt.prost@ni.com> | 2020-07-22 12:13:59 -0500 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2020-08-04 15:46:02 -0500 |
commit | d1799df5a43eb350a8d11f3b225a33254abb0401 (patch) | |
tree | c73c47a355ab3aa78f7930b0ba3863a9631ee24a /host/lib/usrp/dboard/db_ubx.hpp | |
parent | 18aeb2077b8c6a339f833fb53d90171a359175be (diff) | |
download | uhd-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.hpp | 57 |
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 |