tempco - read all about it

Martin Czech martin.czech at intermetall.de
Thu Nov 25 16:45:26 CET 1999


I was chewing on that tempco business quite a time now, time
to spit it out:

----------------------------------------------------------------------------

Uhh, this tempco stuff can be confusing. Time to get things right for
me. At least I hope so. The notation is such that a computer language
like C or BASIC or gnuplot would basically work with it.

(** means ^ or to the power of)

----------------------------------------------------------------------------

What's the problem?

Exponential control of frequency is a difficult task, because
1. the ear is very sensitive to frequency and beating
2. the analog devices we use for this purpose are non ideal


Basically the behaviour of an bipolar transistor is used, which can be
written as Ic=Ics*exp{Ube/Ut} for currents in the range of interest.

Ics: Collector 
The big problem now is that Ics depends on: doping, temperature, doping
profile, geometry and a whole lot of other parameters.  Particulary
anoying is the temperature dependence.  This will change the scaling of
our exponential vco, ie. in a guitar analogy that would mean that the
fretboard elongates or shrinks with temperature, to an extend completely
unknown to the world of mechanical instruments, not only 1%, but 10,20,30%
or even more. All tones of our vco will thus be far too sharp/flat.

This Ics dependency can be eliminated by using a clever circuit that
operates with the ratio of two transitor currents Ic1 and Ic2, thus
getting rid of Ics1 and Ics2, if both were equal. This means, we need
a matched pair of transistors. Some sources seem to dry out (LM394,
MAT02), new ones were found (japanese), and also selecting out of the
box is possible, but laborious.

Good matching provided, we now have: Ic=const*exp{Ube/Ut},
the first order problem with Ics is solved, and the second order
appears: Ut which is kb*T/q, another temperature dependency.
It will also influence the scaling, except for Ube=0, of course,
(which is used in linear controled vco). The whole tempco debate
has one goal: getting rid of the Ut dependence.

That's the problem here.

----------------------------------------------------------------------------

What do we need?

The Ics temp compensated diff pair gives an exponential
behaviour of the current like:

I(U)=I0*exp{K*U/(kb*T/q)}

where K is a constant introduced by a voltage divider or
other type of network, kb is Boltzmann's constant, T the thermodynamic temperature and q the charge of an electron.
It doesn't matter which of the two bases are used as input, as long
as we keep track of the polarity.

We want that the current raises by a certain factor a (in most cases 2)
if U is raised 1V:

I(U+1V)/I(U)= a

=> exp{K*q/(kb*T)*1V) = a

=> K = ln(a)/q*kb/1V*T = C*T  (Equation 1)

with C=ln(a)/q*kb/1V

( C is  0.00005973 for a=2
        0.0001984  for a=10  )

This means: our "constant" K has to depend on T, if we want
to have the same scaling for all temperatures.

Usually this is done with resistive elements that have a rather large temperature coefficient (tempco). Or with a thermostat, which is ot this time.


----------------------------------------------------------------------------

Pure metalls show a more or less linear behaviour for their resistance
at room temperature:

R(T)=R(T0)+m*(T-T0)

which is valid over a quite large scale of temperature. R(0) seems
to be ~ 0.

Other materials are very nonlinear, however we can try to approximate
R(T) with a Taylor series R'(T) at the point T0, and we will truncate
this series after the linear term.

R'(T)=R(T0)+m'(T0)     *(T-T0)
R'(T)=R(T0)+d/dT[R(T0)]*(T-T0)  (equation 3)

I think it is quite important to note that the derivative must be
evaluated at the same point T0 as the constant term, and that the
approximation and the linear coefficient is only valid arround this T0.
The unit of this m'(T0) is Ohm/Kelvin.

If we divide m'(T0) by R(T0), we get a relative value,
and this can be expressed in % , per mille or ppm per Kelvin.

Therefore:

tempco := d/dT[R(T0)] / R(T0) (Equation 2)

Often a temperature table is given for nonlinear tempcos  where for
each new T0 the resulting tempco is displayed. This can be confusing,
because this definition of relative tempco gives lower tempco if the
temperature T0 is raised, even for a perfectly linear resistor:

R(T)= k*T

d/dT[R(T0)] / R(T0) = k/R(T0) = k/k/T0 = 1/T0

Perhaps one should always go back to equation 3 instead.

---------------------------------------------------------------------------

Comparison of real tempco circuits with the requirements:

I) A tempco in the feedback loop of an inverting amplifier:

The gain is  R(T)/R (if we use the right expo base the minus sign can
be dropped) and together with equation 1 we get:

R(T)/R = C*T  <=> R(T) = R*C*T

The Taylor development for some temperature T0 is trivial and exact:

R'(T)= R(T) = R*C*T0 + R*C*(T-T0)

The relative tempco is (Equation 2): 

[R*C] / [R*C*T0] = 1 / T0

we see that the tempco is positive.

e.g. 3410ppm, 3333ppm, or 3190ppm for different points of development
T0=20C , 30C and 40C.

---------------------------------------------------------------------------

II) A tempco at the summing node of an inverting amplifier:

The gain is  R/R(T) and together with equation 1 we get:

R/R(T) = C*T   <=> R(T) = R/C/T

The Taylor development for some temperature T0 is:

R'(T)= R/C/T0 - R/C/(T0**2)*(T-T0)

The relative tempco is (Equation 2): 

[-R/C/(T0**2)] / [R/C/T0] = -1 / T0

we see that the tempco must be negative.

e.g. -3410 ppm, -3333ppm and -3190 for different points of development
T0=20C , 30C and 40C.

---------------------------------------------------------------------------

III) A tempco in the lower leg of a resistive, not loaded divider:

same procedure:

R(T)/(R(T)+R) = C*T <=> R(T) = R*C*T/(1-C*T)

The Taylor development for some temperature T0 is:

R'(T) = R*C*T0/(1-C*T0) + R*[ C/(1-C*T0) + C*C*T0/((1-C*T0)**2)] * (T-T0)

The relative tempco is (Equation 2): 

{R*[ C/(1-C*T0) + C*C*T0/((1-C*T0)**2)]} / [R*C*T0/(1-C*T0)] = 1/T0+C/(1-C*T0)

With the values for C from above we see that the tempco is positive.

We see that the proper tempco depends also on C=ln(a)/q*kb/1V, i.e. a
check experiment that looks at the tempco requires that the desired
scaling K is allready set up properly, which is somewhat unpleasant.

For a=2 the required tempco of variant III is about 1.6% - 2.3% larger
then that of variant I in the range of 0C-100C e.g.

e.g. 3474ppm, 3361ppm, 3256ppm for different points of development
T0=20C , 30C and 40C.

---------------------------------------------------------------------------

IV) A tempco in the upper leg of a resistive, not loaded divider:

R/(R+R(T)) = C*T <=> R(T) = R*(1/C/T-1)

The Taylor development for some temperature T0 is:

R'(T) = R*(1/C/T0-1) - R/C/(T0**2) * (T-T0)

The relative tempco is (Equation 2): 

[-R/C/(T0**2)] / [R*(1/C/T0-1)] = -1/(T0-C*(T0**2)) = -1/T0-C/(1-C*T0)

With the values for C from above we see that the tempco is negative.

The proper tempco depends again on C=ln(a)/q*kb/1V, i.e. a check experiment
that looks at the tempco requires that the desired scaling K is
allready set up properly, which is somewhat unpleasant.

------------------------------------------------------------------------------

These results for the needed tempcos are surprisingly simple,
there are basically only two cases:

1/T0 for the feedback opamp
and 1/T0+C/(1-C*T0) for the resistive divider.

The values of the other fixed resistors do not appear.

We can see taht the resistive divider needs allways more tempco, about
1.17-1.20% in the temperature range of interest and a=2.

------------------------------------------------------------------------------


m.c.





More information about the Synth-diy mailing list