Claim Your: Useful

"Arduino Software Guide"

   Right Now...



Clock accuracy in ppm

Crystal Clock accuracy is defined in terms of ppm or parts per million and it gives a convenient way of comparing accuracies of different crystal specifications.

Note:

  • ppm parts per million.
  • ppb parts per billion.

The following headings give practical calculations showing the typical errors you will encounter when using a clock of a specific type with a specific accuracy.

How good is a 1% accurate clock ?

If you look at a day's worth of timekeeping then you have 24 x 60 x 60 = 86400 seconds in a day.  So the maximum error after a day has passed is 1% of 86400 = 864 seconds = 14.4 minutes!

Error: 14.4 minutes error per day.

How good is a typical crystal ?

A typical crystal has an error of 100ppm (ish) this translates as 100/10e6 or 0.0001% (its the same number expressed as a percentage).  So the total error on a day is 86400 x 0.001%= 8.64 seconds per day. In a month you would loose 30x8.64 = 4.32 minutes per month. 

Error: 8.64 seconds per day

How good is a watch crystal ?

A watch crystal has an error of 20ppm (ish), but you have to design the board layout well, this translates as 20/10e6 (0.002%) which  gives an error over a day of 86400 * 0.002% = 1.73 seconds per day so in a month it looses 30x1.72 = 51 seconds or 1 minute a month (approx).  

Error: 1.73 seconds per day.

One of the other factors in a wrist watch is that you wear it on your wrist - and the human body is at a constant temperature.  Crystals have a temperature coefficient graph meaning that another source of error is temperature (This is why you can buy an OCXO or Oven Controlled Crystal Oscillator - that generates heat and keeps a constant temperature).  The watch crystal will be better because you keep it at a constant temperature!

How good is an oven controller crystal oscillator OCXO ?

A typical spec might be ±1 x 10-9 (1ppb) so the error after a day would be 86.4us and after a month 2.6ms (2.6e-3 seconds or 2.6 thousandths of a second!).  They are not quoted in ppm as it becomes inconvenient to write e.g. this OCXO has a ppm value of 0.001 ppm or 1ppb.

Error: 84.6us per day.

Note: there are many types designed for many different applications and
all costing different amounts!

How good is a rubidium oscillator ?

This is also known as an atomic clock.

A rubidium clock has an accuracy of about ±1 x 10-12 so the error after a day would be 86.4ns (84e-9 seconds 84 billionths of a second!) so the error after a month would be 2.6us.  Again using ppm is also inconvenient for writing : 0.000001ppm or 0.001ppb

Error: 86.4ns per day.

Error: 2.6us per month.

How good is a cesium oscillator ?

This is also known as an atomic clock.

Cesium beam atomic clocks are stable to 1 x 10-13 (8.64ns/day 8 billionths of a second!) or 259ns (259e-9 seconds) a month (ppm is 0.0000001ppm ! or 0.0001ppb).

Error: 8.46ns per day.

Error: 0.259us per month.

Note: A Cesium fountain is stable to 1 x 10-15.

Comparison of oscailltor's accuracy

Type Accuracy (ppm/ppb) Accuracy Aging /
10 Year
Aging / 10 Year
Crystal 10ppm-100ppm 10-5 - 10-4 10-20ppm 10x10-6
TCXO 1ppm 10-6 3ppm 3x10-6
OCXO 5-10Mhz 0.02ppm
(20ppb)
2x10-8 ~0.2ppm (200bpp) 0.2x10-6
OCXO
15-100MHz
0.5ppm
(500ppb)
5x10-7 ~10ppb 1x10-8
Rubidium Atomic 1x10-6ppm (0.001ppb) 10-12 0.005ppm (5ppb) 5x10-9

Some TCL code for looking at ppm

# Calculate the ppm given a nominal frequency and actual frequency.

# ppm? 20e6 19998485 Returns 75.75 ppm

proc ppm? { nomf f } {

return [expr (abs($f-$nomf)/$nomf)*1e6 ]

}

# given ppm return decimal e.g. ppm 200 is 0.0002

proc ppm { ppmv } { return [expr $ppmv/1e6] }

# given ppm return decimal e.g. ppb 10 is 1e-8

proc ppb { ppbv } { return [expr $ppbv/1e9] }

# ppm range show max and min of freq:nomf and ppm value

proc ppm_r { nomf ppmv } {

puts [expr $nomf+([ppm $ppmv]*$nomf) ]

puts [expr $nomf-([ppm $ppmv]*$nomf) ]

}

Download TCL from Active state (free) and download tkcon. Double click tkcon to start it and paste the above procedures into tkcon, then use the them by typing in commands at the tkcon command prompt (Turn on calculator mode in preferences):

e.g. ppm? 20e6 19999391

results in 30.450000000000003

i.e. It shows you the ppm value: 30ppm for given nominal frequnecy and actual measured frequency..



Jump from ppm calculations to
Best-Microcontroller-Projects Home Page


Privacy Policy | Contact | About Me

Site Map | Terms of Use | Links




Google

Recent Articles

  1. A short pic C compiler tutorial on compiling mikroelectronika C files.

    Oct 21, 14 02:06 AM

    Simple PIC C Compiler instructions for quickly compiling MikroC hex files from C source code.

    Read more

  2. A frequency counter using timers built into microcontrollers.

    Oct 15, 14 02:54 PM

    How to make a frequency counter working up to about 50MHz, using a pic microcontroller.

    Read more

  3. Color Sensing Circuit

    Oct 08, 14 05:07 AM

    Color sensing circuit : How to use three LEDs to detect color using a microcontroller

    Read more

Custom Search

Sign up for MicroZine:
''The'' Microcontroller Newsletter


Enter your first Name and primary email address in the form below:

And receive absolutely FREE a full project for:


"Measuring Analogue Voltages
Without An ADC"

(Using only one pin).

Instant Download:
You Can
Get It Right Now

Warning: This project could be Removed
at any time.  

It will NOT be
available indefinitely SO

To avoid
disappointment get it:

Now



:
:
Don't worry -- your e-mail address is totally secure. I promise to use it only to send you MicroZine
Remember this is a project with full description and fully debugged C Source code - and it's not available from the main website.

You can only get it through this newsletter.


To get exclusive access Enter your first name Name and primary email address Now in the form above.:

But wait !

There's more...

You'll receive more
free and exclusive reports as well as site information and site product updates.

Scroll up to the form above and sign up NOW.  Don't forget it's FREE and if you don't like it you can unsubscribe at any time.

Click Here Now to use the form above to get your Valuable information absolutely free.



Social Bookmarking
Click & Add:
add to BlinkBlink
add to Del.icio.usDel.icio.us
add to DiggDigg
add to FurlFurl
add to GoogleGoogle
add to SimpySimpy
add to SpurlSpurl
Bookmark at TechnoratiTechnorati
add to YahooY! MyWeb
Readers comments

"I wanted to thank
you so so so much
for all the information
you have provided in
your site it's

SUPERB and FANTASTIC."


- Ranish Pottath


"This site really is
the best and my favorite.
I find here many useful
projects and tips."

- Milan

bursach<at>gmail.com

Learn PIC C Now
Wondering how to program your next project using C and need a great start?


"Awesome site,
very, very easy and nice
to navigate!"


- Matt
matt_tr<at>
wolf359.cjb.net


"I am a newbie to PIC
and I wanted to say
 how great your
site has been for me."


- Dave

de_scott<at>bellsouth.net

Learn Microcontrollers
"Interested in
Microcontrollers?"


Sign up for The
Free 7 day guide:

FREE GUIDE : CLICK HERE

"Your site is a great
and perfect work.
congratulations."


- Suresh

integratredinfosys<at>
yahoo.com

"I couldn't find the correct
words to define
yourweb site.

Very useful, uncovered,
honest and clear.

Thanks so much for
your time and works.
Regards."


- Anon