[USRP-users] Precise transmit control of X310

Carel Combrink carel.combrink at gmail.com
Tue Oct 27 09:12:09 EDT 2015


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,
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20151027/1e216c53/attachment-0002.html>


More information about the USRP-users mailing list