set_clock_config() in UHD
Do you have some code snippet to share? Does the C++ version support
streaming data from a slave device through a host URSP2 before sending
all data via a single ethernet cable?
Thomas,
There is no code that I am aware of that currently does what you want
(i.e., sync the U2’s and conveys data from both devices), however, I
believe it is currently being worked on, however I’m willing to be
corrected on this.
As I said, sync’ing 2 devices to a single PPS signal is pretty
straightforward, however I think you’re looking for more than that.
Using the “raw” enet drivers the code is essentially…
usrp2::usrp2::sptr u2 = usrp2::usrp2::make(dev, "");// dev = device
path (e.g., “eth1”)
u2->config_mimo(mode);
// mode = (usrp2::MC_WE_DONT_LOCK + usrp2::MC_PROVIDE_CLK_TO_MIMO)
// drive clock to cable
| (usrp2::MC_WE_LOCK_TO_MIMO) // lock for
reference from cable
| (usrp2::MC_WE_LOCK_TO_SMA) // lock to reference
provided by front panel
You need to “do the right thing” on both ends of the cable.
For UHD (which we’re currently transitioning and am still getting up
to speed with), I believe the equivalent code would be something like:
uhd::usrp::simple_usrp::sptr u2 = uhd::usrp::simple_usrp::make(dev);
clock_config_t mode;
mode.ref_source = { REF_AUTO | REF_INT = 'i' | REF_SMA = 's' |
REF_MIMO = ‘m’ }l
mode.pps_source = { PPS_INT | PPS_SMA | PPS_MIMO};
mode.pps_polarity = { PPS_NEG | PPS_POS};
u2->set_clock_config(mode);
As I said, I think what you’re actually looking for (clock/pps sync &
data over the MIMO cable is “in the works”, but I could be mistaken).
Obviously syncing more than 2 usrps requires additional hardware
(since without additional hardware you can only connect 2 usrps
together).
Hope this helps,
–Bob