<div style="color:black;font: 10pt Arial, Helvetica, sans-serif;">Murray and Dave,
<div><br>
</div>

<div>Thank you again for prompting me to look at GPS.</div>

<div><br>
</div>

<div>One of my instructor cohorts referred me to Intel's requirements for the CPU's oscillator. Intel requires it to be 30ppm or better. The <span style="font-family: arial, helvetica;">Adafruit Si5351A has a </span>30ppm XTAL, so I might as well just use the CPU's TSC. There are no problems at all with using TSC on a power-managed multi-core platform. The Pimoroni <span style="font-size: 10pt;">RV-3028-C7 is fascinating. At specified voltage and temperature, it is factory calibrated to 1ppm. Neat!</span></div>

<div><span style="font-size: 10pt;"><br>
</span></div>

<div>I realized that I can gather the CPU clock stability statistics myself by running long-duration tests that collect timestamps periodically. If the stability is good enough, I won't need to add GPS or any other clock.</div>

<div><br>
</div>

<div>Thank you for making me think about this more.</div>

<div><br>
</div>

<div>Later,</div>

<div>John Swindle<br>
<br>
<br>

<div style="font-family:arial,helvetica;font-size:10pt;color:black">-----Original Message-----<br>
From: Murray Altheim via DPRGlist <dprglist@lists.dprg.org><br>
To: dprglist@lists.dprg.org<br>
Sent: Fri, Jun 5, 2020 8:19 am<br>
Subject: Re: [Dprglist] Stability of CPU oscillator<br>
<br>

<div dir="ltr">On 5/06/20 10:43 pm, John Swindle via DPRGlist wrote:<br clear="none">> Murray,<br clear="none">> <br clear="none">> Thank you for making me look at GPS again. I did not realize<br clear="none">> what the PPS signal was, and I did not know a receiver was <br clear="none">> that small. PPS will work well for my application. That one<br clear="none">> signal would be the most expensive part of the application, <br clear="none">> but I can deal with that later.<br clear="none"><br clear="none">Hi John,<br clear="none"><br clear="none">I hope I'm not muddying the waters here, but it occurs to me that<br clear="none">there are two other options that I know about, one from Adafruit,<br clear="none">the other from Pimoroni. As is typical (and commendable) the<br clear="none">Adafruit Si5351A Clock Generator Breakout Board<br clear="none"><br clear="none">   <a shape="rect" href="https://www.adafruit.com/product/2045" target="_blank">https://www.adafruit.com/product/2045</a><br clear="none"><br clear="none">can generate a clock output from 8KHz to 160MHz using an Si5351A<br clear="none">chip, with specs here:<br clear="none"><br clear="none">    <a shape="rect" href="https://cdn-shop.adafruit.com/datasheets/Si5351.pdf" target="_blank">https://cdn-shop.adafruit.com/datasheets/Si5351.pdf</a><br clear="none"><br clear="none">...and yes, they publish the full clock specifications. I don't<br clear="none">know your specific requirements but at least you can compare<br clear="none">them against the SI chip. The board costs US$7.95, runs on 3.3V,<br clear="none">and communicates over I2C. That chip probably shows up in other<br clear="none">vendors' products; Adafruit's was the only one I knew about before<br clear="none">I started digging just now, there are likely others. If it's stable<br clear="none">enough it's at least cheaper than the GPS module.<br clear="none"><br clear="none">The Pimoroni RV3028 Real-Time Clock (RTC) Breakout board costs a<br clear="none">bit more as it's in their Breakout Garden series (which I use a<br clear="none">lot of, nice plug-and-play I2C sockets). It's about the size of a<br clear="none">postage stamp and costs US$14.00, cheaper if you buy it from<br clear="none">Mouser (US) than from Pimoroni (UK):<br clear="none"><br clear="none">    <a shape="rect" href="https://shop.pimoroni.com/products/rv3028-real-time-clock-rtc-breakout" target="_blank">https://shop.pimoroni.com/products/rv3028-real-time-clock-rtc-breakout</a><br clear="none"><br clear="none">This one uses a tiny clock battery and you run a python script with your<br clear="none">computer/robot connected to the web to perform its initial time sync.<br clear="none">Sparkfun and other companies do versions of the RV3028, with Sparkfun's<br clear="none">spec at:<br clear="none"><br clear="none">   <a shape="rect" href="https://cdn.sparkfun.com/assets/6/8/2/b/3/RV-3028-C7_App-Manual.pdf" target="_blank">https://cdn.sparkfun.com/assets/6/8/2/b/3/RV-3028-C7_App-Manual.pdf</a><br clear="none"><br clear="none">14 items pop up on robotshop.com when searching "real time clock",<br clear="none">ranging in price from US2.00 to $23.75, most of these running other,<br clear="none">cheaper, less accurate chips.<br clear="none"><br clear="none">As you have noted, there are often accuracy specs but I couldn't find<br clear="none">anything about stability for most of these. Many use a 32kHz crystal so<br clear="none">I'm guessing they'd be nowhere near as accurate as the Adafruit board,<br clear="none">which uses a 25MHz crystal and a PLL with dividers to get up to 160MHz.<br clear="none">Again, as to stability, the only jitter spec I could find was Adafruit's<br clear="none">(with credit always due to Limor Fried).<br clear="none"><br clear="none">> If the oscillators varied as much as some people worry, then<br clear="none">> a variety of industry specifications would be violated in<br clear="none">> consumer products. Those products would fail the compliance<br clear="none">> checklists and could not carry logos such as PCI Express, <br clear="none">> USB, etc., without being sued for false advertising. Most <br clear="none">> people write about accuracy, and not many write about stability.<br clear="none"><br clear="none">I think the question comes down to tolerances: commercial tolerances<br clear="none">are tight for a lot of things but not for things that don't matter to<br clear="none">most consumers (e.g., the coil whine on the Dell XPS 13). As David<br clear="none">indicated, clocks vary even due to altitude (I had no idea), with<br clear="none">things like power supply variances, ambient temperature, etc. make<br clear="none">real accuracy rather intractable. Rather than try to solve a problem<br clear="none">that for 99% of the consumer market is not really a problem, clock<br clear="none">tolerances are either pretty loose or simply aren't published. I've<br clear="none">never seen anything like that in a laptop spec. If anyone needs tight<br clear="none">synchronization they just use NTP. My Linux workstation ticks over<br clear="none">the second mark at exactly the same moment as my iPhone, and they've<br clear="none">never met.<br clear="none"><br clear="none">MIL-STD laptops may be ruggedized and cost a fortune but they have<br clear="none">the same internal i7 and i9 processors (and hence clocks) as commercial<br clear="none">laptops and therefore the same clock tolerances. My guess is that<br clear="none">applications that require extremely accurate clocks but can't use<br clear="none">NTP would use a GPS module, which is why I'd suggested that initially.<br clear="none"><br clear="none">> Thank you very much for the GPS PPS idea.<br clear="none">You're very welcome, happy to be able to help.
<div class="yqt1666641187" id="yqtfd39945"><br clear="none"><br clear="none">Cheers,<br clear="none"><br clear="none">Murray<br clear="none"><br clear="none">...........................................................................<br clear="none">Murray Altheim <murray18 at altheim dot com>                       = =  ===<br clear="none"><a shape="rect" href="http://www.altheim.com/murray/" target="_blank">http://www.altheim.com/murray/ </a>                                    ===  ===<br clear="none">                                                                    = =  ===<br clear="none">     In the evening<br clear="none">     The rice leaves in the garden<br clear="none">     Rustle in the autumn wind<br clear="none">     That blows through my reed hut.<br clear="none">            -- Minamoto no Tsunenobu<br clear="none"><br clear="none">_______________________________________________<br clear="none">DPRGlist mailing list<br clear="none"><a shape="rect" ymailto="mailto:DPRGlist@lists.dprg.org" href="mailto:DPRGlist@lists.dprg.org">DPRGlist@lists.dprg.org</a><br clear="none"><a shape="rect" href="http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org" target="_blank">http://lists.dprg.org/listinfo.cgi/dprglist-dprg.org</a><br clear="none"></div>
</div>
</div>
</div>
</div>