Using a GPS module as variable frequency reference standard

preview_player
Показать описание
This video shows how to build a variable frequency reference standard using an inexpensive GPS module and a few extra components.
It also shows why some frequencies have a lot of jitter and how to avoid excessive jitter.

U-Center can be downloaded from the Ublox website
Рекомендации по теме
Комментарии
Автор

Instead of using brute force methods to obtain jitter-free frequencies I just used a internet app to obtain the factors of the oscillator base frequency.
Factors are "whole number" divisors i.e. they have zero decimal places.
The app returned a list of 140 factors for 24, 000, 000, all of which give jitter-free PPS output from my U-BLOX M8N. A very easy solution.
Because information available elsewhere suggests the M8N has a 28MHz oscillator I also factored 28, 000, 000 but the only jitter-free signals I could obtain from the result were those factors which were common to 24, 000, 000.
This confirms that the M8N oscillator runs at 24MHz.

mikestandish
Автор

I built the Scullcom generator and am pleased with it. Thank you for this video explaining jitter. I found it very interesting.

binarybox.binarybox
Автор

E-x-c-e-l-l-e-n-t information; thorough and presented in a easily understandable manner. Top-quality video production. Thank you so much for sharing your knowledge with us. It must require a tremendous amount of work. Thank you, thank you!


A good while ago, I watched Scullcom's GPS Standard Project videos several times, but I have not built his device. One reason is because I like to work with PIC MCUs, but I don't know how to code (really, ) and porting over the Arduino code is beyond me. Your solution to just use the U-Center for control makes things easier. I don't think Louis finished devising a solution for the jitter.

td
Автор

Very clear explanation of the causes of the jitter and what solutions can be used and their consequences. I’m happy I found your channel and subscribed.

EwaldBurger
Автор

I experimented with a NEO-something GPS module a couple of years ago as a freq. standard, and was rather disappointed to find exactly what you have shown here - that the 10MHz I wanted jittered badly, and also that 8MHz did not :o) Your explanation of the likely way these modules do this is very clear. Your graphics are great too ! In the end I stuck with my previous 10MHz standard, which is a PLL controlled xtal osc, locked to our BBC transmitter in the UK on 198kHz - I just wanted to test out the GPS method too, in case it was somehow better. Also, my NEO module had no memory for settings, so it would be complicated to use it as a standalone freq. standard which you just power up and use without a PC. Your module must be a later version with flash in it :o) Cheers, Dave

noakeswalker
Автор

Well done on sorting all that out and explaining it thoroughly in a very understandable way. Very interesting video.

GCHP
Автор

Very interesting and educative video ! Congratulations ! Would it be possible to get your list of so-called "safe" (or jitter free) frequencies ?

davidvb
Автор

Is 24 MHz actually correct? Your measurements seem to show it is; however, the data sheet seems to be different.

The u-blox8 data sheet says: “The module's internal 30.72MHz VCTCXO is disciplined by the module and provides the frequency reference to the platform. The module provides a PPS signal to synchronize the platform's physical layer.”

The u-blox7 data sheet says: “The receiver is dependent on a local oscillator (normally a TCXO or Crystal oscillator) for both the operation of its radio parts and also for timing within its signal processing. No matter what the nominal frequency the local oscillator is (e.g. 26MHz), u-blox receivers subdivide the oscillator signal to provide a 1kHz reference clock signal which is used to drive many of the receiver's processes.”

mahtin
Автор

Thank you for this clear and informative video ... excellently put together. Also, thanks for sharing your two sided board layout, it saved me a lot of time ! I built a copy from those plans. I was surprised at one thing (maybe my expectation was wrong): I was surprised that the Schmidt Trigger drivers didn't clean up the signal more at even moderately high frequencies (e.g. 4 MHz) ... was it wrong to expect more square waves ? (I understand the ringing from a high impedance input). Perhaps it was just my hastily put together test setup. Thanks again, and any insights would be greatly appreciated.

danielatbasementtech
Автор

I built the circuit on a breadboard, but with a CD40106B, because that is what I have on hand. It is P-2-P compatible. I don't know about specs comparability. I used a triangle wave. At 1MHz the waveform was already significantly degraded. At 2Mhz, the top of my Generator's ability, I would have to question the waveform's reliability, because the knee on the trailing edge is almost non-existent and could even be approaching the lower level cutoff of the trigger. This is new to me, so if I am not using the correct terms, I apologize. I wonder if progressing to a perf board might improve things... Or, if there is a better brand/model of trigger? Anyway, this was a very interesting project. Thank you for your help.

td
Автор

Even if this is an older thread: To get around that modulo divider problems, would it help to play with the PWM ratio? maybe there can be a quite safe value defined for the 10 MHz, e.g. 12%. Did not dive into the math required for this. This would be similar to the monoflop proposed before. And reasoning about if the rising or falling edge is more stable ;) Very good job, Thank You

andreasdrim
Автор

Hello, Heinz. It has been three years, since I last commented here, and I am considering, again, the unsafe number jitter that you discovered. As I understand it, the Atomic Clock Reference Pulse provided by the NMEA data stream is a one second pulse. (This pulse is easily sourced from the GPS module.) As it is the GPS MCU that creates the math error, would not we do better to create our own precision multiplication method, be it hardware, or MCU/software, and use the one second pulse as our reference to correct the newly created means of multiplication? Meaning, we avoid the UBlox math difficulty by not using the UBlox math calculation. If so, what hardware and MCU/software solutions might you suggest? I guess the goal would be being able to create any infinitely variable frequency with a great magnitude of precision. If we are multiplying by one (pulse, ) maybe this is somewhat less difficult? For the fixed frequency of 10MHz, which I think is the frequency that most people desire for a reference standard, how about just adjusting a 10MHz voltage controlled OCXO every second? I am not a precision guy, so I do not know how well that a one second lag between updates would go over with the folks that chase such precision. Edit: A Hardware solution might simply equal Scullcom's divider circuit dividing the one second pulse by 10M?

td
Автор

Why not try something like an AD9833 to generate the intermediate frequencies?

LMJohnson
Автор

Excellent video Well explained, learnt a lot about jitter.

pcuser
Автор

Very good work. Thanks a lot for this nice understandable presentation.

sebaschtl
Автор

But is the "safe frequency" actually accurate though? Is the 24Mhz main clock always accurate because its GPS?
For example: if the 24MHz main clock is from some random crystal oscillator, and the GPS circuitry is "fixing" the expectedly low-frequency output clock with some logic. When you ask for a 12Mhz output, the 12Mhz will be based on the inaccurate 24Mhz crystal and will skip a 1/24M second step every time it decides the 24Mhz inaccurate 24Mhz crystal needs some fixing. So after all, there is no benefit in using a GPS over a TCXO.

leozendo
Автор

Would it be a good approach to try to remove the jitter digitally? Use an MCU, as you would to remove a ring, or switch bounce... That is, have the MCU detect the starting edge of the signal and wait a ("blackout") period, before detecting the next edge... Or will the MCU just not be fast enough to do this? (I am a MCU novice.) I like the PIC18F4550, which takes 4 cycles to execute an operation.

td
Автор

Try a neo8, it has no issues with 24Mhz output and you can feed that into a cheap si5351 module to get practically any output frequency within si5351 limits (~280MHz). Phase noise is not the greatest ...

galileo_rs
Автор

hello, the internal neo-7 crystal under the shielding is 26Mhz. i wanted to replace this 2520 tcxo crystal with an other that will divide to 10Mhz with no jitter ( i didn't find anyone who did that) . the fact that it's a 26Mhz and not a 24Mhz is confusing. any recommendations other then desoldering the crystal and injecting external frequency from an external generator and see what happens? did anyone tried this?

davidtzaig
Автор

My brother found an error I made on my schematic. I had carried that over onto the breadboard. So, my test results were invalid. I ordered the correct Schmitt Trigger. I will insert the new S-T, re-test and post my results. I am sorry for the confusion.

td
visit shbcf.ru