I just noticed that my reply didn't go to the list so...
Thanks for the reply. What I'm really looking for is a way to do everything in
the PIC. I've been experimenting with saving the DAC value in a circular queue
every 20 seconds for 60 minutes, and plotting the difference value between the
head and tail of the queue every second. After posting this question, I took
another look at the overall behavior and decided to cut the queue size down
from 60 minutes to 5. At the moment, I'm doing a trial run of integrating the
difference values starting at the point where I decide that it's locked. Maybe
I'll gain enough insight from this to get a better idea on calculating the
aging rate. The 5 minute queue seems to give me a good indication of how well
the PLL is locked. Maybe saving the integrated values into a longer queue
that's sampled once every 5 minutes will give me something for aging rate.
Bob -----------------------------------------------------------------
AE6RV.com
GFS GPSDO list:
groups.yahoo.com/neo/groups/GFS-GPSDOs/info
From: Jim Harman <[email protected]>
To: Bob Stewart <[email protected]>; Discussion of precise time and frequency
measurement <[email protected]>
Sent: Wednesday, October 5, 2016 4:37 PM
Subject: Re: [time-nuts] Measure GPSDO stability with minimum resources?
On Wed, Oct 5, 2016 at 1:37 PM, Bob Stewart <[email protected]> wrote:
For my GPSDO, I need to calculate the OCXO aging for holdover projection
purposes as well as get some figure of merit for the recent past of the OCXO
stability.
Do you have a serial port or some way of generating a logging stream?
If so, one low-overhead way to track the aging is to compute an average DAC
value and periodically "print" the result to the serial port. I have found that
a 3-hour average works well for observing aging. Each second you simply add the
current DAC value to a Long and after 3 hours divide by 10800, print the
result, reset the total, and repeat. It is helpful to also include the current
time. This could be extracted from the GPS NMEA data or simply be seconds
since startup. If you separate the values with a Tab and end each set of values
with a newline, you can capture the data with an attached PC, copy/paste to
Excel, and analyze it there. The trend line feature in Excel's chart will
compute and display a least square fit to the aging.
If you don't want to keep the monitor connected full time and you have some
extra RAM or preferably EEPROM, you can store historic average values in a
circular buffer and print one of the values every second. 288 bytes will store
18 days worth of 16 bit 3-hour averages.
My system, based on the one posted here by Lars Walenius some time ago,collects
144 sets of 5-minute averages (12 hours worth) and another 144 sets of 3-hour
averages. It spits out one line of logging data each second. The first part of
each line has the current data, and the second part has either one of the
5-minute sets or one of the 3-hour sets. So 5 minutes worth of logging data has
300 lines, showing current data plus 5-minute averages for the past 12 hours
and 3-hour averages for the past 18 days.
All this, including the GPSDO code, fits comfortably in a 32u4-based Arduino
Micro, which has 32K of program memory, 2.5K of RAM, and 1K of EEPROM.
--
--Jim Harman
_______________________________________________
time-nuts mailing list -- [email protected]
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.