I pulled down the master branch of UHD about 2 months ago. My version is 3.15.0.HEAD-0-gaea0e2de.
On Mon, Jun 15, 2020, 4:54 PM Marcus D. Leech <patchvonbr...@gmail.com> wrote: > On 06/15/2020 06:51 PM, Aaron Smith wrote: > > Yes, transmissions within the same session are consistent. If I destroy > the MultiUSRP object and recreate it (restart my transmit script), the > timing will change. If I repeat hundreds of transmissions without > restarting the timing is stable to the expected accuracy of my TOA > measurements. > > Yes, so this is consistent with previous speculations about the way the > 1PPS signal is flopped into the FPGA (it was either Nick Foster or > someone else). > > Just to be sure, you're using a very-recent UHD install? I know there > were some changes made to B2xx timing within the last year, although > can't recall if the 1PPS logic was touched. > > > > On Mon, Jun 15, 2020, 4:47 PM Marcus D. Leech <patchvonbr...@gmail.com> > wrote: > >> On 06/15/2020 06:45 PM, Aaron Smith wrote: >> >> I am using a master clock rate of 48 MHz and a sample rate of 8 MHz. >> >> When do you notice the timing inconsistency? For example, if you do a >> number of timed transmits during the same session, are they >> self-consistent? Where "session" is defined as "that stuff you do >> after you've set the clock with 1PPS, etc". >> >> >> >> On Mon, Jun 15, 2020, 4:41 PM Marcus D. Leech <patchvonbr...@gmail.com> >> wrote: >> >>> On 06/15/2020 03:42 PM, Aaron Smith wrote: >>> > I am using the python api. >>> > >>> > usrp = uhd.usrp.MultiUSRP() >>> > >>> > # Set gain, clock rate, sample rate etc... >>> > >>> > usrp.set_clock_source('external') >>> > usrp.set_time_source('external') >>> > >>> > ts_reset = uhd.types.TimeSpec(0.0) >>> > usrp.set_time_next_pps(ts_reset) >>> > time.sleep(1.0) >>> > last_pps = usrp.get_time_last_pps().to_ticks(1e9) >>> > if last_pps % int(1e9) != 0: >>> > print("Error failed to align clock") >>> > >>> > # The signal is complex float data, scaled to a max amplitude of 0.9 >>> > approx 0.1 secs in duration >>> > signal_data = numpy.fromfile('signal.dat',dtype=numpy.complex64) >>> > >>> > wirefmt = 'sc16' >>> > >>> > sa = uhd.usrp.StramArgs('fc32',wirefmt) >>> > sa.channels = [0] >>> > stream = usrp.get_tx_stream(sa) >>> > >>> > # Send 3 seconds in future >>> > send_time = usrp.get_time_last_pps().get_real_secs() + 3.0 >>> > metadata = uhd.type.TXMetadata() >>> > metadata.has_time_spec = True >>> > metadata.time_spec = uhd.types.TimeSpec(send_time) >>> > >>> > stream.send(signal_data, metadata) >>> > >>> > # Ensure the transmission is complete before returning >>> > time.sleep(4.0) >>> > >>> > sys.exit(0) >>> > >>> > >>> This probably has to do with uncertainty in the way the 1PPS signal is >>> flopped into the device. What sample rate are you using, and what >>> master clock rate? >>> >>> >>> >> >
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com