<div dir="ltr">Hi Mike,<div>I saw some similar issue setting timed commands for changing the sampling rate in 3.14.</div><div><br><div>What UHD version are you using?</div><div><br></div><div>Did you try 3.9.7 LTS? And 3.10.3?</div><div><br></div><div>Thanks,</div><div>Xavier</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 20 Mar 2019 at 01:56, Michael R. Freedman via USRP-users <<a href="mailto:usrp-users@lists.ettus.com">usrp-users@lists.ettus.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
<br>
I have multi_usrp setup with many USRPs that are all doing timed <br>
sampling.  The sampling intervals need to be as fast as 1ms sampling for <br>
999us.  In addition, at the start of the sample window, I need to grab <br>
the state of the GPIO pins on the front panel.  I have tried the following :<br>
<br>
Single rx_streamer for all channels  (as many as 10):<br>
<br>
     streamCmd.num_samps  = numGates;<br>
     streamCmd.stream_now = true;<br>
     streamCmd.time_spec  = 0.0;<br>
<br>
     usrp_->set_command_time( startTime );<br>
<br>
     rxStream_->issue_stream_cmd( streamCmd );<br>
<br>
     gpio = usrp_->get_gpio_attr( "FP0", "READBACK" );<br>
<br>
     usrp_->clear_command_time();<br>
<br>
This works for one channel fairly well, but when multiple channels are <br>
used the channels fail to time align.   I then created a separate <br>
rx_streamer for each channel with the same block of code as above for <br>
each channel.  In this scenario, the lowest number channel would timeout <br>
as much or more than 50% of the time.<br>
<br>
<br>
Next I tried individual streamers as follows :<br>
<br>
     streamCmd.num_samps  = numGates;<br>
     streamCmd.stream_now = false;<br>
     streamCmd.time_spec  = startTime;<br>
<br>
     rxStream_->issue_stream_cmd( streamCmd );<br>
<br>
I only allow 10 stream commands to be queued to the usrp for each <br>
channel and then only issue another stream command<br>
after a successful receive.  In another thread I do the following <br>
figuring I can merge the gpio data with the sampled data after:<br>
<br>
     usrp_->set_command_time( startTime );<br>
     gpio = usrp_->get_gpio_attr( "FP0", "READBACK" );<br>
     usrp_->clear_command_time();<br>
     uhd::time_spec_t response_time = usrp_->get_time_now();<br>
<br>
I see between 50us and 250us latency between startTime and response_time <br>
assuming that the bits were actually read<br>
at the startTime.<br>
<br>
Unfortunately in this scenario, I see channels timing out and not <br>
recovering on occasion.<br>
<br>
CPU Utilization is fairly low as is network bandwidth.<br>
<br>
<br>
Does anyone have any suggestions?<br>
<br>
Thanks,<br>
   Mike<br>
<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
USRP-users mailing list<br>
<a href="mailto:USRP-users@lists.ettus.com" target="_blank">USRP-users@lists.ettus.com</a><br>
<a href="http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com" rel="noreferrer" target="_blank">http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com</a><br>
</blockquote></div>