100nF

Crystal ppm budget calculator

Whether the crystal's accumulated errors fit inside what the interface allows: manufacturing tolerance, temperature stability and aging stacked worst-case against the budget, and the total translated into hertz and into seconds of clock drift per day.

budget ±500 ppm
Fig 1 — the error sources stacked worst-case: 105 ppm of a ±500 ppm budget.
Worst-case total
±105.0 ppm · 395.0 ppm of margin
Aging over the life
±5.0 ppm after 1 year
At 24 MHz
±2.52 kHz
As clock drift
9.07 s/day · 272 s/month · 55.2 min/year

How this is calculated

Standard: TI SLLA122 — Selection and Specification of Crystals for Texas Instruments USB 2.0 Devices

etotal=etol+etemp+eaging⋅years+eothere_{total} = e_{tol} + e_{temp} + e_{aging} \cdot years + e_{other}
Worst-case stack-up: each source is a bound, not a distribution, and a crystal may sit at the bad end of all of them at once. SLLA122’s recommended USB specs are ±50, ±50 and ±5 ppm/year.
etotal≤ebudgete_{total} \leq e_{budget}
The verdict. USB 2.0 allows ±500 ppm for the entire clock system — the crystal shares that with the oscillator and PHY, so it must not spend it all.
Δf=etotal⋅f,Δtday=etotal⋅86400 s\Delta f = e_{total} \cdot f, \qquad \Delta t_{day} = e_{total} \cdot 86400 \,\text{s}
The same number in the other two currencies: hertz at the crystal frequency, and seconds of drift per day — 1 ppm is 86.4 ms/day, so a ±20 ppm watch crystal wanders up to 1.7 s/day.

Assumptions

What adds up in a crystal's frequency budget

A crystal's datasheet quotes three different accuracies, and the actual frequency error is allowed to be all of them at once. Tolerance is where the part landed when it was made; stability is how far temperature pushes it from there; aging is where it wanders over the years. Each is a bound, so the honest budget adds them — the way TI SLLA122 walks through it for a USB crystal, whose recommended ±50, ±50 and ±5 ppm/year are this page's defaults.

The comparison side is what the interface tolerates. USB 2.0 puts ±500 ppm on the whole clock system; other interfaces publish their own numbers, and the budget field takes whichever one the datasheet or standard states. The rest is unit conversion: the same total is so many hertz at the crystal frequency, and so many seconds per day of clock drift, which is the form the question takes when the crystal is 32.768 kHz and the complaint is a wall clock losing time.

Crystal ppm chart: what each figure costs in time

A frequency error in parts per million is hard to feel until it is converted, so the chart does the conversion, computed by the calculator above: the hertz it amounts to on a 24 MHz crystal, and the seconds a clock built on it gains or loses per day, month and year. The rows are the figures crystal datasheets actually print.

ErrorAt 24 MHzPer dayPer monthPer year
±1 ppm24.0 Hz86 ms2.6 s31.5 s
±2 ppm48.0 Hz173 ms5.2 s63.1 s
±5 ppm120 Hz432 ms13.0 s2.6 min
±10 ppm240 Hz864 ms25.9 s5.3 min
±20 ppm480 Hz1.7 s51.8 s10.5 min
±30 ppm720 Hz2.6 s77.8 s15.8 min
±50 ppm1.20 kHz4.3 s2.2 min26.3 min
±100 ppm2.40 kHz8.6 s4.3 min52.6 min

Tolerance, temperature stability and aging each contribute a row's worth, and the calculator adds them. A ±20 ppm crystal keeping time unaided is out by nearly two seconds a day before temperature and age are counted, which is why real-time clocks are trimmed or disciplined rather than trusted.

Worked example: a USB crystal after one year

The defaults — SLLA122's recommended USB crystal after one year:

tolerance      ±50 ppm
temperature    ±50 ppm
aging          ±5 ppm/yr × 1 yr  = ±5 ppm
total          ±105 ppm    of the ±500 ppm USB 2.0 system budget

at 24 MHz      ±2.52 kHz
as drift       9.07 s/day

Plenty of margin — which is the point, because the oscillator and PHY spend from the same ±500. The instructive variant is the watch crystal: ±20 ppm of tolerance alone is 1.73 s/day, a minute a month, and no RTC that must stay within a few seconds a week escapes calibration or a TCXO.

Where the ppm budget stops being valid

Adding bounds is worst-case, and worst-case is the right default for one product on one desk that must work. Across a production run the errors are uncorrelated and a root-sum-square is defensible — but only tolerance is symmetric around zero on day one; aging is a drift with a sign, and temperature error follows wherever the enclosure lives. When the margin matters, stack linearly.

The stack also only knows what it is told. A crystal running with the wrong load capacitance sits off frequency by a trim error this page does not compute — size C1 and C2 with thecrystal load calculator and put any residual in the additional-error field. And a crystal that is being overdriven ages faster than its datasheet rate;the crystal articlecovers the drive-level check that protects the aging line item.

For a UART, ppm is rarely the problem: the divisor error of the clock generator dwarfs it, which is thebaud rate tool's subject. The two budgets add, but one of them is measured in tenths of a percent.

Common clock accuracy mistakes

Further reading