Thermistor temperature measurement- Summary
Michael Rigby-Jones email (remove spam text)
> -----Original Message-----
> From: J Nagy [SMTP:ELMELECTRONICS.COM] jnagy
> Sent: Friday, December 22, 2000 1:41 PM
> To: MITVMA.MIT.EDUPICLIST
> Subject: Re: [EE] Thermistor temperature measurement- Summary
> I saw this comment on the schmitt trigger input before and left
> but seeing it again, I can't let it go without saying anything...
> I have seen no evidence to support this claim. In my experience,
> I've been able to obtain very repeatable results and would promote these
> inputs as the first choice. Perhaps there is a lack of understanding with
> their operation that perpetuates this.
I spent nearly 2 weeks trying to get acceptable performance using a single
slope software ADC. The problem is this:
The schmitt trigger threshold changes repeatably with supply voltage which
in itself is not a problem. However, this change has a fairly gentle slope.
Because this change is quantised by the ADC counter, quite a large change in
supply voltage is needed to get a change of one count on the reference
branch. The overall effect of this is that while the equation:
Rtherm = (Ttherm * Rref)/Tref (where Ttherm and Tref are the times to
charge the cap through the appropriate resistor, and Rref is the known
resistance of the reference resistor.)
will give *on average* corrected results, in practice the result periodicaly
wanders either side of the correct result as the supply voltage is changed .
This may or may not be a problem depending on the required accuracy and
repeatability required. I was using a 3 cycle resolution counter with a PIC
running at 20 Mhz to get the resolution I needed. I was typically getting a
count of around 900 from both the thermistor and the reference branch at
25C. The thermistor was used as feedback in a PID loop controling a TEC.
Over a supply voltage range of 4.7 to 5.3 the temperature of the TEC
changed by almost 0.5 degree either side of it's correct setting, an overall
error of nearly 1 degree, which was absolutely unacceptable in my case.
Ditching the software ADC method and using an external 10 bit ADC gave the
<0.1C performance required.
Acheiving a monotonic output from the above equation is also tricky if you
are using integer math, which the majority of people will be. Monotonic
performance is acheivable over a small range by carefull choice of the
reference resistor value.
Another possible gotcha with this method is it's noise immunity, or lack
thereof. This means that using an emulator, or the Microchip ICD will cause
big problems, the emulator because of the length of the ribbon connecting
the "pod" to the emulator picks up lots of noise from adjacent port pins
etc, and the ICD because it could have been designed as some kind of EMC
As I said, this technique would be fine for less demanding situations.
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads
See also: www.piclist.com/techref/io/sensors.htm?key=temperature
You must be a member of the
piclist mailing list
(not only a www.piclist.com member) to post to the