Hello Derek,

I tried out what was said below on the thread with a 5V high 0V low square wave 
with a 20% duty cycle inputted into the sync port of the USRPs.  I used the 
follow code to sync them up:

if (not time_source.empty()) usrp->set_time_source(time_source);



//set the time at an unknown pps (will throw if no pps)


std::cout << std::endl << "Attempt to detect the PPS and set the time..." << 
std::endl << std::endl;


usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));


std::cout << std::endl << "Success!" << std::endl << std::endl;


I inserted these lines of code in the rx_samples_to_file and 
tx_samples_from_file but when I run rx_samples_to_file, I get a timeout error.
How can I get around this?

Thanks

From: Derek Kozel [mailto:[email protected]]
Sent: Wednesday, August 2, 2017 9:35 AM
To: Cho, Daniel J (332C) <[email protected]>
Cc: [email protected]
Subject: Re: [USRP-users] PPS sync with USRP E310 timeout error

Hi,
Sorry, I spoke poorly there. set_time_unknown_pps will fail if it does not see 
a 1PPS edge within a 1+epsilon second window. However, because you were using a 
sine wave the exact time that the "edge" of the pulse could vary. When 
distributing a time reference a fast rising edge is key to getting good 
temporal accuracy.
If you want to verify that both USRPs are set to the same time you should call 
the get_time_last_pps function after setting the time on both synchronously. 
The sync_to_gps code has a routine which would be useful.
https://github.com/EttusResearch/uhd/blob/maint/host/examples/sync_to_gps.cpp#L145
Regards,
Derek

On Wed, Aug 2, 2017 at 4:09 PM, Cho, Daniel J (332C) 
<[email protected]<mailto:[email protected]>> wrote:
Hello Derek,

I thought the “set_time_unknown_pps” checks to confirm that the time is 
correctly set?
If that doesn’t, how do I know that the sync is set correctly without using a 
spectrum analyzer?

Thanks

From: Derek Kozel [mailto:[email protected]<mailto:[email protected]>]
Sent: Wednesday, August 2, 2017 7:33 AM
To: Cho, Daniel J (332C) 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: Re: [USRP-users] PPS sync with USRP E310 timeout error

Hello Daniel,
There is no check in your code to confirm that the time is correctly set. The 
1PPS signal should be a square wave rather than a sine wave. It is a logic 
signal rather than an RF one and the sync port is designed to handle it.
http://files.ettus.com/manual/page_usrp_e3x0.html#e3x0_hw_pps
The Octoclock which we use produces a 20% duty cycle square wave with 5V high 
and 0V low.

Regards,
Derek

On Wed, Aug 2, 2017 at 2:10 AM, Cho, Daniel J (332C) via USRP-users 
<[email protected]<mailto:[email protected]>> wrote:
Hello –

I am using 2 USRP E310 which I would like to frequency sync together.  I am 
using a frequency generator which is generating a 1 PPS (1Hz sine wave) signal 
which I put through a power splitter to provide both USRPs with the same 1 PPS 
signal.  I configured the rx_samples_to_file and tx_samples_from_file codes to 
allow me to use the external 1PPS signal by including the following into the 
code:


//sleep off if gpsdo detected and time next pps already set


boost::this_thread::sleep(boost::posix_time::seconds(1));



//set time source if specified


if (not time_source.empty()) usrp->set_time_source(time_source);



//set the time at an unknown pps (will throw if no pps)


std::cout << std::endl << "Attempt to detect the PPS and set the time..." << 
std::endl << std::endl;


usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));


std::cout << std::endl << "Success!" << std::endl << std::endl;


When I run the rx_samples_to_file code with the above code included, I get a 
timeout error.  I found that it was due to the line 
“usrp->set_time_unknown_pps(uhd::time_spec_t(0.0));”
How can I get my two USRPs frequency synced without getting this error?

Also, I saw that the 1 PPS signal provided to the USRP should be 3.3V – 5V.  
When I put a 1 PPS signal that strong on the spectrum analyzer, it shows a 
power output above +10 dBm.  I know that the max RX input power is -15 dBm so I 
was hesitant to input a 1 PPS signal that strong.  The 1 PPS signal I put into 
the sync port was 100 mV.  Even with a 1 PPS signal with an output power of 
100mV, I am still able to run the test_pps_input program successfully.

So in summary, should I just send a 1 PPS signal with a power output above +10 
dBm which equates to the 3.3V – 5V to the sync port even though I am able to 
run the test_pps_input program successfully with 100mV?  How can I get the 
rx_samples_to_file program to run successfully without giving me a timeout 
error using the above lines of code?

Thanks

_______________________________________________
USRP-users mailing list
[email protected]<mailto:[email protected]>
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


_______________________________________________
USRP-users mailing list
[email protected]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com

Reply via email to