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

Reply via email to