Crystal frequency/temperature curve

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
I have a Hitachi H8S2357 with a 18.432 mHz 86SMX crystal.
I am trying to make some temperature compensation of the frequency and
wonder what the frequency versus temperature curve looks like for this
crystal type.
When searching the net there seems to be different cuts and stuff -
what kind of cut does my crystal have? Is there some in depth data
sheets somewhere?


Re: Crystal frequency/temperature curve
Quoted text here. Click to load it

How should we know? Why not ask the manufacturer?


Re: Crystal frequency/temperature curve
Quoted text here. Click to load it
Now I have found the data sheet:

Reading on the net about AT-cut and cubic I assume the temperature
drift to be something like:

Event though this doesn't exactly match the data sheet it matches all
curves I have seen on the net so far.

Does anyone has a rule of thumb as the variation in factor a between
individual crystals of same type?
If I calculate the a from the curves am I better of with this than
with using an a of zero?

I am trying to improve the accuracy of my clock by some adaptive
method driven by infrequent clock settings. At the moment I just
adjust c with a filter calculating a new c and updating the c with 90%
of the old and 10% of the new.

But this is bound to lead to lag on temperaure changes, so I am
wondering if someone has done something like this?

I have been looking for some method to update a,b and c from the clock
setting but maybe it's mathematically impossible - my mathematic
foundation isn't too good.

I looked a little at Kalman filters but I don't seem to grasp it fully
and they probably doesn't handle this anyway.

The solution I have been thinking of is to bin the temperature range
(maybe in 5 degree bins) and have one c for each bin - but this would
mean that off temeratures takes very long to adapt.

Another idea is to adapt c when t is near t0, adapt b when t is
somewhat more from t0 and a when t is far from t0 - but I am afraid
this might be unstable.


Re: Crystal frequency/temperature curve

Quoted text here. Click to load it

   What is that? Just the MPU number? A Hitachi H8 eval board?

Quoted text here. Click to load it

   This cubic frequency-vs-temperature curve apparently applies to all
crystals, and the constants vary with the angle at which the crystal
is cut. I saw this on a manufactur's website or .pdf somewhere, but I
can't find it now. If this is an inexpensive crystal (and I bet it
is), there's probably no guarantee of the exact cutting angle, and
thus no guarantee of the exact curve.

Quoted text here. Click to load it

   This (getting these constants directly from long-term clock
variations) seems impractical and unworkable. IMHO, the only
reasonable way to do it is to get a frequency counter with 1 Hz
precision (and accuracy), cool and heat the crystal while measuring
its temperature, map out the frequency-vs-temperature curve for every
1 degree C over the temperature range you're going to run this, then
match the a, b and c constants to get a curve identical to the one you
measured and plotted.
   Or just bypass the curves and put the raw frequency-vs-temp data
into a lookup table.

Quoted text here. Click to load it

   Looks like you're spending a lot of time on this, probably
unnecesarily. You can get crystals or especially crystal oscillators
with much better tolerance over temperature, especially if you don't
need that exact frequency (your code IS easily changable for a
different CPU clock frequency, isn't it?). Look around for TCXO at

   Perhaps you can't replace the crystal for some reason... Whatever
you're doing seems a little vague. Can you tell more about the
application? Also, you may get better responses to this question on

Quoted text here. Click to load it


Re: Crystal frequency/temperature curve
ben_nospam_ (Ben Bradley) wrote in message
Quoted text here. Click to load it

The cpu:s are produced (small volume - 150 units) and I am just trying
to improve the accuracy of the clock somewhat. The clock are set
regularly with a broadcast to all cpu:s. I just wondered if using some
fixed value for the constant a is better than only using constant c as
I do now. I have no idea how big spread there is between crystals of
the same type - especially constants a and b. If the a doesn't change
very much between crystals then I am better of using a fixed value to
compensate for temperature variations. Also if someone has done
something like this and have a good algorithm for updating the
constants from clock settings versus temperature over time. I
generally like adaptive systems that improves over time.


Site Timeline