...sorry, fat-fingered Gmail. I was saying, I had to check the code myself carefully to see why. In the rfnoc_graph constructor, we attempt to synchronize devices, so that's the relevant call.
There's a bit of a catch here: If you are initializing the devices with internal ref and PPS, and then later set them to 'external', multi_usrp_rfnoc doesn't know you should be calling this method again. That's an issue we should be fixing. To summarize: - rfnoc_graph calls this function itself during construction. If you initialize your devices with time_source=external,clock_source=external, then this will work just fine. - If you're then, later only changing the time on your devices, calling set_time_unknown_pps() will suffice. Calling synchronize_devices() again is not required. - However, if you are initializing devices with internal clocks, and then later setting them to external, you should be calling this again. This is neither covered in the docs, nor in multi_usrp_rfnoc so I agree we have an issue here. --M On Mon, Nov 22, 2021 at 1:10 PM Martin Braun <martin.br...@ettus.com> wrote: > Hey Rob, > > thanks for asking -- this function is definitely under-documented. The > short answer is: This function should be called for synchronous operations, > but only on X3x0 will it make any difference if you don't call it. > > What does it do? This function provides additional synchronization on top > of the timekeeper synchronization. Currently, only X310 needs this for the > DAC synchronization. > > So why is not called in multi_usrp_rfnoc? To be honest, I had to > double-check the code myself > > On Wed, Nov 17, 2021 at 12:04 AM Rob Kossler <rkoss...@nd.edu> wrote: > >> Hi, >> I recently stumbled across this synchonize_devices() function and I'm >> wondering if I need to be calling it. I ran grep in the UHD source folder >> and there are no examples of calling this function. I read the help but >> it's not clear to me how this function differs from calling >> set_time_next_pps() on all of the motherboards (such as is done in the >> lib/multi_usrp_rfnoc.cpp code). My thought process is: if multi_usrp_rfnoc >> does not need to call synchonize_devices(), why would my custom application >> need to call it? Any help would be appreciated. >> >> Thanks. >> Rob >> _______________________________________________ >> USRP-users mailing list -- usrp-users@lists.ettus.com >> To unsubscribe send an email to usrp-users-le...@lists.ettus.com >> >
_______________________________________________ USRP-users mailing list -- usrp-users@lists.ettus.com To unsubscribe send an email to usrp-users-le...@lists.ettus.com