Keyboard Shortcuts
Likes
- HBTE
- Messages
Search
Re: Quick and dirty GPSDO build by F2DC and me.
Using the 10MHz output as external reference to a Siglent spectrum analyzer made it clear the frequency is stable enough to measure a 1GHz signal with 10Hz or better accuracy but the fractional spurs of the SI5351 (rather prominent due to the fractional correction close to the integer divider) are directly reflected in the spectrum analyzer performance.
Using the Siglent SA with its internal TCXO for measuring the 100th harmonic of 10MHz (1GHz)? from the GPSDO showed good stability after warming the Siglent SA for 30 minutes, which is in agreement with the recommended 40 minutes warming up time. -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
A graph showing how the set frequency is corrected over time to keep the output at 10MHz
The measurement was started 30 seconds after power on. After roughly 30 minutes the TCXO seems to become stable but all variations after 7 minutes are already below 1e-8 The delta count measured for 1e+9 pulses after 30 minutes is maximum 2 so it may be good to do a test with a order higher count -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
Test seems to be OK. afreq is the frequency times 100 that is set to create the 10MHz GPS locked output.
Stable enough to go to a 400 seconds period using a 1e+9 pulse count Delta's for the last 5 400 seconds periods where 2,1,-4,3,-1 pulses? The largest correction using the 4 pulse delta was 4e-9 or 0.04Hz on the 10MHz output. A bit on the high side but still well within 1e-8 Will let it run a bit longer to judge stability. For now there does not seem to be a substantial drift, just noise in the measured frequency. Keep in mind this GPSDO jumps to a new frequency instead of slowly changing. For accurate measurements it may be wise to have a switch to temporarily disable updates avoiding a (small) jump in the middle of a measurement Log: 0:0:4 Z dur=1 meas=2499996 targ=2500000 dif=-1600 calf=2287 tfreq=1000002287 afreq=1000002287?
0:0:6 Z dur=1 meas=2500001 targ=2500000 dif=400 calf=1887 tfreq=1000001887 afreq=1000001887 Lock
0:0:9 Z dur=2 meas=5000004 targ=5000000 dif=800 calf=1087 tfreq=1000001087 afreq=1000001087?
0:0:12 Z dur=2 meas=5000000 targ=5000000 dif=0 calf=1087 tfreq=1000001087 afreq=1000001087 Lock
0:0:17 Z dur=4 meas=10000002 targ=10000000 dif=200 calf=887 tfreq=1000000887 afreq=1000000887 Lock
0:0:26 Z dur=8 meas=20000003 targ=20000000 dif=150 calf=737 tfreq=1000000737 afreq=1000000737 Lock
0:0:43 Z dur=16 meas=40000004 targ=40000000 dif=100 calf=637 tfreq=1000000637 afreq=1000000637?
0:1:0 Z dur=16 meas=40000000 targ=40000000 dif=0 calf=637 tfreq=1000000637 afreq=1000000637 Lock
0:1:33 Z dur=32 meas=80000002 targ=80000000 dif=25 calf=612 tfreq=1000000612 afreq=1000000612 Lock
0:2:38 Z dur=64 meas=160000002 targ=160000000 dif=12 calf=600 tfreq=1000000600 afreq=1000000600 Lock
0:4:47 Z dur=128 meas=320000000 targ=320000000 dif=0 calf=600 tfreq=1000000600 afreq=1000000600 Lock
0:9:4 Z dur=256 meas=640000005 targ=640000000 dif=7 calf=593 tfreq=1000000593 afreq=1000000593?
0:13:21 Z dur=256 meas=640000000 targ=640000000 dif=0 calf=593 tfreq=1000000593 afreq=1000000593 Lock
0:20:2 Z dur=400 meas=1000000002 targ=1000000000 dif=2 calf=591 tfreq=1000000591 afreq=1000000591 Lock
0:26:43 Z dur=400 meas=1000000001 targ=1000000000 dif=1 calf=590 tfreq=1000000590 afreq=1000000590 Lock
0:33:24 Z dur=400 meas=999999996 targ=1000000000 dif=-4 calf=594 tfreq=1000000594 afreq=1000000594
0:40:5 Z dur=400 meas=1000000003 targ=1000000000 dif=3 calf=591 tfreq=1000000591 afreq=1000000591 Lock
?0:46:46 Z dur=400 meas=999999999 targ=1000000000 dif=-1 calf=592 tfreq=1000000592 afreq=1000000592 Lock
?
?
-- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
Github
https://github.com/erikkaashoek/Arduino_SI5351_GPSDO -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
Sverre, thanks for the reference.
After a lot of testing the culprit was indeed the Etherkit library. Using the very small routines from Marcus W3PM I made a version where the actual frequency after setting all the SI5351 registers was calculated and it became clear the SI5351 should be under total control of the GPSDO to ensure the 2.5MHz counting frequency and the 10MHz output frequency are completely phase locked. It proved also its insufficient to only set the fractional output divider as is done in the Etherkit library. The frequency error after setting the registers was often above 5e-8 In a simulation it became clear that using a fractional PLL setting search algorithm it was possible to have a frequency error less then 1e-9 (relative to the TXCO frequency) so the search is now implemented and the test is running. Using the search algorithm it should be possible to use the SI5351 to have an error of the corrected 10MHz of less than 1e-10 (relative to the TXCO frequency) so if the test goes well it may be possible to improve accuracy with a factor 10 if the TCXO is sufficiently stable -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
While doing tests at 1GHz using the 5th harmonic of a 200MHz output of the Si5351 the used Etherkit SI5351 library appears to have a bug/limitation that limits the resolution of the frequency correction.
Although claimed to be settable in PPB the actual resolution seems to be 10PPB or worse as small corrections (below 10 delta) do not seem to have any effect unless a certain threshold in the correction is passed So be aware that even with a very stable SI5351 the frequency error could easily be above 1e-8. Let me do some more analysis and come back. -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
Did some more experiments and decided the X-tal in the SI5351 is the limiting factor in stability so replaced it with a cheap 26MHz TCXO
stability is great now See the datasheet of the SI5351 on how to connect the TCXCO. Removing the XTal with a hot air gun was quick. I also changed the program to step quicker to higher measurement intervals if the delta is less than 3 counts. Will upload updated source to github after this post Be aware the SI5351 XCO frequency is now set to 26MHz. Change to whatever frequency you are using. This is the console output during the first 30 minutes: 0:0:3 Z dur=2 meas=18446744073709551612 targ=9000000 dif=-999000444 calf=15900?
0:0:5 Z dur=1 meas=4499926 targ=4500000 dif=-16428 calf=-528?
0:0:7 Z dur=1 meas=4500000 targ=4500000 dif=0 calf=-528 Lock
0:0:10 Z dur=2 meas=8999999 targ=9000000 dif=-111 calf=-639 Lock
0:0:15 Z dur=4 meas=18000000 targ=18000000 dif=0 calf=-639 Lock
0:0:24 Z dur=8 meas=36000001 targ=36000000 dif=27 calf=-612 Lock
0:0:41 Z dur=16 meas=71999999 targ=72000000 dif=-13 calf=-625 Lock
0:1:14 Z dur=32 meas=144000003 targ=144000000 dif=20 calf=-605?
0:1:47 Z dur=32 meas=143999999 targ=144000000 dif=-6 calf=-611 Lock
0:2:52 Z dur=64 meas=287999998 targ=288000000 dif=-6 calf=-617 Lock
0:5:1 Z dur=128 meas=575999995 targ=576000000 dif=-8 calf=-625?
0:7:10 Z dur=128 meas=576000015 targ=576000000 dif=26 calf=-599?
0:9:19 Z dur=128 meas=575999997 targ=576000000 dif=-5 calf=-604?
0:11:28 Z dur=128 meas=575999999 targ=576000000 dif=-1 calf=-605 Lock
0:15:11 Z dur=222 meas=998999995 targ=999000000 dif=-5 calf=-610?
0:18:54 Z dur=222 meas=999000000 targ=999000000 dif=0 calf=-610 Lock
0:22:37 Z dur=222 meas=998999999 targ=999000000 dif=-1 calf=-611 Lock
0:26:20 Z dur=222 meas=998999997 targ=999000000 dif=-3 calf=-614?
0:30:3 Z dur=222 meas=998999996 targ=999000000 dif=-4 calf=-618?
?
?
222 seconds is the longest time for this version as it uses a 45MHz output for measuring the PPS and it will measure maximum 999e+6 counts to get within 1e-8 stability.-- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Honey, I Shrunk The Tester
Hello Dennis,
not sure, if you are aware, that there is a very refined component tester using minimal hardware based also on the ATMEGA328. It is a design by Markus Frejek further developed by Karlheinz K?beler. Just Google for "Transistortester Karlheinz K?beler". It is by far not limited to transistors (BJT, FET, MOSFET) but automatically recognizes the component connected,? e.g. diodes, resistors, capacitors, inductivities etc? Documentation is available at least in English and German. Source code in C is available for numerous display types and some small HW variations.? All devices called "LCR-T4 MEGA328 Transistor Tester" on eBay are based on this design @ approx. EUR 13. -- Joerg, ex-DB2OO |
File Notifications
#file-notice
[email protected] Notification
Dennis Zabawa <kg4rul@...> added folder /Honey I Shrunk The Component Tester - Build Description The following files have been uploaded to the Files area of the [email protected] group. By: Dennis Zabawa <kg4rul@...> Description: |
Re: Quick and dirty GPSDO build by F2DC and me.
To understand the impact of temperature fluctuations the simulation is extended to have? a perioding temperature change causing a 2 Hz temperature fluctuation over a 1.6 hour period. The feedback loop was made adaptive, e.g. the measurement time is reduced during a lot of drift and increased when no drift to improve reaction speed and measurement accuracy
The fluctuations are reduced with a factor of 10, to +/- 0.1Hz using a reference frequency of 45MHz so 2e-9 accuracy. Adding feed forward to compensate during the (more or less) stable drift periods the fluctuations are somewhat reduced but the lack of data (each measurement period ranging from 1 to 128 seconds observes less than 10 correction pulses) makes an effective drift prediction and correction difficult ?Notice the time scale has increased as the reduction of error (e.g. a prediction of the drift) has enabled in average longer measurement periods To reach 0.01Hz stability (well below 1e-9 error) the fluctuating drift has to be less than 0.1Hz and the period of the drift preferably above 10 hours otherwise a 45MHz clock and below 400seconds measurement time will not be able to measure sufficient data to counter the drift. -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
To better understand I did some simulations.
Once the measurement time is above 10 seconds the 100ns PPS jitter is no longer relevant given the measurement time and measurement frequency. Drift is a problem as the current feedback loop has no feed forward to compensate for a constant drift so the drift leads to a frequency error In the simulation I have been able to add the feed forward and the drift can be compensated. Its clear that temperature stability will be the main factor determining the frequency accuracy as the feed forward to compensate for the drift requires some measurements to measure the drift and if the drift changes a frequency error will persist In below chart the simulation tries to estimate the drift and correct for it but is unable to calculate the exact drift as the counting of the frequency and the correction of the frequency has limited accuracy. Delta is in Hz, Delta*100 is in 0.01Hz.? -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
Very interesting discussion. The Lars Gpsdo is documented here:?
It is a phase-locked loop rather than a frequency-locked loop, which seems to be the way to go in order to avoid tiny frequency jumps. ?His?experience with integration time is as follows: ¡°Typical ?values ?for ?an ?XO ?might ?be ?5-30 ?seconds, ?for ?a ?good ?TCXO ?30-100s, OCXO ?100-1000s and ?a rubidium ?2000-10000s.¡± Sverre LA3ZA |
Re: Quick and dirty GPSDO build by F2DC and me.
On Wed, Jun 23, 2021 at 01:35 PM, Sverre Holm wrote:
My SI5351 never became stable enough to go beyond 400s (but I now understand this may be the PPS jitter)? Yes. Minimum frequency compensation of the SI5351 is 0.01Hz ? -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
Alan,
So once the 400S measurement period is reached and the variations are sufficiently low (say below 20) the control loop should change from jumping to a low pass filtered compensation in the hope the SI5351 module is sufficiently thermally isolated so the fluctuations in the measurement are only coming from the jitter in the PPS? -- HBTE Files section:?/g/HBTE/files Erik, PD0EK |
Re: Quick and dirty GPSDO build by F2DC and me.
¿ªÔÆÌåÓýThe jitter in the 1PPS signal depends on the GPS receiver, an older unit from 10 years back may have around 100nS jitter, a recent unit around 20-30nS.? Receivers are of two kinds position finding ¨C optimised for fast location? and? timing which are optimised for timing accuracy after they have surveyed a fixed position. ?A timing grade GNNS receiver can offer 1-3nS precision after processing. ? Nearly all cheap modules are position finding, they have higher jitter but are usable for home use. ? Any GPSDO sits between two limits, the 1PPS has very high 24 hour accuracy ?( parts in 10E-13 )but has some second to second jitter. A crystal oscillator? may have very good stability over 1 second but wonder many parts per million over a day or much less. So a GPSDO has to ?filter the intrinsic drift of the crystal oscillator? by using the precise but jittery GPS 1PPS. ?Note that the jitter is not Gaussian noise but ?mainly a periodic fluctuation due to the receiver processing . Ionospheric noise introduces around 1ns noise. ? For any crystal oscillator there is? an optimum? ¡°cross over¡± frequency? for the control loop to minimise jitter in the GPSDO output. A good commercial GPSDO can use a time constant of 400-800S with a high grade ovenised oscillator. ? An ambient temperature crystal is the worst case.? Shielding the crystal from air currents helps as does increasing the thermal mass. A TCXO ( temperature compensated ) is a bad choice in some cases as some modern units use stepped compensation. The best choice is an ovened crystal where the crystal is heated to a constant temperature which can be adjusted to an optimum temperature for that crystal.?? ? An ovenised crystal will use 1-10 W of energy all of the time? but it should have very good stability allowing heavy filtering of GPS jitter. Digital division and counting with a frequency locked loop? is the worst possible method as it cannot track and correct continuously, only allow the error to accumulate then make a step change after a long period.? Although it is akin to a huff and puff the H&P corrects rapidly so the action appears continuous whereas frequency locking with very long periods leads to discrete jumps in frequency. ? An optimum method counts oscillator cycles during 1 sec periods for rough correction during initialisation then integrates the phase difference every second. It is not necessarily complex, a popular design uses two cheap IC¡¯s and an Arduino nano .? Lars GPSDO can be found on Github. ? 73 Alan G8LCO ? ? ? Sent from for Windows 10 ? Groups.io Links: You receive all messages sent to this group. View/Reply Online (#1664) | Reply To Group | Reply To Sender | Mute This Topic | New Topic THIS GROUP: <groups.io/g/HBTE> RELATED GROUP: <groups.io.g.BITX20> Your Subscription | Contact Group Owner | Unsubscribe [g8lco1@...] _._,_._,_ ? |
Honey, I Shrunk The Tester
SPARKFUN? ARDUINO COMPONENT TESTER RE-PACKAGED
I recently came across an Arduino based, Component Tester project by SPARKFUN?. ?
?
Following the directions in the article, I bread-boarded the circuit, using an Arduino UNO,? and found it to be a potential, useful addition to my test bench.? However, the form factor left something to be desired.? So, I flashed the firmware into an Arduino Nano and found no difference in the operation.? Now I had a way to make a smaller, permanent tester.??
I found some small, project boxes in my stock that fit the bill perfectly -? 58MM wide x 35MM high x 15MM thick.
?
I entered the schematic into the FRITZING program and created a PCB to fit into the box.? UNFORTUNATELY I forgot to rotate the NANO on the layout and the boards are useless.? I have reverted to point-to-point wiring.
?
I am posting a short PDF describing the build in the files section.Dennis KG4RUL ?
? |
Re: Quick and dirty GPSDO build by F2DC and me.
Hi Erik A couple of questions: Is there a particular reason why you stopped at 400 s as the?maximum measurement time?? And second, is this how you compute the frequency error corresponding to a single step at max time resolution: As 400s * 2.5 MHz = 1e9, then at an output?frequency of 10 MHz, one step in the displayed error corresponds to 10 MHz * 1e-9 = 0.01 Hz ? 73 Sverre LA3ZA ons. 23. jun. 2021 kl. 20:14 skrev Erik Kaashoek <erik@...>:
|