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.
Manufacturing tolerance at room temperature, from the crystal datasheet. ±50 ppm is SLLA122’s recommendation for USB; ±10–20 ppm bins cost a little more.
Deviation over the operating temperature range, relative to 25 °C. ±50 ppm covers a typical AT-cut over industrial temperatures; watch crystals are far worse when cold.
Cumulative drift per year, mostly in the first years. SLLA122 recommends about ±5 ppm/year; tighter parts specify ±1–3.
How long the product must stay inside the budget without recalibration — aging multiplies by this.
Everything else, entered as one number: trim error from load-capacitance mismatch, oscillator circuit, supply sensitivity. Zero if unknown, but it is rarely truly zero.
What the interface allows for the whole clock, ±ppm. USB 2.0 specifies ±500 ppm for the system including the PHY (SLLA122); leave headroom for the parts of it that are not the crystal.
The crystal frequency — only the Hz-error row uses it. 24 MHz is the USB reference in SLLA122; enter 0.032768 for a watch crystal and this page becomes an RTC drift calculator.
- 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
- 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.
- 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.
- 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
- Linear worst-case addition. Statistical (root-sum-square) budgeting is gentler and sometimes justified across many units; a single unit is bound by the sum.
- Aging accumulates linearly at the datasheet rate. Real crystals age fastest in the first year, so a long service life at a first-year rate is conservative.
- Temperature stability is read from the datasheet for your actual range — a spec over −20…70 °C says nothing about −40.
- Load-capacitance trim error is only counted if entered: a crystal pulled by mismatched C_L sits off frequency by an amount this page does not compute. The crystal load tool sizes C1 and C2 to avoid it.
- Drive-level and supply effects are inside the "additional error" line or nowhere.
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.
| Error | At 24 MHz | Per day | Per month | Per year |
|---|---|---|---|---|
| ±1 ppm | 24.0 Hz | 86 ms | 2.6 s | 31.5 s |
| ±2 ppm | 48.0 Hz | 173 ms | 5.2 s | 63.1 s |
| ±5 ppm | 120 Hz | 432 ms | 13.0 s | 2.6 min |
| ±10 ppm | 240 Hz | 864 ms | 25.9 s | 5.3 min |
| ±20 ppm | 480 Hz | 1.7 s | 51.8 s | 10.5 min |
| ±30 ppm | 720 Hz | 2.6 s | 77.8 s | 15.8 min |
| ±50 ppm | 1.20 kHz | 4.3 s | 2.2 min | 26.3 min |
| ±100 ppm | 2.40 kHz | 8.6 s | 4.3 min | 52.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/dayPlenty 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
- Reading one line of the datasheet. ±20 ppm in the headline is the tolerance; the same part may allow ±100 ppm over temperature and ±3 ppm/year of aging, and the interface sees the sum.
- Budgeting the whole allowance to the crystal. The ±500 ppm of USB 2.0 belongs to the system — oscillator, PHY and crystal together. SLLA122 caps each crystal line item at ±100 ppm for exactly this reason.
- Quoting stability for the wrong cut or range. A watch crystal's parabolic curve loses hundreds of ppm at −20 °C; an AT-cut loses tens. The spec only covers the range printed next to it.
- Treating aging as done after year one. It slows, but it does not stop — a 10-year product holds the budget for 10 years or drifts out of it quietly.
Further reading
- TI SLLA122, Selection and Specification of Crystals for Texas Instruments USB 2.0 Devices — the budget this page implements: the ±500 ppm system requirement and the recommended per-item crystal specs.
- TI SWRA372, AN100 Crystal Selection Guide — tolerance, stability, aging and load capacitance defined precisely, with the C1/C2 arithmetic the crystal load tool uses.