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 <j99har...@gmail.com>
 To: Bob Stewart <b...@evoria.net>; Discussion of precise time and frequency 
measurement <time-nuts@febo.com> 
 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 <b...@evoria.net> 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 -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to