possible tempco alternative link
Martin Czech
martin.czech at intermetall.de
Mon Nov 8 09:51:48 CET 1999
:::I'm not following this argument. The term being compensated is
:::exp(-V/kT). Since V is proportional to the tempco R, we need R
:::proportional to T. This is a linear T dependence of R. It is not correct
:::to say that the tempco should be the same as the tempco of 1/T. The two
:::temperature effects are not being subtracted, they are being ratioed.
Ian, I'm sorry I caused confusion. I should have said, that I
assume a passive voltage divider network. In the case of an inverting
opamp with tempco in the feedback or non feedback path you are perfectly
right:
positive tempco and inv opamp:
=> R(T)/R*q/k/T=ln(2) => R(T)=R*ln(2)*k*T/q (linear, as you said)
with: R(T) : tempco in feedback path
R : in nonfeedback path
negative tempco and inv opamp:
=> R/R(T) *q/k/T=ln(2) => R(T)=R/ln(2)*q/k/T (not linear, unusual)
passive divider can only use positive tempco:
V is "regulated" by a voltage divider, with some fixed upper leg Ru
and a positive tempco resistor Rl in the lower leg, eg. If we assume
that the transistor does NOT load the divider, we get:
V=Rl/(Rl+Ru)*Vin
where Vin is our input voltage we would like to scale to 1V/oct eg.
(Other scaling gives the same math and is not considered here).
The difference to the linear potentiometer is, that ONLY Rl varies,
so V is gouverned by a NONLINEAR scaling factor S(Rl)=Rl/(Rl+Ru).
We want:
exp{+-Vin*Rl/(Rl+Ru)*q/k/T}=exp{+-Vin*ln(2)}
(+- because it doesn't really matter, which of the two expo
trannys is used as input, it jsut changes the sign.)
=> Rl/(Rl+Ru)*q/k/T =ln(2)
=> Rl(T)=Ru*[1/{(q/k/T/ln(2)-1}]
The linear approximation temperature for Rl is
Rl(T)=Rl0+a*T
We can find the factor a by differenciation:
d/dT Rl(T)=a
But usually the tempco is given as ppm/K, ie. a relative measure,
so we have to write:
tempco(T) = {d/dT Rl(T)}/Rl(T)*100 (for percent) or
tempco(T) = {d/dT Rl(T)}/Rl(T)*1000 (for per mille (sp?)) or
tempco(T) = {d/dT Rl(T)}/Rl(T)*1e6 (for ppm)
The rest is gnuplot.
(rem.:
I did not take the pain of differentiation, instead I used
a difference:
d/dT Rl(T) ~ {Rl(T+deltaT)-Rl(T)} / {deltaT}
Rl(T) is a friendly function, not much error due to this difference
approximation.
)
m.c.
More information about the Synth-diy
mailing list