Re: [Discuss-gnuradio] Frequency Offsets in RFX 2400

From:

David I. Emery

Subject:

Re: [Discuss-gnuradio] Frequency Offsets in RFX 2400

Date:

Fri, 11 Jan 2008 01:17:26 -0500

User-agent:

Mutt/1.4.1i

On Thu, Jan 10, 2008 at 08:46:09AM -0600, LRK wrote:
>
> While the 'right' fix would be to supply a stable frequency source to
> the USRP, it would be difficult.
Not impossibly difficult... it would, however, have been nice to
have a VCXO option for the USRP-1 that would have allowed external phase
locking circuitry to phase lock the 64 MHz to something without
significantly impacting phase noise (AKA clock jitter) of the 64 MHz
when not phased locked (or for that matter, when phase locked). It is
quite a bit easier to use some fairly straightforward external PLL
hardware to lock a 64 MHz clock by tweaking an EFC DC voltage input than
it is to actually generate a clean, low phase noise external 64 MHz
clock and import it correctly to the USRP so clock jitter (and thus S/N
of the ASC sampling) is as good as with the current oscillator.
>
> Next best would be an 'offset' or 'calibration' value in the environment
> which would be included in the frequency calculations. This should be an
> indication of the error at 64 MHz and scaled. Thus '+914.125 Hz' at 64 MHz
> would cause a 914.125 x 35.15625 = +32137 Hz correction at 2250 MHz
> (which is what I need at this moment :).
>
This change is acutely needed... and everything that computes a
frequency based on the 64 MHz timebase should use it...
> And best in the future would be a source on the USRP which could just
> lock itself to a 1PPS signal from a GPS at 0-5 volt levels.
I'm not sure I want Matt and Eric to do an entire GPSDO as part
of a new USRP... much better to just build a USRP clock generator that
takes the universal standard reference frequency of 10 MHz as an input
like most all of the world's current test equipment and many radios and
most satellite and telecom gear... 10 MHz GPSDOs are a standard item -
readily available and highly accurate (and even pretty cheap on Ebay)
and no other reference frequency is as widely used. And one can find
cheap surplus ex-telcom rubidiums that will supply 10 MHz within parts
in 10^10th or so if one doesn't want to (or can't) use GPS as a reference
but still needs accurate frequency.
A hack I have thought about adding to the USRP FPGA code (but
not implemented yet) would allow collection of the count in a
continuously rolling 64 MHz counter driven by the current 64 MHz clock
on a rising or falling edge of a 1 PPS signal brought in on some spare
pin and stuff this value in a register that could be read via the I2C
mechanism. I think this takes few enough FPGA resources to be doable
with the current USRP code, but again I haven't tried it yet. This
would allow software in gnuradio to compute frequency error every second
(or whatever rate the ticks came in at) by determining whether the time
stamp on the 1 PPS edge was early or late relative to the count of 64
MHz clocks.
A while back I proposed a more general and less inelegant
approach involving passing back time stamp messages in the data stream
in the new message passing format based on such external pin events as
a 1 PPS and I hope this eventually gets implemented, but simply
providing a register that contains the clock count sampled on the last
rising (or falling) edge of an input signal is pretty simple and should
allow real time compensation for frequency error and drift of the TXCO
clock at a rate sufficient to solve the frequency error problem for many
applications - if not all of them - provided one has a suitable source
of an accurate reference clock at some useful frequency (typically 1
PPS, but other values like 1 or 10 KHz are possible).
--
Dave Emery N1PRE/AE, address@hidden DIE Consulting, Weston, Mass 02493
"An empty zombie mind with a forlorn barely readable weatherbeaten
'For Rent' sign still vainly flapping outside on the weed encrusted pole - in
celebration of what could have been, but wasn't and is not to be now either."