usrp-users@lists.ettus.com

Discussion and technical support related to USRP, UHD, RFNoC

View all threads

Why do we need 1 PPS and 10 MHz signal to synchronize

MP
Marcin Puchlik
Wed, May 11, 2022 10:17 AM

Hello Community,
Like in the topic, I know that a stable 10 MHz source is needed as a clock
signal but why do we need 1 PPS signal? How is it used by the USRP
hardware? Can someone explain that to me?
Thanks
Marcin

Hello Community, Like in the topic, I know that a stable 10 MHz source is needed as a clock signal but why do we need 1 PPS signal? How is it used by the USRP hardware? Can someone explain that to me? Thanks Marcin
MD
Marcus D. Leech
Wed, May 11, 2022 12:22 PM

On 2022-05-11 06:17, Marcin Puchlik wrote:

Hello Community,
Like in the topic, I know that a stable 10 MHz source is needed as a
clock signal but why do we need 1 PPS signal? How is it used by the
USRP hardware? Can someone explain that to me?
Thanks
Marcin


USRP-users mailing list --usrp-users@lists.ettus.com
To unsubscribe send an email tousrp-users-leave@lists.ettus.com

1PPS is used to provide timestamp-clock synchronization across multiple
devices, typically.  This is important when your application requires
this, such as in MIMO or
  multi-receiver TDOA schemes, etc.

Basically, when you have multiple devices you use set_time_unknown_pps()
or set_time_next_pps() to signal to all devices in your multi_usrp
object  that at the next
  1PPS, to set the timestamp clock to the value given in the the API call.

This turns out to be useful even in single devices that are "bicameral",
such as B210 and X310, where there are (for historic and architectural
reasons)
  TWO timestamp clocks.  Use the 1PPS synchronization primitives causes
the internal timestamp clocks to become synchronized.

On 2022-05-11 06:17, Marcin Puchlik wrote: > Hello Community, > Like in the topic, I know that a stable 10 MHz source is needed as a > clock signal but why do we need 1 PPS signal? How is it used by the > USRP hardware? Can someone explain that to me? > Thanks > Marcin > > _______________________________________________ > USRP-users mailing list --usrp-users@lists.ettus.com > To unsubscribe send an email tousrp-users-leave@lists.ettus.com 1PPS is used to provide timestamp-clock synchronization across multiple devices, typically.  This is important when your application requires this, such as in MIMO or   multi-receiver TDOA schemes, etc. Basically, when you have multiple devices you use set_time_unknown_pps() or set_time_next_pps() to signal to all devices in your multi_usrp object  that at the next   1PPS, to set the timestamp clock to the value given in the the API call. This turns out to be useful even in single devices that are "bicameral", such as B210 and X310, where there are (for historic and architectural reasons)   TWO timestamp clocks.  Use the 1PPS synchronization primitives causes the internal timestamp clocks to become synchronized.
MP
Marcin Puchlik
Wed, May 11, 2022 1:18 PM

Marcus,
Thank you very much for the answer. Does it mean that 1 PPS signal is
optional? Can I only provide an external 10 MHz clock without 1 PPS?
*Z poważaniem *
Marcin Puchlik

śr., 11 maj 2022 o 14:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

On 2022-05-11 06:17, Marcin Puchlik wrote:

Hello Community,
Like in the topic, I know that a stable 10 MHz source is needed as a clock
signal but why do we need 1 PPS signal? How is it used by the USRP
hardware? Can someone explain that to me?
Thanks
Marcin


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

1PPS is used to provide timestamp-clock synchronization across multiple
devices, typically.  This is important when your application requires this,
such as in MIMO or
multi-receiver TDOA schemes, etc.

Basically, when you have multiple devices you use set_time_unknown_pps()
or set_time_next_pps() to signal to all devices in your multi_usrp object
that at the next
1PPS, to set the timestamp clock to the value given in the the API call.

This turns out to be useful even in single devices that are "bicameral",
such as B210 and X310, where there are (for historic and architectural
reasons)
TWO timestamp clocks.  Use the 1PPS synchronization primitives causes
the internal timestamp clocks to become synchronized.


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Marcus, Thank you very much for the answer. Does it mean that 1 PPS signal is optional? Can I only provide an external 10 MHz clock without 1 PPS? *Z poważaniem * *Marcin Puchlik* śr., 11 maj 2022 o 14:24 Marcus D. Leech <patchvonbraun@gmail.com> napisał(a): > On 2022-05-11 06:17, Marcin Puchlik wrote: > > Hello Community, > Like in the topic, I know that a stable 10 MHz source is needed as a clock > signal but why do we need 1 PPS signal? How is it used by the USRP > hardware? Can someone explain that to me? > Thanks > Marcin > > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com > > 1PPS is used to provide timestamp-clock synchronization across multiple > devices, typically. This is important when your application requires this, > such as in MIMO or > multi-receiver TDOA schemes, etc. > > Basically, when you have multiple devices you use set_time_unknown_pps() > or set_time_next_pps() to signal to all devices in your multi_usrp object > that at the next > 1PPS, to set the timestamp clock to the value given in the the API call. > > This turns out to be useful even in single devices that are "bicameral", > such as B210 and X310, where there are (for historic and architectural > reasons) > TWO timestamp clocks. Use the 1PPS synchronization primitives causes > the internal timestamp clocks to become synchronized. > > > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com >
MD
Marcus D. Leech
Wed, May 11, 2022 1:24 PM

On 2022-05-11 09:18, Marcin Puchlik wrote:

Marcus,
Thank you very much for the answer. Does it mean that 1 PPS signal is
optional? Can I only provide an external 10 MHz clock without 1 PPS?
*Z poważaniem *
Marcin Puchlik

*Yes, absolutely.  If timestamp synchronization is not important to you,
then you can just provide a 10MHz reference when you want better
  frequency accuracy and drift characteristics than are offered by the
on-board clock and/or you want some type of phase-synchronization
  but don't care much about mutual phase offsets....

śr., 11 maj 2022 o 14:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

 On 2022-05-11 06:17, Marcin Puchlik wrote:
 Hello Community,
 Like in the topic, I know that a stable 10 MHz source is needed
 as a clock signal but why do we need 1 PPS signal? How is it used
 by the USRP hardware? Can someone explain that to me?
 Thanks
 Marcin

 _______________________________________________
 USRP-users mailing list --usrp-users@lists.ettus.com
 To unsubscribe send an email tousrp-users-leave@lists.ettus.com
 1PPS is used to provide timestamp-clock synchronization across
 multiple devices, typically.  This is important when your
 application requires this, such as in MIMO or
   multi-receiver TDOA schemes, etc.

 Basically, when you have multiple devices you use
 set_time_unknown_pps() or set_time_next_pps() to signal to all
 devices in your multi_usrp object  that at the next
   1PPS, to set the timestamp clock to the value given in the the
 API call.

 This turns out to be useful even in single devices that are
 "bicameral", such as B210 and X310, where there are (for historic
 and architectural reasons)
   TWO timestamp clocks.  Use the 1PPS synchronization primitives
 causes the internal timestamp clocks to become synchronized.


 _______________________________________________
 USRP-users mailing list -- usrp-users@lists.ettus.com
 To unsubscribe send an email to usrp-users-leave@lists.ettus.com
On 2022-05-11 09:18, Marcin Puchlik wrote: > Marcus, > Thank you very much for the answer. Does it mean that 1 PPS signal is > optional? Can I only provide an external 10 MHz clock without 1 PPS? > *Z poważaniem * > *Marcin Puchlik* *Yes, absolutely.  If timestamp synchronization is not important to you, then you can just provide a 10MHz reference when you want better   frequency accuracy and drift characteristics than are offered by the on-board clock and/or you want some type of phase-synchronization   but don't care much about mutual phase offsets.... * > > > śr., 11 maj 2022 o 14:24 Marcus D. Leech <patchvonbraun@gmail.com> > napisał(a): > > On 2022-05-11 06:17, Marcin Puchlik wrote: >> Hello Community, >> Like in the topic, I know that a stable 10 MHz source is needed >> as a clock signal but why do we need 1 PPS signal? How is it used >> by the USRP hardware? Can someone explain that to me? >> Thanks >> Marcin >> >> _______________________________________________ >> USRP-users mailing list --usrp-users@lists.ettus.com >> To unsubscribe send an email tousrp-users-leave@lists.ettus.com > 1PPS is used to provide timestamp-clock synchronization across > multiple devices, typically.  This is important when your > application requires this, such as in MIMO or >   multi-receiver TDOA schemes, etc. > > Basically, when you have multiple devices you use > set_time_unknown_pps() or set_time_next_pps() to signal to all > devices in your multi_usrp object  that at the next >   1PPS, to set the timestamp clock to the value given in the the > API call. > > This turns out to be useful even in single devices that are > "bicameral", such as B210 and X310, where there are (for historic > and architectural reasons) >   TWO timestamp clocks.  Use the 1PPS synchronization primitives > causes the internal timestamp clocks to become synchronized. > > > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to usrp-users-leave@lists.ettus.com >
MP
Marcin Puchlik
Wed, May 11, 2022 1:51 PM

Will it be enough to clock USRP from the external 10 MHz signal generator?
When I run the flowgraph I cannot see the information that is using the
external clock. Here is the output from GNU Radio:
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100;
UHD_3.15.0.HEAD-0-gaea0e2de
[INFO] [B200] Detected Device: B200
[INFO] [B200] Operating over USB 2.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Setting master clock rate selection to 'automatic'.
[INFO] [B200] Asking for clock rate 16.000000 MHz...
[INFO] [B200] Actually got clock rate 16.000000 MHz.
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] Actually got clock rate 51.200000 MHz.
[INFO] [MULTI_USRP]    1) catch time transition at pps edge
[INFO] [MULTI_USRP]    2) set times next pps (synchronously)
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than
analog frontend filter bandwidth (0.2 MHz).

[image: image.png]

śr., 11 maj 2022 o 15:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

On 2022-05-11 09:18, Marcin Puchlik wrote:

Marcus,
Thank you very much for the answer. Does it mean that 1 PPS signal is
optional? Can I only provide an external 10 MHz clock without 1 PPS?
*Z poważaniem *
Marcin Puchlik

*Yes, absolutely.  If timestamp synchronization is not important to you,
then you can just provide a 10MHz reference when you want better
frequency accuracy and drift characteristics than are offered by the
on-board clock and/or you want some type of phase-synchronization  but
don't care much about mutual phase offsets.... *

śr., 11 maj 2022 o 14:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

On 2022-05-11 06:17, Marcin Puchlik wrote:

Hello Community,
Like in the topic, I know that a stable 10 MHz source is needed as a
clock signal but why do we need 1 PPS signal? How is it used by the USRP
hardware? Can someone explain that to me?
Thanks
Marcin


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

1PPS is used to provide timestamp-clock synchronization across multiple
devices, typically.  This is important when your application requires this,
such as in MIMO or
multi-receiver TDOA schemes, etc.

Basically, when you have multiple devices you use set_time_unknown_pps()
or set_time_next_pps() to signal to all devices in your multi_usrp object
that at the next
1PPS, to set the timestamp clock to the value given in the the API call.

This turns out to be useful even in single devices that are "bicameral",
such as B210 and X310, where there are (for historic and architectural
reasons)
TWO timestamp clocks.  Use the 1PPS synchronization primitives causes
the internal timestamp clocks to become synchronized.


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

Will it be enough to clock USRP from the external 10 MHz signal generator? When I run the flowgraph I cannot see the information that is using the external clock. Here is the output from GNU Radio: [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_3.15.0.HEAD-0-gaea0e2de [INFO] [B200] Detected Device: B200 [INFO] [B200] Operating over USB 2. [INFO] [B200] Initialize CODEC control... [INFO] [B200] Initialize Radio control... [INFO] [B200] Performing register loopback test... [INFO] [B200] Register loopback test passed [INFO] [B200] Setting master clock rate selection to 'automatic'. [INFO] [B200] Asking for clock rate 16.000000 MHz... [INFO] [B200] Actually got clock rate 16.000000 MHz. [INFO] [B200] Asking for clock rate 51.200000 MHz... [INFO] [B200] Actually got clock rate 51.200000 MHz. [INFO] [MULTI_USRP] 1) catch time transition at pps edge [INFO] [MULTI_USRP] 2) set times next pps (synchronously) [INFO] [B200] Asking for clock rate 51.200000 MHz... [INFO] [B200] OK [INFO] [B200] Asking for clock rate 51.200000 MHz... [INFO] [B200] OK [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than analog frontend filter bandwidth (0.2 MHz). [image: image.png] śr., 11 maj 2022 o 15:24 Marcus D. Leech <patchvonbraun@gmail.com> napisał(a): > On 2022-05-11 09:18, Marcin Puchlik wrote: > > Marcus, > Thank you very much for the answer. Does it mean that 1 PPS signal is > optional? Can I only provide an external 10 MHz clock without 1 PPS? > *Z poważaniem * > *Marcin Puchlik* > > > > > > > > > > *Yes, absolutely. If timestamp synchronization is not important to you, > then you can just provide a 10MHz reference when you want better > frequency accuracy and drift characteristics than are offered by the > on-board clock and/or you want some type of phase-synchronization but > don't care much about mutual phase offsets.... * > > > > śr., 11 maj 2022 o 14:24 Marcus D. Leech <patchvonbraun@gmail.com> > napisał(a): > >> On 2022-05-11 06:17, Marcin Puchlik wrote: >> >> Hello Community, >> Like in the topic, I know that a stable 10 MHz source is needed as a >> clock signal but why do we need 1 PPS signal? How is it used by the USRP >> hardware? Can someone explain that to me? >> Thanks >> Marcin >> >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> >> 1PPS is used to provide timestamp-clock synchronization across multiple >> devices, typically. This is important when your application requires this, >> such as in MIMO or >> multi-receiver TDOA schemes, etc. >> >> Basically, when you have multiple devices you use set_time_unknown_pps() >> or set_time_next_pps() to signal to all devices in your multi_usrp object >> that at the next >> 1PPS, to set the timestamp clock to the value given in the the API call. >> >> This turns out to be useful even in single devices that are "bicameral", >> such as B210 and X310, where there are (for historic and architectural >> reasons) >> TWO timestamp clocks. Use the 1PPS synchronization primitives causes >> the internal timestamp clocks to become synchronized. >> >> >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> > >
MD
Marcus D. Leech
Wed, May 11, 2022 2:14 PM

On 2022-05-11 09:51, Marcin Puchlik wrote:

Will it be enough to clock USRP from the external 10 MHz signal
generator? When I run the flowgraph I cannot see the information that
is using the external clock. Here is the output from GNU Radio:
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100;
UHD_3.15.0.HEAD-0-gaea0e2de
[INFO] [B200] Detected Device: B200
[INFO] [B200] Operating over USB 2.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Setting master clock rate selection to 'automatic'.
[INFO] [B200] Asking for clock rate 16.000000 MHz...
[INFO] [B200] Actually got clock rate 16.000000 MHz.
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] Actually got clock rate 51.200000 MHz.
[INFO] [MULTI_USRP]     1) catch time transition at pps edge
[INFO] [MULTI_USRP]     2) set times next pps (synchronously)
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than
analog frontend filter bandwidth (0.2 MHz).

image.png

Yeah, I don't think it puts out an "i'm locked to the external
reference" message.

But you've asked for "external" clock source, so you should be good to
go, assuming your external generator meets the requirements.

śr., 11 maj 2022 o 15:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

 On 2022-05-11 09:18, Marcin Puchlik wrote:
 Marcus,
 Thank you very much for the answer. Does it mean that 1 PPS
 signal is optional? Can I only provide an external 10 MHz clock
 without 1 PPS?
 *Z poważaniem *
 *Marcin Puchlik*
 *Yes, absolutely.  If timestamp synchronization is not important
 to you, then you can just provide a 10MHz reference when you want
 better
   frequency accuracy and drift characteristics than are offered by
 the on-board clock and/or you want some type of phase-synchronization
   but don't care much about mutual phase offsets....





 *
 śr., 11 maj 2022 o 14:24 Marcus D. Leech
 <patchvonbraun@gmail.com> napisał(a):

     On 2022-05-11 06:17, Marcin Puchlik wrote:
     Hello Community,
     Like in the topic, I know that a stable 10 MHz source is
     needed as a clock signal but why do we need 1 PPS signal?
     How is it used by the USRP hardware? Can someone explain
     that to me?
     Thanks
     Marcin

     _______________________________________________
     USRP-users mailing list --usrp-users@lists.ettus.com
     To unsubscribe send an email tousrp-users-leave@lists.ettus.com
     1PPS is used to provide timestamp-clock synchronization
     across multiple devices, typically. This is important when
     your application requires this, such as in MIMO or
       multi-receiver TDOA schemes, etc.

     Basically, when you have multiple devices you use
     set_time_unknown_pps() or set_time_next_pps() to signal to
     all devices in your multi_usrp object that at the next
       1PPS, to set the timestamp clock to the value given in the
     the API call.

     This turns out to be useful even in single devices that are
     "bicameral", such as B210 and X310, where there are (for
     historic and architectural reasons)
       TWO timestamp clocks.  Use the 1PPS synchronization
     primitives causes the internal timestamp clocks to become
     synchronized.


     _______________________________________________
     USRP-users mailing list -- usrp-users@lists.ettus.com
     To unsubscribe send an email to usrp-users-leave@lists.ettus.com
On 2022-05-11 09:51, Marcin Puchlik wrote: > Will it be enough to clock USRP from the external 10 MHz signal > generator? When I run the flowgraph I cannot see the information that > is using the external clock. Here is the output from GNU Radio: > [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; > UHD_3.15.0.HEAD-0-gaea0e2de > [INFO] [B200] Detected Device: B200 > [INFO] [B200] Operating over USB 2. > [INFO] [B200] Initialize CODEC control... > [INFO] [B200] Initialize Radio control... > [INFO] [B200] Performing register loopback test... > [INFO] [B200] Register loopback test passed > [INFO] [B200] Setting master clock rate selection to 'automatic'. > [INFO] [B200] Asking for clock rate 16.000000 MHz... > [INFO] [B200] Actually got clock rate 16.000000 MHz. > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] Actually got clock rate 51.200000 MHz. > [INFO] [MULTI_USRP]     1) catch time transition at pps edge > [INFO] [MULTI_USRP]     2) set times next pps (synchronously) > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] OK > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] OK > [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than > analog frontend filter bandwidth (0.2 MHz). > > > image.png > Yeah, I don't think it puts out an "i'm locked to the external reference" message. But you've asked for "external" clock source, so you should be good to go, assuming your external generator meets the requirements. > śr., 11 maj 2022 o 15:24 Marcus D. Leech <patchvonbraun@gmail.com> > napisał(a): > > On 2022-05-11 09:18, Marcin Puchlik wrote: >> Marcus, >> Thank you very much for the answer. Does it mean that 1 PPS >> signal is optional? Can I only provide an external 10 MHz clock >> without 1 PPS? >> *Z poważaniem * >> *Marcin Puchlik* > *Yes, absolutely.  If timestamp synchronization is not important > to you, then you can just provide a 10MHz reference when you want > better >   frequency accuracy and drift characteristics than are offered by > the on-board clock and/or you want some type of phase-synchronization >   but don't care much about mutual phase offsets.... > > > > > > * >> >> >> śr., 11 maj 2022 o 14:24 Marcus D. Leech >> <patchvonbraun@gmail.com> napisał(a): >> >> On 2022-05-11 06:17, Marcin Puchlik wrote: >>> Hello Community, >>> Like in the topic, I know that a stable 10 MHz source is >>> needed as a clock signal but why do we need 1 PPS signal? >>> How is it used by the USRP hardware? Can someone explain >>> that to me? >>> Thanks >>> Marcin >>> >>> _______________________________________________ >>> USRP-users mailing list --usrp-users@lists.ettus.com >>> To unsubscribe send an email tousrp-users-leave@lists.ettus.com >> 1PPS is used to provide timestamp-clock synchronization >> across multiple devices, typically. This is important when >> your application requires this, such as in MIMO or >>   multi-receiver TDOA schemes, etc. >> >> Basically, when you have multiple devices you use >> set_time_unknown_pps() or set_time_next_pps() to signal to >> all devices in your multi_usrp object that at the next >>   1PPS, to set the timestamp clock to the value given in the >> the API call. >> >> This turns out to be useful even in single devices that are >> "bicameral", such as B210 and X310, where there are (for >> historic and architectural reasons) >>   TWO timestamp clocks.  Use the 1PPS synchronization >> primitives causes the internal timestamp clocks to become >> synchronized. >> >> >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >> >
MP
Marcin Puchlik
Fri, May 13, 2022 2:38 PM

But you know what I observed and what is weird? When I ask for an external
source and I intentionally turn off the external generator providing a 10
MHz signal, USRP behaves as if it was still seeing a 10 MHz reference
signal at its input. Doesn't matter if the generator is switched on or off

  • USRP behaves the same way. Because of that I am  not sure if USRP is
    being clocked from an internal or external clock source. Is it the bug in
    the GNU radio or UHD or am I doing something wrong? How can I get the
    feedback from the USRP hardware that it was locked to the external clock?
    Is it even possible?

śr., 11 maj 2022 o 16:14 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

On 2022-05-11 09:51, Marcin Puchlik wrote:

Will it be enough to clock USRP from the external 10 MHz signal generator?
When I run the flowgraph I cannot see the information that is using the
external clock. Here is the output from GNU Radio:
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100;
UHD_3.15.0.HEAD-0-gaea0e2de
[INFO] [B200] Detected Device: B200
[INFO] [B200] Operating over USB 2.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Setting master clock rate selection to 'automatic'.
[INFO] [B200] Asking for clock rate 16.000000 MHz...
[INFO] [B200] Actually got clock rate 16.000000 MHz.
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] Actually got clock rate 51.200000 MHz.
[INFO] [MULTI_USRP]    1) catch time transition at pps edge
[INFO] [MULTI_USRP]    2) set times next pps (synchronously)
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than
analog frontend filter bandwidth (0.2 MHz).

[image: image.png]

Yeah, I don't think it puts out an "i'm locked to the external reference"
message.

But you've asked for "external" clock source, so you should be good to go,
assuming your external generator meets the requirements.

śr., 11 maj 2022 o 15:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

On 2022-05-11 09:18, Marcin Puchlik wrote:

Marcus,
Thank you very much for the answer. Does it mean that 1 PPS signal is
optional? Can I only provide an external 10 MHz clock without 1 PPS?
*Z poważaniem *
Marcin Puchlik

*Yes, absolutely.  If timestamp synchronization is not important to you,
then you can just provide a 10MHz reference when you want better
frequency accuracy and drift characteristics than are offered by the
on-board clock and/or you want some type of phase-synchronization  but
don't care much about mutual phase offsets.... *

śr., 11 maj 2022 o 14:24 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

On 2022-05-11 06:17, Marcin Puchlik wrote:

Hello Community,
Like in the topic, I know that a stable 10 MHz source is needed as a
clock signal but why do we need 1 PPS signal? How is it used by the USRP
hardware? Can someone explain that to me?
Thanks
Marcin


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

1PPS is used to provide timestamp-clock synchronization across multiple
devices, typically.  This is important when your application requires this,
such as in MIMO or
multi-receiver TDOA schemes, etc.

Basically, when you have multiple devices you use set_time_unknown_pps()
or set_time_next_pps() to signal to all devices in your multi_usrp object
that at the next
1PPS, to set the timestamp clock to the value given in the the API
call.

This turns out to be useful even in single devices that are "bicameral",
such as B210 and X310, where there are (for historic and architectural
reasons)
TWO timestamp clocks.  Use the 1PPS synchronization primitives causes
the internal timestamp clocks to become synchronized.


USRP-users mailing list -- usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.com

But you know what I observed and what is weird? When I ask for an external source and I intentionally turn off the external generator providing a 10 MHz signal, USRP behaves as if it was still seeing a 10 MHz reference signal at its input. Doesn't matter if the generator is switched on or off - USRP behaves the same way. Because of that I am not sure if USRP is being clocked from an internal or external clock source. Is it the bug in the GNU radio or UHD or am I doing something wrong? How can I get the feedback from the USRP hardware that it was locked to the external clock? Is it even possible? śr., 11 maj 2022 o 16:14 Marcus D. Leech <patchvonbraun@gmail.com> napisał(a): > On 2022-05-11 09:51, Marcin Puchlik wrote: > > Will it be enough to clock USRP from the external 10 MHz signal generator? > When I run the flowgraph I cannot see the information that is using the > external clock. Here is the output from GNU Radio: > [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; > UHD_3.15.0.HEAD-0-gaea0e2de > [INFO] [B200] Detected Device: B200 > [INFO] [B200] Operating over USB 2. > [INFO] [B200] Initialize CODEC control... > [INFO] [B200] Initialize Radio control... > [INFO] [B200] Performing register loopback test... > [INFO] [B200] Register loopback test passed > [INFO] [B200] Setting master clock rate selection to 'automatic'. > [INFO] [B200] Asking for clock rate 16.000000 MHz... > [INFO] [B200] Actually got clock rate 16.000000 MHz. > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] Actually got clock rate 51.200000 MHz. > [INFO] [MULTI_USRP] 1) catch time transition at pps edge > [INFO] [MULTI_USRP] 2) set times next pps (synchronously) > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] OK > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] OK > [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than > analog frontend filter bandwidth (0.2 MHz). > > > [image: image.png] > > Yeah, I don't think it puts out an "i'm locked to the external reference" > message. > > But you've asked for "external" clock source, so you should be good to go, > assuming your external generator meets the requirements. > > > śr., 11 maj 2022 o 15:24 Marcus D. Leech <patchvonbraun@gmail.com> > napisał(a): > >> On 2022-05-11 09:18, Marcin Puchlik wrote: >> >> Marcus, >> Thank you very much for the answer. Does it mean that 1 PPS signal is >> optional? Can I only provide an external 10 MHz clock without 1 PPS? >> *Z poważaniem * >> *Marcin Puchlik* >> >> >> >> >> >> >> >> >> >> *Yes, absolutely. If timestamp synchronization is not important to you, >> then you can just provide a 10MHz reference when you want better >> frequency accuracy and drift characteristics than are offered by the >> on-board clock and/or you want some type of phase-synchronization but >> don't care much about mutual phase offsets.... * >> >> >> >> śr., 11 maj 2022 o 14:24 Marcus D. Leech <patchvonbraun@gmail.com> >> napisał(a): >> >>> On 2022-05-11 06:17, Marcin Puchlik wrote: >>> >>> Hello Community, >>> Like in the topic, I know that a stable 10 MHz source is needed as a >>> clock signal but why do we need 1 PPS signal? How is it used by the USRP >>> hardware? Can someone explain that to me? >>> Thanks >>> Marcin >>> >>> _______________________________________________ >>> USRP-users mailing list -- usrp-users@lists.ettus.com >>> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >>> >>> 1PPS is used to provide timestamp-clock synchronization across multiple >>> devices, typically. This is important when your application requires this, >>> such as in MIMO or >>> multi-receiver TDOA schemes, etc. >>> >>> Basically, when you have multiple devices you use set_time_unknown_pps() >>> or set_time_next_pps() to signal to all devices in your multi_usrp object >>> that at the next >>> 1PPS, to set the timestamp clock to the value given in the the API >>> call. >>> >>> This turns out to be useful even in single devices that are "bicameral", >>> such as B210 and X310, where there are (for historic and architectural >>> reasons) >>> TWO timestamp clocks. Use the 1PPS synchronization primitives causes >>> the internal timestamp clocks to become synchronized. >>> >>> >>> _______________________________________________ >>> USRP-users mailing list -- usrp-users@lists.ettus.com >>> To unsubscribe send an email to usrp-users-leave@lists.ettus.com >>> >> >> >
MD
Marcus D. Leech
Fri, May 13, 2022 4:29 PM

On 2022-05-13 10:38, Marcin Puchlik wrote:

But you know what I observed and what is weird? When I ask for an
external source and I intentionally turn off the external generator
providing a 10 MHz signal, USRP behaves as if it was still seeing a 10
MHz reference signal at its input. Doesn't matter if the generator is
switched on or off - USRP behaves the same way. Because of that I am 
not sure if USRP is being clocked from an internal or external clock
source. Is it the bug in the GNU radio or UHD or am I doing something
wrong? How can I get the feedback from the USRP hardware that it was
locked to the external clock? Is it even possible?

The external clock is simply used to "discipline" or "steer" the main
system clock.  If that "steering" signal goes away, the clock PLL simply
"holds" are where it
  was last and the system clock will do what it would do "naturally" if
not getting any steering signal.  Unless you have some way of measuring
precise phase and
  frequency offsets in your overall system, you won't notice any
high-level functional change.

śr., 11 maj 2022 o 16:14 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

 On 2022-05-11 09:51, Marcin Puchlik wrote:
 Will it be enough to clock USRP from the external 10 MHz signal
 generator? When I run the flowgraph I cannot see the information
 that is using the external clock. Here is the output from GNU Radio:
 [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100;
 UHD_3.15.0.HEAD-0-gaea0e2de
 [INFO] [B200] Detected Device: B200
 [INFO] [B200] Operating over USB 2.
 [INFO] [B200] Initialize CODEC control...
 [INFO] [B200] Initialize Radio control...
 [INFO] [B200] Performing register loopback test...
 [INFO] [B200] Register loopback test passed
 [INFO] [B200] Setting master clock rate selection to 'automatic'.
 [INFO] [B200] Asking for clock rate 16.000000 MHz...
 [INFO] [B200] Actually got clock rate 16.000000 MHz.
 [INFO] [B200] Asking for clock rate 51.200000 MHz...
 [INFO] [B200] Actually got clock rate 51.200000 MHz.
 [INFO] [MULTI_USRP]     1) catch time transition at pps edge
 [INFO] [MULTI_USRP]     2) set times next pps (synchronously)
 [INFO] [B200] Asking for clock rate 51.200000 MHz...
 [INFO] [B200] OK
 [INFO] [B200] Asking for clock rate 51.200000 MHz...
 [INFO] [B200] OK
 [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than
 analog frontend filter bandwidth (0.2 MHz).


 image.png
 Yeah, I don't think it puts out an "i'm locked to the external
 reference" message.

 But you've asked for "external" clock source, so you should be
 good to go, assuming your external generator meets the requirements.
 śr., 11 maj 2022 o 15:24 Marcus D. Leech
 <patchvonbraun@gmail.com> napisał(a):

     On 2022-05-11 09:18, Marcin Puchlik wrote:
     Marcus,
     Thank you very much for the answer. Does it mean that 1 PPS
     signal is optional? Can I only provide an external 10 MHz
     clock without 1 PPS?
     *Z poważaniem *
     *Marcin Puchlik*
     *Yes, absolutely.  If timestamp synchronization is not
     important to you, then you can just provide a 10MHz reference
     when you want better
       frequency accuracy and drift characteristics than are
     offered by the on-board clock and/or you want some type of
     phase-synchronization
       but don't care much about mutual phase offsets....





     *
     śr., 11 maj 2022 o 14:24 Marcus D. Leech
     <patchvonbraun@gmail.com> napisał(a):

         On 2022-05-11 06:17, Marcin Puchlik wrote:
         Hello Community,
         Like in the topic, I know that a stable 10 MHz source
         is needed as a clock signal but why do we need 1 PPS
         signal? How is it used by the USRP hardware? Can
         someone explain that to me?
         Thanks
         Marcin

         _______________________________________________
         USRP-users mailing list --usrp-users@lists.ettus.com
         To unsubscribe send an email tousrp-users-leave@lists.ettus.com
         1PPS is used to provide timestamp-clock synchronization
         across multiple devices, typically.  This is important
         when your application requires this, such as in MIMO or
           multi-receiver TDOA schemes, etc.

         Basically, when you have multiple devices you use
         set_time_unknown_pps() or set_time_next_pps() to signal
         to all devices in your multi_usrp object  that at the next
           1PPS, to set the timestamp clock to the value given in
         the the API call.

         This turns out to be useful even in single devices that
         are "bicameral", such as B210 and X310, where there are
         (for historic and architectural reasons)
           TWO timestamp clocks.  Use the 1PPS synchronization
         primitives causes the internal timestamp clocks to
         become synchronized.


         _______________________________________________
         USRP-users mailing list -- usrp-users@lists.ettus.com
         To unsubscribe send an email to
         usrp-users-leave@lists.ettus.com
On 2022-05-13 10:38, Marcin Puchlik wrote: > But you know what I observed and what is weird? When I ask for an > external source and I intentionally turn off the external generator > providing a 10 MHz signal, USRP behaves as if it was still seeing a 10 > MHz reference signal at its input. Doesn't matter if the generator is > switched on or off - USRP behaves the same way. Because of that I am  > not sure if USRP is being clocked from an internal or external clock > source. Is it the bug in the GNU radio or UHD or am I doing something > wrong? How can I get the feedback from the USRP hardware that it was > locked to the external clock? Is it even possible? > The external clock is simply used to "discipline" or "steer" the main system clock.  If that "steering" signal goes away, the clock PLL simply "holds" are where it   was last and the system clock will do what it would do "naturally" if not getting any steering signal.  Unless you have some way of measuring precise phase and   frequency offsets in your overall system, you won't notice any high-level functional change. > > > śr., 11 maj 2022 o 16:14 Marcus D. Leech <patchvonbraun@gmail.com> > napisał(a): > > On 2022-05-11 09:51, Marcin Puchlik wrote: >> Will it be enough to clock USRP from the external 10 MHz signal >> generator? When I run the flowgraph I cannot see the information >> that is using the external clock. Here is the output from GNU Radio: >> [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; >> UHD_3.15.0.HEAD-0-gaea0e2de >> [INFO] [B200] Detected Device: B200 >> [INFO] [B200] Operating over USB 2. >> [INFO] [B200] Initialize CODEC control... >> [INFO] [B200] Initialize Radio control... >> [INFO] [B200] Performing register loopback test... >> [INFO] [B200] Register loopback test passed >> [INFO] [B200] Setting master clock rate selection to 'automatic'. >> [INFO] [B200] Asking for clock rate 16.000000 MHz... >> [INFO] [B200] Actually got clock rate 16.000000 MHz. >> [INFO] [B200] Asking for clock rate 51.200000 MHz... >> [INFO] [B200] Actually got clock rate 51.200000 MHz. >> [INFO] [MULTI_USRP]     1) catch time transition at pps edge >> [INFO] [MULTI_USRP]     2) set times next pps (synchronously) >> [INFO] [B200] Asking for clock rate 51.200000 MHz... >> [INFO] [B200] OK >> [INFO] [B200] Asking for clock rate 51.200000 MHz... >> [INFO] [B200] OK >> [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than >> analog frontend filter bandwidth (0.2 MHz). >> >> >> image.png >> > Yeah, I don't think it puts out an "i'm locked to the external > reference" message. > > But you've asked for "external" clock source, so you should be > good to go, assuming your external generator meets the requirements. > > >> śr., 11 maj 2022 o 15:24 Marcus D. Leech >> <patchvonbraun@gmail.com> napisał(a): >> >> On 2022-05-11 09:18, Marcin Puchlik wrote: >>> Marcus, >>> Thank you very much for the answer. Does it mean that 1 PPS >>> signal is optional? Can I only provide an external 10 MHz >>> clock without 1 PPS? >>> *Z poważaniem * >>> *Marcin Puchlik* >> *Yes, absolutely.  If timestamp synchronization is not >> important to you, then you can just provide a 10MHz reference >> when you want better >>   frequency accuracy and drift characteristics than are >> offered by the on-board clock and/or you want some type of >> phase-synchronization >>   but don't care much about mutual phase offsets.... >> >> >> >> >> >> * >>> >>> >>> śr., 11 maj 2022 o 14:24 Marcus D. Leech >>> <patchvonbraun@gmail.com> napisał(a): >>> >>> On 2022-05-11 06:17, Marcin Puchlik wrote: >>>> Hello Community, >>>> Like in the topic, I know that a stable 10 MHz source >>>> is needed as a clock signal but why do we need 1 PPS >>>> signal? How is it used by the USRP hardware? Can >>>> someone explain that to me? >>>> Thanks >>>> Marcin >>>> >>>> _______________________________________________ >>>> USRP-users mailing list --usrp-users@lists.ettus.com >>>> To unsubscribe send an email tousrp-users-leave@lists.ettus.com >>> 1PPS is used to provide timestamp-clock synchronization >>> across multiple devices, typically.  This is important >>> when your application requires this, such as in MIMO or >>>   multi-receiver TDOA schemes, etc. >>> >>> Basically, when you have multiple devices you use >>> set_time_unknown_pps() or set_time_next_pps() to signal >>> to all devices in your multi_usrp object  that at the next >>>   1PPS, to set the timestamp clock to the value given in >>> the the API call. >>> >>> This turns out to be useful even in single devices that >>> are "bicameral", such as B210 and X310, where there are >>> (for historic and architectural reasons) >>>   TWO timestamp clocks.  Use the 1PPS synchronization >>> primitives causes the internal timestamp clocks to >>> become synchronized. >>> >>> >>> _______________________________________________ >>> USRP-users mailing list -- usrp-users@lists.ettus.com >>> To unsubscribe send an email to >>> usrp-users-leave@lists.ettus.com >>> >> >
DR
David Raeman
Fri, May 13, 2022 4:31 PM

There is a motherboard sensor that you can query to check the ‘ref_locked’ status.

However, I had noted its behavior during clock loss is inconsistent across models. In UHD 4.1 (and I’m working from memory here), some models (e.g. E320) check a digital lock-detect signal and always report the current lock status.  Other models (e.g. N320) query a register which latches a bit when the external clock is lost, and the latched bit is only cleared during initialization. On these models, once the external clock is removed the ‘ref_locked’ sensor will continue to return false even if the clock is later reapplied while running.

I can’t specifically speak to the B200 or UHD 3.15.

Hope this helps,
David

From: Marcin Puchlik puchlikmarcin@gmail.com
Sent: Friday, May 13, 2022 10:38 AM
To: Marcus D. Leech patchvonbraun@gmail.com
Cc: usrp-users@lists.ettus.com
Subject: [USRP-users] Re: Why do we need 1 PPS and 10 MHz signal to synchronize

But you know what I observed and what is weird? When I ask for an external source and I intentionally turn off the external generator providing a 10 MHz signal, USRP behaves as if it was still seeing a 10 MHz reference signal at its input. Doesn't matter if the generator is switched on or off - USRP behaves the same way. Because of that I am  not sure if USRP is being clocked from an internal or external clock source. Is it the bug in the GNU radio or UHD or am I doing something wrong? How can I get the feedback from the USRP hardware that it was locked to the external clock? Is it even possible?

śr., 11 maj 2022 o 16:14 Marcus D. Leech <patchvonbraun@gmail.commailto:patchvonbraun@gmail.com> napisał(a):
On 2022-05-11 09:51, Marcin Puchlik wrote:
Will it be enough to clock USRP from the external 10 MHz signal generator? When I run the flowgraph I cannot see the information that is using the external clock. Here is the output from GNU Radio:
[INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_3.15.0.HEAD-0-gaea0e2de
[INFO] [B200] Detected Device: B200
[INFO] [B200] Operating over USB 2.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Setting master clock rate selection to 'automatic'.
[INFO] [B200] Asking for clock rate 16.000000 MHz...
[INFO] [B200] Actually got clock rate 16.000000 MHz.
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] Actually got clock rate 51.200000 MHz.
[INFO] [MULTI_USRP]    1) catch time transition at pps edge
[INFO] [MULTI_USRP]    2) set times next pps (synchronously)
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[INFO] [B200] Asking for clock rate 51.200000 MHz...
[INFO] [B200] OK
[WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than
analog frontend filter bandwidth (0.2 MHz).

[cid:image001.png@01D866C3.90392670]

Yeah, I don't think it puts out an "i'm locked to the external reference" message.

But you've asked for "external" clock source, so you should be good to go, assuming your external generator meets the requirements.

śr., 11 maj 2022 o 15:24 Marcus D. Leech <patchvonbraun@gmail.commailto:patchvonbraun@gmail.com> napisał(a):
On 2022-05-11 09:18, Marcin Puchlik wrote:
Marcus,
Thank you very much for the answer. Does it mean that 1 PPS signal is optional? Can I only provide an external 10 MHz clock without 1 PPS?
Z poważaniem
Marcin Puchlik
Yes, absolutely.  If timestamp synchronization is not important to you, then you can just provide a 10MHz reference when you want better
frequency accuracy and drift characteristics than are offered by the on-board clock and/or you want some type of phase-synchronization
but don't care much about mutual phase offsets....

śr., 11 maj 2022 o 14:24 Marcus D. Leech <patchvonbraun@gmail.commailto:patchvonbraun@gmail.com> napisał(a):
On 2022-05-11 06:17, Marcin Puchlik wrote:
Hello Community,
Like in the topic, I know that a stable 10 MHz source is needed as a clock signal but why do we need 1 PPS signal? How is it used by the USRP hardware? Can someone explain that to me?
Thanks
Marcin


USRP-users mailing list -- usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com

To unsubscribe send an email to usrp-users-leave@lists.ettus.commailto:usrp-users-leave@lists.ettus.com
1PPS is used to provide timestamp-clock synchronization across multiple devices, typically.  This is important when your application requires this, such as in MIMO or
multi-receiver TDOA schemes, etc.

Basically, when you have multiple devices you use set_time_unknown_pps() or set_time_next_pps() to signal to all devices in your multi_usrp object  that at the next
1PPS, to set the timestamp clock to the value given in the the API call.

This turns out to be useful even in single devices that are "bicameral", such as B210 and X310, where there are (for historic and architectural reasons)
TWO timestamp clocks.  Use the 1PPS synchronization primitives causes the internal timestamp clocks to become synchronized.


USRP-users mailing list -- usrp-users@lists.ettus.commailto:usrp-users@lists.ettus.com
To unsubscribe send an email to usrp-users-leave@lists.ettus.commailto:usrp-users-leave@lists.ettus.com

There is a motherboard sensor that you can query to check the ‘ref_locked’ status. However, I had noted its behavior during clock loss is inconsistent across models. In UHD 4.1 (and I’m working from memory here), some models (e.g. E320) check a digital lock-detect signal and always report the current lock status. Other models (e.g. N320) query a register which latches a bit when the external clock is lost, and the latched bit is only cleared during initialization. On these models, once the external clock is removed the ‘ref_locked’ sensor will continue to return false even if the clock is later reapplied while running. I can’t specifically speak to the B200 or UHD 3.15. Hope this helps, David From: Marcin Puchlik <puchlikmarcin@gmail.com> Sent: Friday, May 13, 2022 10:38 AM To: Marcus D. Leech <patchvonbraun@gmail.com> Cc: usrp-users@lists.ettus.com Subject: [USRP-users] Re: Why do we need 1 PPS and 10 MHz signal to synchronize But you know what I observed and what is weird? When I ask for an external source and I intentionally turn off the external generator providing a 10 MHz signal, USRP behaves as if it was still seeing a 10 MHz reference signal at its input. Doesn't matter if the generator is switched on or off - USRP behaves the same way. Because of that I am not sure if USRP is being clocked from an internal or external clock source. Is it the bug in the GNU radio or UHD or am I doing something wrong? How can I get the feedback from the USRP hardware that it was locked to the external clock? Is it even possible? śr., 11 maj 2022 o 16:14 Marcus D. Leech <patchvonbraun@gmail.com<mailto:patchvonbraun@gmail.com>> napisał(a): On 2022-05-11 09:51, Marcin Puchlik wrote: Will it be enough to clock USRP from the external 10 MHz signal generator? When I run the flowgraph I cannot see the information that is using the external clock. Here is the output from GNU Radio: [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; UHD_3.15.0.HEAD-0-gaea0e2de [INFO] [B200] Detected Device: B200 [INFO] [B200] Operating over USB 2. [INFO] [B200] Initialize CODEC control... [INFO] [B200] Initialize Radio control... [INFO] [B200] Performing register loopback test... [INFO] [B200] Register loopback test passed [INFO] [B200] Setting master clock rate selection to 'automatic'. [INFO] [B200] Asking for clock rate 16.000000 MHz... [INFO] [B200] Actually got clock rate 16.000000 MHz. [INFO] [B200] Asking for clock rate 51.200000 MHz... [INFO] [B200] Actually got clock rate 51.200000 MHz. [INFO] [MULTI_USRP] 1) catch time transition at pps edge [INFO] [MULTI_USRP] 2) set times next pps (synchronously) [INFO] [B200] Asking for clock rate 51.200000 MHz... [INFO] [B200] OK [INFO] [B200] Asking for clock rate 51.200000 MHz... [INFO] [B200] OK [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than analog frontend filter bandwidth (0.2 MHz). [cid:image001.png@01D866C3.90392670] Yeah, I don't think it puts out an "i'm locked to the external reference" message. But you've asked for "external" clock source, so you should be good to go, assuming your external generator meets the requirements. śr., 11 maj 2022 o 15:24 Marcus D. Leech <patchvonbraun@gmail.com<mailto:patchvonbraun@gmail.com>> napisał(a): On 2022-05-11 09:18, Marcin Puchlik wrote: Marcus, Thank you very much for the answer. Does it mean that 1 PPS signal is optional? Can I only provide an external 10 MHz clock without 1 PPS? Z poważaniem Marcin Puchlik Yes, absolutely. If timestamp synchronization is not important to you, then you can just provide a 10MHz reference when you want better frequency accuracy and drift characteristics than are offered by the on-board clock and/or you want some type of phase-synchronization but don't care much about mutual phase offsets.... śr., 11 maj 2022 o 14:24 Marcus D. Leech <patchvonbraun@gmail.com<mailto:patchvonbraun@gmail.com>> napisał(a): On 2022-05-11 06:17, Marcin Puchlik wrote: Hello Community, Like in the topic, I know that a stable 10 MHz source is needed as a clock signal but why do we need 1 PPS signal? How is it used by the USRP hardware? Can someone explain that to me? Thanks Marcin _______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com> To unsubscribe send an email to usrp-users-leave@lists.ettus.com<mailto:usrp-users-leave@lists.ettus.com> 1PPS is used to provide timestamp-clock synchronization across multiple devices, typically. This is important when your application requires this, such as in MIMO or multi-receiver TDOA schemes, etc. Basically, when you have multiple devices you use set_time_unknown_pps() or set_time_next_pps() to signal to all devices in your multi_usrp object that at the next 1PPS, to set the timestamp clock to the value given in the the API call. This turns out to be useful even in single devices that are "bicameral", such as B210 and X310, where there are (for historic and architectural reasons) TWO timestamp clocks. Use the 1PPS synchronization primitives causes the internal timestamp clocks to become synchronized. _______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com<mailto:usrp-users@lists.ettus.com> To unsubscribe send an email to usrp-users-leave@lists.ettus.com<mailto:usrp-users-leave@lists.ettus.com>
MD
Marcus D. Leech
Fri, May 13, 2022 4:46 PM

On 2022-05-13 12:31, David Raeman wrote:

There is a motherboard sensor that you can query to check the
‘ref_locked’ status.

However, I had noted its behavior during clock loss is inconsistent
across models. In UHD 4.1 (and I’m working from memory here), some
models (e.g. E320) check a digital lock-detect signal and always
report the current lock status.  Other models (e.g. N320) query a
register which latches a bit when the external clock is lost, and the
latched bit is only cleared during initialization. On these models,
once the external clock is removed the ‘ref_locked’ sensor will
continue to return false even if the clock is later reapplied while
running.

I can’t specifically speak to the B200 or UHD 3.15.

Hope this helps,

David

That (permanently latching the loss-of-ref state) sounds like a bug.

But historically different models have had somewhat different behavior
around 1PPS and external references.   My recollection for example is
that on USRP2 when you ask
  for external ref and there's none there, it raises an exception.

From: Marcin Puchlik puchlikmarcin@gmail.com
Sent: Friday, May 13, 2022 10:38 AM
To: Marcus D. Leech patchvonbraun@gmail.com
Cc: usrp-users@lists.ettus.com
Subject: [USRP-users] Re: Why do we need 1 PPS and 10 MHz signal to
synchronize

But you know what I observed and what is weird? When I ask for an
external source and I intentionally turn off the external generator
providing a 10 MHz signal, USRP behaves as if it was still seeing a 10
MHz reference signal at its input. Doesn't matter if the generator is
switched on or off - USRP behaves the same way. Because of that I am 
not sure if USRP is being clocked from an internal or external clock
source. Is it the bug in the GNU radio or UHD or am I doing something
wrong? How can I get the feedback from the USRP hardware that it was
locked to the external clock? Is it even possible?

śr., 11 maj 2022 o 16:14 Marcus D. Leech patchvonbraun@gmail.com
napisał(a):

 On 2022-05-11 09:51, Marcin Puchlik wrote:

     Will it be enough to clock USRP from the external 10 MHz
     signal generator? When I run the flowgraph I cannot see the
     information that is using the external clock. Here is the
     output from GNU Radio:

     [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100;
     UHD_3.15.0.HEAD-0-gaea0e2de
     [INFO] [B200] Detected Device: B200
     [INFO] [B200] Operating over USB 2.
     [INFO] [B200] Initialize CODEC control...
     [INFO] [B200] Initialize Radio control...
     [INFO] [B200] Performing register loopback test...
     [INFO] [B200] Register loopback test passed
     [INFO] [B200] Setting master clock rate selection to 'automatic'.
     [INFO] [B200] Asking for clock rate 16.000000 MHz...
     [INFO] [B200] Actually got clock rate 16.000000 MHz.
     [INFO] [B200] Asking for clock rate 51.200000 MHz...
     [INFO] [B200] Actually got clock rate 51.200000 MHz.
     [INFO] [MULTI_USRP]     1) catch time transition at pps edge
     [INFO] [MULTI_USRP]     2) set times next pps (synchronously)
     [INFO] [B200] Asking for clock rate 51.200000 MHz...
     [INFO] [B200] OK
     [INFO] [B200] Asking for clock rate 51.200000 MHz...
     [INFO] [B200] OK
     [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than
     analog frontend filter bandwidth (0.2 MHz).

 Yeah, I don't think it puts out an "i'm locked to the external
 reference" message.

 But you've asked for "external" clock source, so you should be
 good to go, assuming your external generator meets the requirements.



     śr., 11 maj 2022 o 15:24 Marcus D. Leech
     <patchvonbraun@gmail.com> napisał(a):

         On 2022-05-11 09:18, Marcin Puchlik wrote:

             Marcus,

             Thank you very much for the answer. Does it mean that
             1 PPS signal is optional? Can I only provide an
             external 10 MHz clock without 1 PPS?

             *Z poważaniem *

             *Marcin Puchlik*

         *Yes, absolutely.  If timestamp synchronization is not
         important to you, then you can just provide a 10MHz
         reference when you want better
           frequency accuracy and drift characteristics than are
         offered by the on-board clock and/or you want some type of
         phase-synchronization
           but don't care much about mutual phase offsets....






         *

             śr., 11 maj 2022 o 14:24 Marcus D. Leech
             <patchvonbraun@gmail.com> napisał(a):

                 On 2022-05-11 06:17, Marcin Puchlik wrote:

                     Hello Community,

                     Like in the topic, I know that a stable 10 MHz
                     source is needed as a clock signal but why do
                     we need 1 PPS signal? How is it used by the
                     USRP hardware? Can someone explain that to me?

                     Thanks

                     Marcin

                     _______________________________________________

                     USRP-users mailing list --usrp-users@lists.ettus.com

                     To unsubscribe send an email tousrp-users-leave@lists.ettus.com

                 1PPS is used to provide timestamp-clock
                 synchronization across multiple devices,
                 typically.  This is important when your
                 application requires this, such as in MIMO or
                   multi-receiver TDOA schemes, etc.

                 Basically, when you have multiple devices you use
                 set_time_unknown_pps() or set_time_next_pps() to
                 signal to all devices in your multi_usrp object
                 that at the next
                   1PPS, to set the timestamp clock to the value
                 given in the the API call.

                 This turns out to be useful even in single devices
                 that are "bicameral", such as B210 and X310, where
                 there are (for historic and architectural reasons)
                   TWO timestamp clocks.  Use the 1PPS
                 synchronization primitives causes the internal
                 timestamp clocks to become synchronized.

                 _______________________________________________
                 USRP-users mailing list -- usrp-users@lists.ettus.com
                 To unsubscribe send an email to
                 usrp-users-leave@lists.ettus.com
On 2022-05-13 12:31, David Raeman wrote: > > There is a motherboard sensor that you can query to check the > ‘ref_locked’ status. > > However, I had noted its behavior during clock loss is inconsistent > across models. In UHD 4.1 (and I’m working from memory here), some > models (e.g. E320) check a digital lock-detect signal and always > report the current lock status.  Other models (e.g. N320) query a > register which latches a bit when the external clock is lost, and the > latched bit is only cleared during initialization. On these models, > once the external clock is removed the ‘ref_locked’ sensor will > continue to return false even if the clock is later reapplied while > running. > > I can’t specifically speak to the B200 or UHD 3.15. > > Hope this helps, > > David > That (permanently latching the loss-of-ref state) sounds like a bug. But historically different models have had somewhat different behavior around 1PPS and external references.   My recollection for example is that on USRP2 when you ask   for external ref and there's none there, it raises an exception. > *From:* Marcin Puchlik <puchlikmarcin@gmail.com> > *Sent:* Friday, May 13, 2022 10:38 AM > *To:* Marcus D. Leech <patchvonbraun@gmail.com> > *Cc:* usrp-users@lists.ettus.com > *Subject:* [USRP-users] Re: Why do we need 1 PPS and 10 MHz signal to > synchronize > > But you know what I observed and what is weird? When I ask for an > external source and I intentionally turn off the external generator > providing a 10 MHz signal, USRP behaves as if it was still seeing a 10 > MHz reference signal at its input. Doesn't matter if the generator is > switched on or off - USRP behaves the same way. Because of that I am  > not sure if USRP is being clocked from an internal or external clock > source. Is it the bug in the GNU radio or UHD or am I doing something > wrong? How can I get the feedback from the USRP hardware that it was > locked to the external clock? Is it even possible? > > śr., 11 maj 2022 o 16:14 Marcus D. Leech <patchvonbraun@gmail.com> > napisał(a): > > On 2022-05-11 09:51, Marcin Puchlik wrote: > > Will it be enough to clock USRP from the external 10 MHz > signal generator? When I run the flowgraph I cannot see the > information that is using the external clock. Here is the > output from GNU Radio: > > [INFO] [UHD] linux; GNU C++ version 9.4.0; Boost_107100; > UHD_3.15.0.HEAD-0-gaea0e2de > [INFO] [B200] Detected Device: B200 > [INFO] [B200] Operating over USB 2. > [INFO] [B200] Initialize CODEC control... > [INFO] [B200] Initialize Radio control... > [INFO] [B200] Performing register loopback test... > [INFO] [B200] Register loopback test passed > [INFO] [B200] Setting master clock rate selection to 'automatic'. > [INFO] [B200] Asking for clock rate 16.000000 MHz... > [INFO] [B200] Actually got clock rate 16.000000 MHz. > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] Actually got clock rate 51.200000 MHz. > [INFO] [MULTI_USRP]     1) catch time transition at pps edge > [INFO] [MULTI_USRP]     2) set times next pps (synchronously) > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] OK > [INFO] [B200] Asking for clock rate 51.200000 MHz... > [INFO] [B200] OK > [WARNING] [AD936X] Selected Tx sample rate (0.2 MHz) is less than > analog frontend filter bandwidth (0.2 MHz). > > Yeah, I don't think it puts out an "i'm locked to the external > reference" message. > > But you've asked for "external" clock source, so you should be > good to go, assuming your external generator meets the requirements. > > > > śr., 11 maj 2022 o 15:24 Marcus D. Leech > <patchvonbraun@gmail.com> napisał(a): > > On 2022-05-11 09:18, Marcin Puchlik wrote: > > Marcus, > > Thank you very much for the answer. Does it mean that > 1 PPS signal is optional? Can I only provide an > external 10 MHz clock without 1 PPS? > > *Z poważaniem * > > *Marcin Puchlik* > > *Yes, absolutely.  If timestamp synchronization is not > important to you, then you can just provide a 10MHz > reference when you want better >   frequency accuracy and drift characteristics than are > offered by the on-board clock and/or you want some type of > phase-synchronization >   but don't care much about mutual phase offsets.... > > > > > > > * > > śr., 11 maj 2022 o 14:24 Marcus D. Leech > <patchvonbraun@gmail.com> napisał(a): > > On 2022-05-11 06:17, Marcin Puchlik wrote: > > Hello Community, > > Like in the topic, I know that a stable 10 MHz > source is needed as a clock signal but why do > we need 1 PPS signal? How is it used by the > USRP hardware? Can someone explain that to me? > > Thanks > > Marcin > > _______________________________________________ > > USRP-users mailing list --usrp-users@lists.ettus.com > > To unsubscribe send an email tousrp-users-leave@lists.ettus.com > > 1PPS is used to provide timestamp-clock > synchronization across multiple devices, > typically.  This is important when your > application requires this, such as in MIMO or >   multi-receiver TDOA schemes, etc. > > Basically, when you have multiple devices you use > set_time_unknown_pps() or set_time_next_pps() to > signal to all devices in your multi_usrp object > that at the next >   1PPS, to set the timestamp clock to the value > given in the the API call. > > This turns out to be useful even in single devices > that are "bicameral", such as B210 and X310, where > there are (for historic and architectural reasons) >   TWO timestamp clocks.  Use the 1PPS > synchronization primitives causes the internal > timestamp clocks to become synchronized. > > _______________________________________________ > USRP-users mailing list -- usrp-users@lists.ettus.com > To unsubscribe send an email to > usrp-users-leave@lists.ettus.com >