[USRP-users] Precise transmit control of X310

Marcus Müller marcus.mueller at ettus.com
Tue Oct 27 13:29:30 EDT 2015


Hi Carel,

>
> 1. How accurately can we control the GPIO pins using the timed commands:
> multi_usrp::set_command_time()?
That should be 1/master_clock_rate resolution, i.e. 1/200MHz= 5ns on the
default setting. Notice that these ATR registers are pretty "close" to
the port, so there's only two flops between the settings register and
the actual hardware pin, and hence latency between the command time and
the pin changing state is much shorter than the DSP chain for samples!
> 2. How accurate is the transmission based on the time_spec set on the
> uhd::tx_metadata_t?
1/mcr, too. Basically, the clock at which the settings registers in the
FPGA are driven.

Regarding the time stamps: Internally (and on the wire), the time stamps
are transmitted as to fixed point numbers for the full seconds and the
fractions of the second. get_real_secs calculates a double precision
floating point values out of these. For large full seconds there's less
precision "behind the comma", as floating point numbers typically have a
fixed number of significant digits -- so if you increase the overall
order of magnitude of the number, you lose precision on the less
significant end.

Best regards,
Marcus

On 10/27/2015 02:12 PM, Carel Combrink via USRP-users wrote:
> Hi,
>
> We are using a X310 to transmit bursts and require very accurate
> transmit precision.
>
> Currently we are having some issues regarding the control.
>
> 1. How accurately can we control the GPIO pins using the timed commands:
> multi_usrp::set_command_time()?
>
>     m_usrp->set_command_time(specHigh);
>     m_usrp->set_gpio_attr("FP0", std::string("OUT"),
> FPGPIO_BIT(manualStrobePin), FPGPIO_BIT(manualStrobePin));
>     m_usrp->clear_command_time();
>
> 2. How accurate is the transmission based on the time_spec set on the
> uhd::tx_metadata_t?
>
> 3. What precision can I expect using uhd::time_spec_t?
>
> The reason that I ask about 3:
> I print out the following (Using Qt)
>             qDebug() << "TS: " << md.time_spec.get_full_secs()
>                      << " - " <<
> QString::number(md.time_spec.get_frac_secs(), 'f', 15)
>                      << "(" <<
> QString::number(md.time_spec.get_real_secs(), 'f', 15) << ")";
>
> And the result is:
> TS:  1445950858  -  "0.027400000000000" ( "1445950858.027400016784668" )
> TS:  1445950858  -  "0.027600000000000" ( "1445950858.027600049972534" )
> TS:  1445950858  -  "0.027700000000000" ( "1445950858.027699947357178" )
> TS:  1445950858  -  "0.027800000000000" ( "1445950858.027800083160400" )
> TS:  1445950858  -  "0.028300000000000" ( "1445950858.028300046920776" )
> TS:  1445950858  -  "0.028800000000000" ( "1445950858.028800010681152" )
> TS:  1445950858  -  "0.029100000000000" ( "1445950858.029099941253662" )
> TS:  1445950858  -  "0.029400000000000" ( "1445950858.029400110244751" )
> TS:  1445950858  -  "0.029600000000000" ( "1445950858.029599905014038" )
> TS:  1445950858  -  "0.029800000000000" ( "1445950858.029799938201904" )
> TS:  1445950858  -  "0.030800000000000" ( "1445950858.030800104141235" )
> TS:  1445950858  -  "0.031800000000000" ( "1445950858.031800031661987" )
> TS:  1445950858  -  "0.032000000000000" ( "1445950858.032000064849854" )
>
> So looking at the full_sec and frac_sec it is rather accurate
> according to my time spec that I set up for the different busts. But
> on the real_sec it is not so accurate. I know the documentation on
> get_real_secs() say that precision might be lost. But what part of the
> time_spec does the device use when transmitting, the accurate
> full+frac or the real?
>
> Regards,
>
>
>
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20151027/be9febd3/attachment-0002.html>


More information about the USRP-users mailing list