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
<mailto: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 <mailto: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