Author Topic: Lars DIY GPSDO with Arduino and 1ns resolution TIC  (Read 99010 times)

0 Members and 2 Guests are viewing this topic.

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #725 on: October 17, 2020, 08:55:38 am »
Did you do the TIC linearization?

No I haven't done that. Is it essential to maintain lock?

Mike
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #726 on: October 17, 2020, 09:24:34 am »
Did you do the TIC linearization?

No I haven't done that. Is it essential to maintain lock?

Mike

I haven't analyzed your data, but if you have discontinuities between the fine and coarse TIC parts, that will cause jumps in the phase measurements. Remember you changed the resistor in the interpolator part, so 1 microsecond might not correspond to 1000 fine TIC units. It also didn't with the original resistor value since you got overruns, remember? The "10MHz missing" messages...

I'd say, doing the TIC linearization is essential for a Lars GPSDO.
Everybody likes gadgets. Until they try to make them.
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #727 on: October 17, 2020, 09:39:21 am »
@ Thankfat:
Quote
I'd say, doing the TIC linearization is essential for a Lars GPSDO.

I searched this forum for "TIC linearization" and can only find references to that use in TimeLab.

Can you please enlighten us on how to do what your asking us to do?

 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #728 on: October 17, 2020, 09:57:54 am »
I haven't analyzed your data, but if you have discontinuities between the fine and coarse TIC parts, that will cause jumps in the phase measurements. Remember you changed the resistor in the interpolator part, so 1 microsecond might not correspond to 1000 fine TIC units. It also didn't with the original resistor value since you got overruns, remember? The "10MHz missing" messages...

I'd say, doing the TIC linearization is essential for a Lars GPSDO.

You have a good memory! However, the resistor change was in my first GPSDO, which followed the Lars design.

My current experiments are with Dbldutch's modified design, which didn't have that problem.

Mike
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #729 on: October 17, 2020, 11:26:04 am »
I decided to eliminate possible problems with the satnav signal by replacing the Chinese U-blox NEO-7M with a genuine M8T (curse this addiction  :'().

I'm running it again at tc=100s. After gaining lock, it unlocked 95 minutes later then locked again after 547 seconds (same interval as before). It's still locked 8 hours after that. You can see the DAC value taking a dive when it lost lock.

Is it OK to feed the 3.3V logic level from the U-blox to the 5V HC4046 without a level shifter?

Mike
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #730 on: October 17, 2020, 12:30:21 pm »
Mike, you are supplying a 3V3 level output signal to a 5V input, so there will be no smoke and the 3V3 is safely above the 5V signal threshold level.
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #731 on: October 17, 2020, 01:21:26 pm »
@ Thankfat:
Quote
I'd say, doing the TIC linearization is essential for a Lars GPSDO.

I searched this forum for "TIC linearization" and can only find references to that use in TimeLab.

Can you please enlighten us on how to do what your asking us to do?

Page 12 in Lars original documentation.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Dbldutch

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #732 on: October 17, 2020, 01:25:09 pm »
I decided to eliminate possible problems with the satnav signal by replacing the Chinese U-blox NEO-7M with a genuine M8T (curse this addiction  :'().

I'm running it again at tc=100s. After gaining lock, it unlocked 95 minutes later then locked again after 547 seconds (same interval as before). It's still locked 8 hours after that. You can see the DAC value taking a dive when it lost lock.

Is it OK to feed the 3.3V logic level from the U-blox to the 5V HC4046 without a level shifter?

Mike

What is the "ppb" graph?
Everybody likes gadgets. Until they try to make them.
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #733 on: October 17, 2020, 02:19:16 pm »
What is the "ppb" graph?

It's the diff_ns readings.

Mike
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #734 on: October 17, 2020, 02:29:02 pm »
@ Thankfat:
Quote
I'd say, doing the TIC linearization is essential for a Lars GPSDO.

I searched this forum for "TIC linearization" and can only find references to that use in TimeLab.

Can you please enlighten us on how to do what your asking us to do?

Page 12 in Lars original documentation.

Yes I read that when I started out, but I didn't understand it and I thought it was only needed when using the first method to get optimum tc.

Am I right that the TIC offset should be 500? For some odd reason mine is 68.

Mike
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #735 on: October 17, 2020, 02:58:09 pm »
The TIC offset should be 500, yes, because that puts it smack center in the most linear region of the ADC, and provided you did the TIC linearization properly, you should have +/- 500ns of "drift space" before the fine TIC wraps.
Everybody likes gadgets. Until they try to make them.
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #736 on: October 17, 2020, 03:05:54 pm »
@ Thinkfat:

The second paragraph on page 12 is confusing to say the least, at least for me.

However, I looked again at the data Mike provided earlier, the one where he used a TC of 4, and there his filtx10 values are in a band of about 570-800.
I looked at a run of my Trimble also with a TC of 4, and there the filtx10 values are centered around 5,000 +/- 100 which seems to be more correct.

I looked at his provided f2 and f4 data and I totally missed his offset, which is indeed wrong.

Sorry Mike!



 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #737 on: October 17, 2020, 03:12:02 pm »
@ Thinkfat:

The second paragraph on page 12 is confusing to say the least, at least for me.

However, I looked again at the data Mike provided earlier, the one where he used a TC of 4, and there his filtx10 values are in a band of about 570-800.
I looked at a run of my Trimble also with a TC of 4, and there the filtx10 values are centered around 5,000 +/- 100 which seems to be more correct.

I looked at his provided f2 and f4 data and I totally missed his offset, which is indeed wrong.

Sorry Mike!

I'm glad some of the experts find it confusing too! I have no idea why my TIC offset was 68. I have never set a value for it so I presume it loaded as a default when I erased the EEPROM and saved the data? Anyway it is now 500 and locked again so we'll see what happens. I'll play with the linearisation when (if) I undrestand how to do it!

Mike
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #738 on: October 17, 2020, 03:14:52 pm »
@ Thinkfat:

The second paragraph on page 12 is confusing to say the least, at least for me.

However, I looked again at the data Mike provided earlier, the one where he used a TC of 4, and there his filtx10 values are in a band of about 570-800.
I looked at a run of my Trimble also with a TC of 4, and there the filtx10 values are centered around 5,000 +/- 100 which seems to be more correct.

I looked at his provided f2 and f4 data and I totally missed his offset, which is indeed wrong.

Sorry Mike!

Well, the linearization is necessary for using the GPSDO electronics for timestamping, however, for all the graphs to make sense, you need to make sure that the interpolator values are indeed covering a range of 1000ns. For this, you need to see where the ADC wraps, find the min and max and provide this input to the software.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Dbldutch

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #739 on: October 18, 2020, 08:46:54 am »
@thinkfat:

I must admit that I never bothered to deal with the linearization, because I didn't understand it, nor the implications.

Please help us to understand.

For both my OCXO's, the f2 reports shows the TIC_offset = 500, the TICmin = 12.0, the TICmax = 1012, Square comp = 0.100
I believe these are the default values.

Below are the graphs for the filtx10 and the DAC values.

How do I figure out the values to set the min/max parameters for the linearization correctly, and what is the intended effect?
 
« Last Edit: October 18, 2020, 08:53:28 am by Dbldutch »
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #740 on: October 18, 2020, 09:09:15 am »
@thinkfat:

I must admit that I never bothered to deal with the linearization, because I didn't understand it, nor the implications.

Please help us to understand.

For both my OCXO's, the f2 reports shows the TIC_offset = 500, the TICmin = 12.0, the TICmax = 1012, Square comp = 0.100
I believe these are the default values.

Below are the graphs for the filtx10 and the DAC values.

How do I figure out the values to set the min/max parameters for the linearization correctly, and what is the intended effect?

You need to set the points where filtx10 wraps. Otherwise you have no correspondence between raw ADC values and phase difference in nanoseconds. How you do that is explained on page 12 of the manual.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Dbldutch

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #741 on: October 18, 2020, 09:32:38 am »
@Thinkfat

Sorry, I don't understand what you mean with "wraps".

Do you mean the "band" around the mean? This would mean for the Trimble +60 and -90 and for the Bliley +30 and -30?
Does this mean a min of 90 and a max of 60 for the Trimble and 30:30 for the Bliley?

If I understand Lars, we need to set the right span of the TIC. Which is linearization min and max.
With the command "l" min can be set with values 0.1-50 and max can be set with values 800-1023
So how does that work with above values?



 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #742 on: October 18, 2020, 09:56:33 am »
@Thinkfat

Sorry, I don't understand what you mean with "wraps".

Do you mean the "band" around the mean? This would mean for the Trimble +60 and -90 and for the Bliley +30 and -30?
Does this mean a min of 90 and a max of 60 for the Trimble and 30:30 for the Bliley?

If I understand Lars, we need to set the right span of the TIC. Which is linearization min and max.
With the command "l" min can be set with values 0.1-50 and max can be set with values 800-1023
So how does that work with above values?


It's not about the "band" around the mean. It's about the raw ADC range covered by the phase difference range of the interpolator.
Please, read the instructions on page 12 and recall how the interpolator works. Think about the phase difference range it can display with its 1MHz input frequency.
Everybody likes gadgets. Until they try to make them.
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #743 on: October 18, 2020, 11:30:02 am »
Paul, my understanding of what Lars wrote is that you set the TIC Offset to 1,000 and watch the variation in the filtx10 values. Mine went from a minimum of 9810 to a maximum of 10220 over a short period. I used the l command to store these as 98 for TICmin and 1022 for TICmax. The default values I had were 120 and 1012.

I have no idea what the "squared" value is or how to establish it.

Mike
« Last Edit: October 18, 2020, 11:51:23 am by Mike99 »
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #744 on: October 18, 2020, 12:29:34 pm »
Hi Mike,
I have set the TIC offset to 1,000 for both of my units as well.

In the first sentence of the 3rd paragraph on page 12, Lars wants you to set the TIC offset from 500 to 1,000 when the system is locked, but when you do, you loose the lock immediately. Which makes sense because the ns values go down by 500. What does not make sense to me is what numbers from the filtx10 column to take, and when.

My filtx10 values are jumping up and down, but also steadily going up. I'm not sure if you can just take the min/max out of whatever number of minutes your sample is, or if you have to wait for the unit to lock again.

My min max numbers out of the first 7 minutes were 5450 and 6650 for the Bliley.
Because these are unfiltered values (no lock), you should take off the last digit, so that would be 545 and 665. However, the maximum number for the min setting is 500 (to get 50). So I still don't get it if that's the procedure.

My units are getting closer to a lock now (ns < 100) and the min/max values for the Trimble are now 10590 and 10960, so I still can't make heads or tail out of these numbers.

I'm waiting for a lock to see what the filtx10 numbers will report then.
Unfortunately, it will take a while for my units to lock because of the long tc's of 800 and 1,500.

Stay tuned, we'll figure it out somehow unless somebody gives us clearer instructions.
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #745 on: October 18, 2020, 02:43:27 pm »
With the TIC_offset at 1,000, it's never locking, even with a tc of 4.

No matter what I do, I can't get it to produce viable numbers.  |O
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #746 on: October 18, 2020, 03:02:51 pm »
I set my TIC offset to 1,000 with a tc of 4s and didn't lose lock. I don't have any numbers I can show you but the filt10x value cycled up and down repeatedly between the minimum and maximum in a fairly short time.

I'll try and capture some numbers later to show you.

Mike
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 1430
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #747 on: October 18, 2020, 05:57:52 pm »
Paul, my understanding of what Lars wrote is that you set the TIC Offset to 1,000 and watch the variation in the filtx10 values. Mine went from a minimum of 9810 to a maximum of 10220 over a short period. I used the l command to store these as 98 for TICmin and 1022 for TICmax. The default values I had were 120 and 1012.

I have no idea what the "squared" value is or how to establish it.

Mike

Another (better) way would be to go into "hold" mode and then set the DAC to a value that slowly lets filtx10 drift upwards (or downwards), then record filtx10. The slower the drift the better, like 1 digit per second so that you can see what is going on. At a point it should "jump" from 10000-ish to (I think?) 9000-ish, then look for the highest and the lowest value you find and enter that as min/max.

Everybody likes gadgets. Until they try to make them.
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 86
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #748 on: October 18, 2020, 07:27:11 pm »
I set my TIC offset to 1,000 with a tc of 4s and didn't lose lock. I don't have any numbers I can show you but the filt10x value cycled up and down repeatedly between the minimum and maximum in a fairly short time.

I'll try and capture some numbers later to show you.

Mike

OK I was wrong about losing lock, but it appears to work. The attached log shows filt10x moving between high and low values 1 minute after setting TIC_Offset to 1,000. I'd run it for longer and take averages.

Mike
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 168
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #749 on: October 19, 2020, 09:16:28 am »
Let's first stick to the procedure Lars described and see if we can figure out what he meant.

In principle, he is trying to create a better linearization for the ADC TIC input values.

I think that the first part of the procedure should be to set the tc to 4, the TIC_offset to 500 and wait until you have a lock. I think that the tc at 4 is important because it eliminates the filtering in the control loop. A tried a higher tc but that takes hours to settle.

Now set the TIC_offset to 1,000.
I think this means that the ADC will now be forced to work at the top of its 8-bit 1,024 max range, rather than in the middle (at 500).
The ns data will therefore jump from around 0 to -500, the inverse of the additional offset from +500.
The controlling loop will now try to get the ns numbers back to around 0 again.

Wait for the ns and filtx10 data to stabilize. With a tc at 4, this should not take more than a minute or so.
The ns values should on average be around 0 again, and the filtx10 should now be around 10,000. (1,000 x 10)

Save the data from a minute or so after the data stabilized and put it in a spreadsheet.

Lars writes that "With a TIC_offset of 1,000, the GPSDO will go between min and max if the max ADC is less than 1,000. The filtx10 values will give you the min and max."

I interpreted that as follows.
Record all numbers below 10,000 (the min) and all numbers above 10,000 (the max).
These numbers are at the highest range of the ADC, and so in the most linear region.

Obtain the average of the two sets.

In my case for the Trimble, the average number below 10,000 was 9,889, for my Bliley 9,878
The average of the numbers above 10,000 was 10,181 for the Trimble and 10,146 for the Bliley.
I calculated Mike's numbers to be 9895 and 10194.
So far so good I think.

The challenge is to convert these numbers to the valid min and max values.
The min values can only be between 1-500 to become 0.1 to 50.
The max values can only be between 800-1023.

I tried it several ways, but I can't figure it out how to massage the obtained numbers so I can put them in as min/max.

Because filtx10 is multiplied by ten when there is no lock, you could divide the numbers by 10. This would than be a true representation of the ADC input at an offset of 1,000. However, the min numbers will already be divided by 10.
The Trimble number for min would then become 988, but you can't input that.
The max number would become 1,018 and that would only just fit.

You could take 10,000 as the mid point, in which case the min numbers become 10,000 - 9889 = 122.
The max number would then be 10,146 - 10,000 = 146, but that number cannot be used.

Another thought (very far fetched!) I have is that Lars maybe meant to get the min value with a TIC-offset of 500. The lowest filtx10 value would then always be below 500, which is the valid min range. You should then only obtain the max value with a TIC_offset of 1,000, in which case the max will always be in the valid max range.

Anybody?  :-//
« Last Edit: October 19, 2020, 07:55:13 pm by Dbldutch »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf