uhd/host/lib/usrp/dboard/db_basic_and_lf.hpp
mattprost 0ac85e4d01 x300: lf/basic antenna API implementation
This results in a change of operation for LF/Basic Boards on
X300/X310 devices. The RX streaming mode will now be specified
by the antenna rather than the subdev: (AB or BA for complex
streaming, and A or B for real-mode streaming, with AB being
the default antenna value). For real-mode streaming, data is
collected as complex data with zeroed-out values in the
quadrature domain. The subdevs for these boards have been
changed to 0 and 1 for the RX channels, and 0 for the TX
channel, in order to align with subdev specs of other RFNoC
devices.

Note: the old streaming mode paradigm is still in place for
the N210.
2020-03-23 09:33:57 -05:00

35 lines
1.5 KiB
C++

//
// Copyright 2020 Ettus Research, a National Instruments Brand
//
// SPDX-License-Identifier: GPL-3.0-or-later
//
#include <uhd/types/dict.hpp>
#include <boost/assign/list_of.hpp>
namespace uhd { namespace usrp { namespace dboard { namespace basic_and_lf {
constexpr uint32_t BASIC_TX_PID = 0x0000;
constexpr uint32_t BASIC_RX_PID = 0x0001;
constexpr uint32_t LF_TX_PID = 0x000E;
constexpr uint32_t LF_RX_PID = 0x000F;
// The PIDs of these dboards are duplicated to support a new operating mode
// on RFNoC devices, while maintaining legacy for the USRP2
constexpr uint32_t RFNOC_PID_FLAG = 0x6300;
constexpr uint32_t BASIC_TX_RFNOC_PID = BASIC_TX_PID | RFNOC_PID_FLAG; // 0x6300
constexpr uint32_t BASIC_RX_RFNOC_PID = BASIC_RX_PID | RFNOC_PID_FLAG; // 0x6301
constexpr uint32_t LF_TX_RFNOC_PID = LF_TX_PID | RFNOC_PID_FLAG; // 0x630E
constexpr uint32_t LF_RX_RFNOC_PID = LF_RX_PID | RFNOC_PID_FLAG; // 0x630F
constexpr double BASIC_MAX_BANDWIDTH = 250e6; // Hz
constexpr double LF_MAX_BANDWIDTH = 32e6; // Hz
static const std::vector<std::string> rx_frontends{"0", "1"};
static const std::vector<std::string> tx_frontends{"0"};
static const std::map<std::string, double> antenna_mode_bandwidth_scalar{
{"A", 1.0}, {"B", 1.0}, {"AB", 2.0}, {"BA", 2.0}};
static const uhd::dict<std::string, std::string> antenna_mode_to_conn =
boost::assign::map_list_of("AB", "IQ")("BA", "QI")("A", "I")("B", "Q");
}}}}; // namespace uhd::usrp::dboard::basic_and_lf