SPICE Crystal Model

Linear Technology’s LTSpice generic capacitor model has all the parts you need to synthesize a crystal, which is pointed out in the help file and various spots around the web. What’s missing is the relation between all the parts and the values you have in hand for an arbitrary crystal.

SPICE Capacitor Model
SPICE Capacitor Model

The crystal capacitor model looks like this…

Cpar (usually C0) along the right edge is the inter-electrode capacitance, on the order of a few pF.

Rpar (usually R0) along the left edge is the parasitic resistance across the case, on the order of hundreds of MΩ.

The RCL string in the middle is the “motional” part of the crystal model, generally found with a subscript “m” in the specs.

  • Rser (Rm or ESR) is on the order of 100 Ω
  • Capacitance (Cm) is the motional capacitance, on the order of fF (that’s femtofarad: 10-15)
  • Lser (Lm) is tens to thousands of mH
  • RLshunt is something I haven’t seen in any other model and, in fact, it doesn’t appear in the properties panel.
Crystal Properties
Crystal Properties

Now, the part I screwed up is that the capacitor’s value (the number appearing on the schematic) is Capacitance (in the angle brackets that royally screw up WordPress HTML), not Cpar. So the crystal capacitor properties panel looks like this…

That models a 10 MHz crystal, taken directly from a sidebar in Refinements in Crystal Ladder Filter Design by the legendary Wes Hayward W7ZOI, in the June 1995 issue of QEX.

Guess what? Plug it into a model of his crystal-measuring circuit and it works exactly like he says it should. No surprise there…

SPICE has a bit of trouble simulating high-Q oscillators; they tend to not start up properly. If nothing seems to be happening, wait for a few tens-to-hundreds of milliseconds before despairing. Try chopping Rser down by a factor of two or four to see if that improves its disposition.

You could try injecting a few (hundred thousand) cycles of a kickstart signal, but that’s fraught with peril: you’re simulating something even further from reality than usual.

Memo to Self: You can rename the cap from C2 (or whatever) to X1 (or whatever) and everything still works fine.

4 thoughts on “SPICE Crystal Model

  1. found your note on the LT spice crystal model. I WAS despairing of ever getting output.
    By setting the transient time to 10 mS I was able to finally see a crystal oscillator start. I was also able to cook and eat dinner while it churned. So, I’ve got that out of my system.
    I’m thinking that a better solution is to actually build the oscillator, characterize its operation
    as to DC offset and so on, then simulate it using a voltage source when the oscillator will
    have any more circuitry downstream ( buffers / mixers etc ).
    Yours was the only site that laid it out clearly. For starting parameters of my oscillator
    ( 7 Mhz ) I used the measured parameters from

    started with the 7.37 Mhz list, used the given Cm and recalculated the correct Lm. Close enough for Gov’t work.
    Thanks again and I enjoyed your website.

    John McDonough AB2XT

    1. I was able to finally see a crystal oscillator start.

      As opposed to any amplifier circuit, which will begin squealing instantly upon power-up… [sigh]

      Glad I could help out!

  2. Thousands of mH seems a bit much to me.
    I have measured a lot of xtals and do not recall ever seeing more than 10s of mH for motional L
    Just a thought (clarification for newcomers to this stuff)

    Thanks for the post here and for offering the insight about the xtal “model”.
    It looked like a serious bug when I first saw it, so I just built a crystal with lumped elements and the osc fired up just fine after
    pushing the time stop out to 40mS

    1. Thousands of mH seems a bit much

      I think that depends on the mass of the crystal. If so, perhaps it’s much larger for very low frequency slabs?

      At some point I must build a WWVB receiver that might just call for a 60 kHz crystal ladder filter. Those should have a large motional inductance!

      the osc fired up just fine after pushing the time stop out to 40mS

      The blink of an eye to us, but an eternity in simulation time…

Comments are closed.