diff options
author | Keith <keith@rhizomatica.org> | 2020-03-20 12:50:19 -0500 |
---|---|---|
committer | Keith <keith@rhizomatica.org> | 2020-03-23 14:13:25 -0500 |
commit | 6d496c8e1515a4b52a399fb4be9911cc1b1a619e (patch) | |
tree | 167f21f054b9983d0aa2cde20a17db77dbac89ba /Transceiver52M/device/uhd/UHDDevice.cpp | |
parent | dfc6e5ffc786756bded94ea06eb2502720b28839 (diff) |
Add Device Definition for the OC Connect1 SDR
This patch forward ports the relevant parts of a patch
from OpenCellular for osmo-trx versions previous to commit
1fb0ce67d86067d81bd0f8d18b8c11890e36e755
so that osmo-trx-uhd recognizes the hardware, somewhat documented here:
https://github.com/Telecominfraproject/OpenCellular/blob/master/electronics/radio/SDR/
Note: I'm not very familiar with the hardware. It requires a patch to the
Ettus UHD driver to load the correct FPGA fw in which one call to
check_fpga_compat() is commented.
Otherwise mostly changes identifiers and log messages to "OCR01".
The usb device is reported as Vid:2500 Pid:0020 (Ettus,B200) but
I'm not sure how compatible it is. The fpga FW is different.
Diffstat (limited to 'Transceiver52M/device/uhd/UHDDevice.cpp')
-rw-r--r-- | Transceiver52M/device/uhd/UHDDevice.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp index ad56250..62a8d2d 100644 --- a/Transceiver52M/device/uhd/UHDDevice.cpp +++ b/Transceiver52M/device/uhd/UHDDevice.cpp @@ -121,6 +121,7 @@ static const std::map<dev_key, dev_desc> dev_param_map { { std::make_tuple(UMTRX, 4, 4), { 2, 0.0, GSMRATE, 5.1503e-5, "UmTRX 4 SPS" } }, { std::make_tuple(LIMESDR, 4, 4), { 1, GSMRATE*32, GSMRATE, 8.9e-5, "LimeSDR 4 SPS" } }, { std::make_tuple(B2XX_MCBTS, 4, 4), { 1, 51.2e6, MCBTS_SPACING*4, B2XX_TIMING_MCBTS, "B200/B210 4 SPS Multi-ARFCN" } }, + { std::make_tuple(OCR01, 4, 1), { 2, 26e6, GSMRATE, B2XX_TIMING_4SPS, "OCR01 4/1 Tx/Rx SPS"} }, }; void *async_event_loop(uhd_device *dev) @@ -368,6 +369,7 @@ bool uhd_device::parse_dev_type() { "USRP2", { USRP2, TX_WINDOW_FIXED } }, { "UmTRX", { UMTRX, TX_WINDOW_FIXED } }, { "LimeSDR", { LIMESDR, TX_WINDOW_FIXED } }, + { "OCR01", { OCR01, TX_WINDOW_USRP1 } }, }; // Compare UHD motherboard and device strings */ @@ -409,7 +411,7 @@ static bool uhd_e3xx_version_chk() void uhd_device::set_channels(bool swap) { if (iface == MULTI_ARFCN) { - if (dev_type != B200 && dev_type != B210) + if (dev_type != B200 && dev_type != B210 && dev_type != OCR01) throw std::invalid_argument("Device does not support MCBTS"); dev_type = B2XX_MCBTS; } @@ -421,6 +423,7 @@ void uhd_device::set_channels(bool swap) switch (dev_type) { case B210: case E3XX: + case OCR01: if (chans == 1) subdev_string = swap ? "A:B" : "A:A"; else if (chans == 2) @@ -582,6 +585,7 @@ int uhd_device::open(const std::string &args, int ref, bool swap_channels) case E1XX: case E3XX: case LIMESDR: + case OCR01: default: break; } |