Hi all!
For periodic frequency counter tests I started experimenting with a u-blox NEO-7N GPS receiver bought from chipworld on ebay for only 9.98$ (but at his moment he sells only NEO-7M receivers for a little higher price). I don't know if it is a good one (the chip under the shield is a ublox G7020-KT, then it seems to be good...), but it works. I have written a program for Arduino (ATmega328P) to adjust the pulse out signal frequency from 1Hz to 15MHz in 1Hz steps.
Output frequency is very accurate when GPS signal is received. There could be more or less jitter, because frequencies come from an internal 48MHz, then integer sub multiples should have less jitter than others, i.e. 12MHz have a low jitter; 10MHz have more jitter; nevertheless, in some cases it is not very clear... If I'm right, 8MHz or 6MHz is not as good as 12MHz, but it's only an example, because I'm not sure and I can't verify at this moment. In the PCB is also mounted a little battery. According to a schematic diagram I found, it should be a MS621FE-FL11E rechargeable Li-MnO2 3V 5.5mAh (five mAh!): at full charge, it should last for about 6 days. During this time, the internal TCXO maintains the adjustment and produce the same exact frequency also in absence of a GPS signal.
Before discovering the TCXO adjust memory, I added to the software a correction menu: I can set correction in 20th of a ppm (-5.00, -4.95, -4.90, ... , -0.05, 0, +0.05, ..., +4.95, +5.00 ppm). It is recalled at each startup, applied to the current frequency and sent to the GPS module as no-lock frequency (GPS module can switch between two frequencies depending on the GPS-lock status), but it should not be applied if the error correction is already stored in the module!
Then the question is:
That's OK I can install a higher capacity battery, but how can I manage all this?
If battery goes low after a long time or it is the first time I use that module and GPS signal is not locked, how can the program know that settings (with the frequency correction) are lost or never stored, then it has to apply an external correction?
I would not make something very complex, because it is not a commercial project, but a simple solution would be useful for me and for each one would be interested in this very simple project.
If someone has already addressed this topic, he could share his solution.
Thank you all
Gianluca from Roma, Italy
P.s.: I've added a En version, with instructions and other in English.
