Electronics > Projects, Designs, and Technical Stuff
GPSDO: PLL or MCU controlled?
Illusionist:
edigi, that's all very interesting. My next project after the GPSDO is to make a frequency counter, reciprocal with interpolation and time stamping, and probably in an FPGA. I've been sketching ideas for that for years. That TI chip looks very useful indeed; I might have to get one to play with. Basically, I'm aiming for something with the facilities of a Pendulum counter, at a small fraction of the cost.
Your reasons for the MCU method are exactly what I was thinking. I'll have to work on my filtering in the dsPIC and see if I can get working properly.
My 18-bit DACs just arrived... time to play! ... Even better, they are 20-bit! (The 18-bit was another I looked at, and I forgot which I ordered.)
edigi:
One quick note: For the interpolating part highly deterministic delay is needed that is for that part CPLD is a must and FPGA won't cut (not only that, CPLDs with FPGA like internal architecture won't cut either).
The TI TDC7200 has good resolution but it's very easy to destroy it if the surrounding logic does not have very deterministic delay.
I'm actually still on the edge if it actually worth using FPGA for the fast processing or use instead a CPLD+CPLD architecture. For the slower counters even an 1 EUR CPLD is good enough but it can help avoiding all kind of synchronization issues between the fast CPLD (fast counters in CPLD) and MCU. Modern MCUs have HW SPI and transferring even 10k measurements/s via it is not an issue as it does not create extra load to the MCU (10k measurements due to noise square rooting means 12 digit/s basically for very low cost). In addition modern MCUs have huge number crunching power including FPU so both FPGA and MCU would be very heavily underutilized.
For more than 10k measurements/s FPGA is a must to consolidate time-stamping result and maybe even do some basic preprocessing on them. That would however imply > 12 digit/s where I'm very skeptic that for that a decent front end side could be done on hobbyist level (that I am).
Illusionist:
It had not occurred to me that an FPGA would be inferior to a CPLD in that way. I'm more familiar with CPLDs, having only played around with FPGAs occasionally and never actually designed anything with them. My original idea, a few years ago, was being prototyped in some -4 speed grade Altera MAX CPLDs. Old, but they still work.
I'm considering using a Raspberry Pi Zero for the user interface and overall controller. That would make developing that side of it much easier and give some nice functionality for graphs, logging etc.
I've been slowly gathering potentially useful bits for the front end too, some fast ECL counters/dividers, MiniCircuits amplifiers etc.
That project is some time away though, with a lot more research needed. I need to finish this one first.
Johnny B Good:
--- Quote from: Gyro on August 02, 2019, 09:20:39 am ---
====previous quotage snipped for the sake of brevity :)====
Good to hear that you've been having some fun. It sounds as if you've duplicated quite a lot of my findings. I found that 100kHz locking was better that 1MHz (with some advice from Lars), I haven't really tried 10kHz but suspect that 1kHz is too low for sensible PLL filtering.
--- End quote ---
No need to guess, I can assure you with some confidence that this choice would tax even the patience of a Saint. ::)
--- Quote from: Gyro on August 02, 2019, 09:20:39 am ---
I would be tempted to build the filter section dead-bug style on a piece of copperclad rather than veroboard. It's not RF, but a solid ground is beneficial for keeping noise to a minimum (as is the buffer opamp as you found).
--- End quote ---
I must admit, I was half tempted to go that route but decided, in view of how well it had worked on a plug in prototyping breadboard, that even the use of veroboard would be a vast improvement (I could always double up on ground traces or add some single sided copper clad board in selected critical areas where I might, in hindsight, consider such measures to be of some tangible benefit).
In any case, I can always rebuild another version on copper clad board at a later date if I thought it might solve any issues arising out of the use of veroboard. At least that way, with a second version to compare against the original, I'd be able to verify, or not, the benefit of dead bug style on ground plane construction over the use of veroboard when the highest frequency is likely to be the doubled up 13MHz to drive a /13 counter to feed the x5 clock multiplier chip with its minimum 2MHz clock input requirement.
However, since I'm now going to use an XOR doubler instead of a 3N502 driven from my 13MHz OCXO, that now gives me the option to put it after the /13 counter rather than in front, saving the need to double up from 13MHz by doubling up from the 1MHz output of the /13 counter to meet the final 3N502's minimum frequency requirement. I'd had problems with the classic RC delay XOR doubler when testing with a 10MHz clock so had resorted to using three gate delays from the 74HC14 package. Hopefully, I might have more success with the RC delay at a mere 1MHz input frequency, leaving those three 74HC14 gates available for better use as an output buffer.
--- Quote from: Gyro on August 02, 2019, 09:20:39 am ---
As you are aware, you are still compromised by the use of a non-timing GPS module. I'm not sure how much you've invested so far, but I see that there are still a few LEA-6T based modules being listed on ebay from China and Hong Kong for just over the £20 mark. You ought to get some performance improvement over an 8M (real or fake!). You may well get away with longer time-constants then.
--- End quote ---
Do you mean items like this?
https://www.ebay.co.uk/itm/HP-LEA-6T-GPS-Module-w-Compass-for-APM2-6-APM2-8-Pixhawk-PX4-Flight-Controller/254283159923?epid=1239162641&hash=item3b34751973:g:UR8AAOSwK6RZJEJo
There was another slightly cheaper version from a supposedly separate trader. It didn't offer as much detail in the pictures yet both had identical product ratings - :wtf: is that all about???
TBH, I've rather gone off the idea of buying from traders located in Shenzen or Hong Kong just lately. I'm waiting on a delivery of 10x 74HC14 chips for 99p which, according to its tracking number, is still languishing in HK customs ever since it fell into that black hole over two calendar months ago, just two days after it had been shipped from Shenzen.
I've just placed an order for 50x SOP8OP8 TSSOP8 SMD To DIP8 Adapter 0.65/1.27mm PCB Board F6T4 as a result of checking out ebay for those LEA-6Ts. At just £1.06 delivered, it was a bargain I just couldn't resist, notwithstanding the fact that I still have seven of these little beauties left over from my first pack of ten bought over six months ago at the, now seemingly obscene, price of £3.47!
What's worse is that I'm now dithering between ordering a pack of 20 74HC14s from another Chinese supplier for a whopping £2.17 or go with one shipping a pack of ten from within the UK by the 9th Aug for around the same price - decisions, decisions. :-//
As for my bargain second FY6600-60 that I'd ordered the 11th June, that's been lost in the postal system for over three four weeks now, I'm still waiting on delivery . Weirdly, the seller didn't opt for a tracked shipping option on this 40 quid item (unlike the seller of that 99p pack of 'HC14s currently stuck in HK customs) but has promised to send another unit claiming a 10 to 15 days delivery time. The earliest date has already expired and the 15th day equates to the... today! Needless to say, I'm still waiting. >:(
With all that said, you can see why I'm a little leery of ordering modules wrapped up in drone antenna packages like this, especially from China/Hong Kong, especially now with all the riots and protests going on in our ex-colony which might have some bearing on the "Black Hole of HK customs" effect. ::)
Although use of a timing receiver module might reduce the timing errors and improve the performance of a basic PLL GPSDO, I do wonder whether it would be worth the extra expense when the use of a 3 quid Arduino nano and an extra IC or two would ultimately provide a superior solution (holdover feature and ever improving accuracy/stability with each passing day of Kalman filtering).
At just 22 quid or so, those LEA-6T modules are a bargain, if you can trust the supplier to deliver a genuine module all the way from China (I know how to tap into the PPS signal :)). I might consider one if I can find a Chinaman shipping his product from a UK based warehouse in a timely fashion (typically a week or less). Incidentally, my first M8N cost me 21 quid from a Chinaman shipping from Manchester in less than a week. Now, the only other example of that exact same module is being sold by a Chinaman in China/HK for a rather cheeky 27 quid and some pence! :wtf: The one I did go for (that fake) was just under 16 quid. Talk about "False Economy"! I guess I got what I deserved notwithstanding that I wasn't altogether surprised. ::)
I'm more than pissed off right now with deliveries delayed by months. For the time being, I'll manage with my fake M8N and get a GPSDO built and working to a reasonable standard of accuracy and stability and keep my eyes open for any timing module bargains I won't have to wait more than a couple of weeks at most for delivery - I'm not getting any younger and time really is of the essence these days.
With regard to that GPSDO project of mine, I'd already figured that the 100KHz phase detection frequency option would be a good compromise between the extremes of 1Hz and 10Mz in terms of lock up time and filtering effect on the clock jitter and sawtooth components so was going to set it up that way to begin with. However, before I eliminated the "surplus '390", I did reconfigure it to test the 10KHz, 1MHz and 10MHz options (I saw no point in going below 1KHz), the results of which did confirm my initial thoughts on the 100KHz option as being the best choice.
The 10KHz showed the faster lock up performance (compared to my original 1KHz setup with the 6M) as expected with no evidence of jitter effects. The 1MHz showed an even faster response, now dominated by the LPF response but I could see signs of jitter starting to creep in. I tried phase locking directly to the squared up 10MHz sine wave output from the OCXO just for the 'Hell of It" where, unsurprisingly, jitter from the non-integer division ratio was starting to become more evident, whilst, even less surprisingly, the random sawtooth correction jumps could now be seen 'plain as day'.
Once I'd satisfied my curiosity on this aspect of the design, any nagging doubts that may otherwise have festered over my "no brainer choice" of 100KHz had been well and truly quashed. :) As for the 10KHz option, that's not so bad a second choice when it's the highest PPS frequency option available.
Phase locking one generator to another reference generator is a bit like towing one vehicle with another blessed with cruise control using a bungee cord to iron out speed variations of the towed vehicle. The larger the divider ratio, the longer and/or stretchier the bungee cord. In the case of the 10KHz choice, that means we can afford to use a less aggressive LPF to mitigate the more sluggish settling down time and of course, it helps in this case to use an OCXO with a high Hz/V tuning rate. >:D
The whole system, OCXO's tuning rate, the amount of division applied in the PLL and the LPF on the phase detector's output, all combine into a single equivalent LPF in the control feedback loop anyway. It's just a question of optimising the balance between these three elements to obtain a best trade off between settling time and filtering out the unwanted sources of phase noise in the GPS reference.
Also, if using a u-blox GPS receiver (or any other brands likewise blessed) with the facility of being able to produce alternative frequencies on their PPS line, selectable in 1Hz steps, you're not stuck with the obvious decade steps of divider ratio. You could, for example, program the GPS Rx to output 312.5KHz and use a 5 stage binary counter to divide the 10MHz OCXO's frequency to match.
This might well prove a more optimal choice at which to run the phase detector in a basic PLL based GPSDO. You could also try 156.250KHz and even 78.125KHz before you run out of integer frequency options that can match any further binary division. A single '393 will let you experiment to your heart's content (and beyond!) with these binary division options.
Indeed, now I think about it, you could try a larger range of ratios by using a '390 and a '393 or even just one '390 by itself (I'd overlooked the 200 and 500KHz options I could also have chosen with my single '390, let alone all the other possibilities I'd have had with a pair of '390s - a total of four /2 and /5 options in all :palm:).
Never mind, I'm more or less committed to reassembling my GPSDO into a cased final prototype on veroboard - reconfiguring it for 200KHz or 500KHz are still available options though (with 200KHz being the most likely best alternative to my current 100KHz choice). At this stage, I've no intention of backtracking to the breadboard setup to check out any more options since I think I'm as close to the best possible compromise as I can be already. Besides which, it's high time I finally took this project to the next level, shiny extruded aluminium enclosure and all (with sockets 'n' things so it can at least pretend to be a fully functioning lab grade frequency reference). :-DD
JBG
Illusionist:
--- Quote from: Johnny B Good on August 02, 2019, 11:43:08 pm --- I've just placed an order for 50x SOP8OP8 TSSOP8 SMD To DIP8 Adapter 0.65/1.27mm PCB Board F6T4 as a result of checking out ebay for those LEA-6Ts. At just £1.06 delivered, it was a bargain I just couldn't resist,
--- End quote ---
Same here, same price! Couldn't resist that.
More importantly, the seller in France that I got my NEO-M8T from has more:
https://www.ebay.co.uk/itm/Ublox-NEO-M8T-0-IC-GNSS-Receiver-GPS-GLONASS-BeiDou-Galileo/193014081445?hash=item2cf08927a5:g:3YoAAOSwt91cxbn8
As far as I can tell, these are the genuine article. Mine are working well and I flashed them with the latest firmware.
The main differences between the NEO and LEA are the NEO does not have an internal bias-t for antenna power, but instead has a second internal LNA and a filtered power output for feeding into an external bias-t. That's what I did. I designed a simple development circuit and had the PCBs made at JLC - I still have a couple spare...
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version