Transceiver52M: Add E1XX USRP device id and timings
Device specific timing settings for the E100 and E110 were missing from
the Tx/Rx offset table. Add E1XX identifier and offsets to the device
list and offset table respectively.
Signed-off-by: Thomas Tsou <tom@tsou.cc>
diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp
index a15e5f1..bdeb1b5 100644
--- a/Transceiver52M/UHDDevice.cpp
+++ b/Transceiver52M/UHDDevice.cpp
@@ -33,6 +33,7 @@
#endif
#define B2XX_CLK_RT 26e6
+#define E1XX_CLK_RT 52e6
#define B2XX_BASE_RT GSMRATE
#define B100_BASE_RT 400000
#define USRP2_BASE_RT 390625
@@ -45,6 +46,7 @@
B100,
B200,
B210,
+ E1XX,
UMTRX,
NUM_USRP_TYPES,
};
@@ -77,6 +79,8 @@
{ B200, 4, 6.9248e-5, "B200 4 SPS" },
{ B210, 1, 9.9692e-5, "B210 1 SPS" },
{ B210, 4, 6.9248e-5, "B210 4 SPS" },
+ { E1XX, 1, 9.5192e-5, "E1XX 1 SPS" },
+ { E1XX, 4, 6.5571e-5, "E1XX 4 SPS" },
{ UMTRX, 1, 9.9692e-5, "UmTRX 1 SPS" },
{ UMTRX, 4, 7.3846e-5, "UmTRX 4 SPS" },
};
@@ -157,6 +161,7 @@
return B100_BASE_RT * sps;
case B200:
case B210:
+ case E1XX:
case UMTRX:
return GSMRATE * sps;
default:
@@ -468,11 +473,15 @@
double offset_limit = 1.0;
double tx_offset, rx_offset;
- // B2XX is the only device where we set FPGA clocking
+ /* B2XX and E1xx are the only device where we set FPGA clocking */
if ((dev_type == B200) || (dev_type == B210)) {
if (set_master_clk(B2XX_CLK_RT) < 0)
return -1;
}
+ else if (dev_type == E1XX) {
+ if (set_master_clk(E1XX_CLK_RT) < 0)
+ return -1;
+ }
// Set sample rates
try {
@@ -548,7 +557,8 @@
{
std::string mboard_str, dev_str;
uhd::property_tree::sptr prop_tree;
- size_t usrp1_str, usrp2_str, b100_str, b200_str, b210_str, umtrx_str;
+ size_t usrp1_str, usrp2_str, e100_str, e110_str,
+ b100_str, b200_str, b210_str, umtrx_str;
prop_tree = usrp_dev->get_device()->get_tree();
dev_str = prop_tree->access<std::string>("/name").get();
@@ -559,6 +569,8 @@
b100_str = mboard_str.find("B100");
b200_str = mboard_str.find("B200");
b210_str = mboard_str.find("B210");
+ e100_str = mboard_str.find("E100");
+ e110_str = mboard_str.find("E110");
umtrx_str = dev_str.find("UmTRX");
if (usrp1_str != std::string::npos) {
@@ -577,6 +589,12 @@
} else if (b210_str != std::string::npos) {
tx_window = TX_WINDOW_USRP1;
dev_type = B210;
+ } else if (e100_str != std::string::npos) {
+ tx_window = TX_WINDOW_FIXED;
+ dev_type = E1XX;
+ } else if (e110_str != std::string::npos) {
+ tx_window = TX_WINDOW_FIXED;
+ dev_type = E1XX;
} else if (usrp2_str != std::string::npos) {
tx_window = TX_WINDOW_FIXED;
dev_type = USRP2;
@@ -697,6 +715,7 @@
return RESAMP_100M;
case B200:
case B210:
+ case E1XX:
default:
break;
}