Präzise Temperaturmessung mit 12Bit-ADC und NTC

OP #6505043
Lesenswert?

Hallo,

ich habe einen NTC (100k, 0,5%, 4250K) an einem Spannungsteiler mit 
R2=100k (0,05%, 10ppm) und messe in 10-Minuten Abständen die Temperatur 
über den 12-Bit ADC eines STM32L010K8 Controllers. Dabei verwende ich um 
möglichst genaue ergebnisse zu erhalten das Hardwareoversampling mit 
einer Oversampling Rate von 128.

Wie im Bild gezeigt, schwankt die gemessene Temperatur zwischen 12,1 und 
12,5°C und pendelt immer hin-und her. Die Temperatur ist aber bei 12,7°C 
konstant.

Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten?
Angehängte Dateien:
Gast #6505157
Lesenswert?

Der µC hat keinen Aref, vermutlich misst du deine Referenz und führst 
damit einen Vergleich durch? Da der ADC aber gegen seine VCC misst, kann 
das u.U. zu Schankungen im Messwert führen, wenn VCC etwas wackelt. 
Besser wäre hier eine ratiometrische Messung gegen VCC über eine 
Messbrücke. Die ADCs in den STM32 sind m.E. nicht sonderlich gut...
Gast #6505160
Lesenswert?

Bedenke auch, dass das Oversampling wegen der sehr hohen Quellimpedanz 
die Pufferkondensatoren entlädt. Wage mal einen Versuch ohne 
Oversampling ggf. spiel etwas mit der Samplinggeschwindigkeit rum, falls 
der µC das untertützt.
OP #6505187
Lesenswert?

Ingo Less schrieb:
> Der µC hat keinen Aref, vermutlich misst du deine Referenz und führst
> damit einen Vergleich durch? Da der ADC aber gegen seine VCC misst, kann
> das u.U. zu Schankungen im Messwert führen, wenn VCC etwas wackelt.
> Besser wäre hier eine ratiometrische Messung gegen VCC über eine
> Messbrücke. Die ADCs in den STM32 sind m.E. nicht sonderlich gut...

Ich messe im Verhältnis zur interne Vref und rechne mit dem ausgelesenen 
Kalibrierwert auf 3V hoch. Der Spannungsteiler wird mit einer 2,048V 
Präzisionsspannungsquelle gespeist.

Mit dem Oversampling und Samplingtime habe ich schon herumgespielt und 
erhalte mit der aktuellen Einstellung bis jetzt die besten Ergebnisse.
Moderator (Firma: Titel) Persönliche Seite #6505278
Lesenswert?

M. G. schrieb:
> Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten?
Wie lang ist die Leitung zum NTC und wie oft tastest du den Eingangswert 
ab?
Zeichne mal die Zeitbasis in die x-Achse.
Ich könnte mir vorstellen, dass du da Störungen aus dem Netz mitmis(s)t.

> Dabei verwende ich um möglichst genaue ergebnisse zu erhalten das
> Hardwareoversampling mit einer Oversampling Rate von 128.
Das bringt zur Unterdrückung von Netzstörungen nichts, wenn der diese 
128 Messungen innerhalb von 5ms macht. Denn schlauerweise müsstest du 
die 128 Messungen auf 20ms = 1 Vollwelle der Netzfrequenz verteilen, 
damit sich Netzstörungen von selbst "herausfiltern".

>  messe in 10-Minuten Abständen die Temperatur
Ich würde an deiner Stelle einfach pro Sekunde 10 Analogwerte einlesen 
und über 4096 Messwerte mitteln (dann wird die Mittelwertbildung 
/Filterung für die CPU ziemlich einfach).

BTW: verbinde die Messpunkte nicht mit "Pseudodaten", sondern einfach 
mit geraden Linien. Denn  nur die Daten für die Punkte sind echt. Alles 
andere ist geraten. Und in geratenen Werten Fehler zu suchen, ist 
fehlerträchtig.
OP #6505931
Lesenswert?

Klaus R. schrieb:
> MaWin schrieb:
>> Ersetze den NTC durch eine 1.5V Batterie. Dessen Spannung bleibt bei
>> gleichbleibender Temperatur kostant bei den 100k und Minuten.
>
> @ M. G.
> Du solltest auf MaWin hören. Nur so kannst Du Dein Problem einkreisen.
> Statt einer 1,5 V Batterie genügt ja für das erste auch ein 100 k
> Widerstand.
> mfg Klaus

Ich habe nun den NTC mit einem 100k (0,05%, 10ppm) Widerstand 
ausgetauscht. Als Ergebnis erhalte ich einen stabilen Wert von 100107 
Ohm - konstant über die letzten Stunden. Den NTC habe ich auch mit einem 
anderen Typ ausgetauscht. Auch hier der selbe Effekt. Also müssen diese 
alternierenden und regelmäßigen Schwankungen vom NTC kommen.

Der ADC wird mit 8MHz getaktet, Prescaler = 4, ADC Sampletime = 160,5 
cycles.
Das ergibt bei 128-fachem Oversampling eine gesamte Samplingtime von 
rund 10ms.
#6505952
Lesenswert?

M. G. schrieb:
> Wie im Bild gezeigt, schwankt die gemessene Temperatur zwischen 12,1 und
> 12,5°C und pendelt immer hin-und her. Die Temperatur ist aber bei 12,7°C
> konstant.

Wie sieht den der Sensor aus? Ist das so ne kleine 0,1g Pille auf zwei 
Beinen?
Wenn ja, gugst du regelmäßig nach wie die Meßwerte stehen?!
(Wenn du dich solchen Pillen, auf unter einen Meter näherst, steigt 
deren Temp. um bis zu 1°!)
Gast #6505959
Lesenswert?

Schon erstaunlich, dass bei soviel wirr zusammengestoppelten
Schaltungskonzepten nur eine Unsicherheit von +/-1,65% rauskommt.

Was soll es bewirken, wenn eine interne UND eine externe
Referenz bemüht werden.

Widerstandsverhältnisse bestimmt man ratiometrisch - dazu muss
die Ref-Spannung = Versorgungsspannung nur kurzzeitig (während
der einzelnen Messung) stabil sein.

ADCs wollen fast immer eine Quellimpedanz <= 10 kOhm.
Ja klar, den Sample-Kondensator kann man auch niederohmig aus
dem 1 µF aufladen. Aber was ist mit Leckströmen? Bei 100 kOhm
bewirken 10 nA (auch mit 1 µF) schon mal 1 mV.
Dafür braucht man keinen 12-Bit-ADC.

Was verstehst du unter Hardware-Oversampling?
Wird dabei die maximale Samplerate / der maximale ADC-Takt
eingehalten?
Gast #6505974
Lesenswert?

also, für genauere Temperaturmessungen benutze ich TMP117.
Bei Temperaturdiffernzmessungen unter 1K spielt schon der Messaufbau 
eine gewaltige Rolle.
Wie ist die Verbindung von dem NTC zum Präzisionsthermometer ( wann 
zuletzt kalibriert mit welcher Fehlerangabe? ) gestaltet?
Angehängte Dateien:
Gast #6506190
Lesenswert?

Teo D. schrieb:
> noreply@noreply.com schrieb:
>> Jetzt wird es esoterisch.
>>
>> Über den Sensor eine Metallkappe drüber.
>>
>> Powered by teoderix.
>
> Was hat deine Körpertemperatur, von hoffentlich annähernd 37°C und der
> dementsprechenden Wärmestrahlung, mit Esoterik zu tun?
> ...
> Und wenn schon Esoterik, dann schon bitte ein Aluhütchen !

Bitte nicht falsch verstehen. Ich meine den Vorschlag ernst und der 
Threadstarter würde mit der Metallkappe die Wärmestrahlung auf eine 
größere Masse verteilen.

Aber das Wissen um Wärmestrahlung ist in Deutschland abhanden gekommen.
Gast #6506193
Lesenswert?

Ich habe in meinen Geräten immer viele Temperatursensoren, sowohl analog 
als auch digital. Und die messen eigentlich recht zuverlässig und genau.

Mein Vorschlag: Messe öfter uns verzichte auf das Oversampling. Nur 
Rohwerte bringen dich jetzt weiter weiter.
Setze einen 2ten identischen Sensor direkt daneben und verleiche beide 
Messungen.
Traue nicht dem Präzisionsthermometer. Auch darin können Fehler 
enthalten sein.
#6506358
Lesenswert?

M. G. schrieb:
> Ich habe nun den NTC mit einem 100k (0,05%, 10ppm) Widerstand
> ausgetauscht. Als Ergebnis erhalte ich einen stabilen Wert von 100107
> Ohm - konstant über die letzten Stunden.

Na das sieht doch schonmal gut aus.

Ich würde aber den Sensor und Referenzwiderstand vertauschen, d.h. den 
Sensor an GND anschließen und auch über ein geschirmtes Kabel.
Rechnerisch sollte das ja kein Problem sein.
Gast #6506370
Lesenswert?

M. G. schrieb:
> Wie im Bild gezeigt, schwankt die gemessene Temperatur zwischen 12,1 und
> 12,5°C und pendelt immer hin-und her. Die Temperatur ist aber bei 12,7°C
> konstant.
>
> Kann mir jemand einen Tip geben woher diese Schwankungen kommen könnten?

Leider fehlt bei deinem Graphen oben die Zeiteinteilung. Aber meine 
Vermutung ist folgende: Im Normalzustand fliest ein relativ konstanter 
Strom über den NTC und den 100k Widerstand. Dadurch erwärmt sich der NTC 
ein wenig. Durch die Messung mit dem STM wird nun der interne Widerstand 
dessen ADC-Eingang parallel zum 100k Widerstand geschalten. Zwar puffern 
die Kondensatoren und könnten so einen Spannungsabfall verhindern. 
Allerdings steigt der Stromfluss und damit die Erwärmung am NTC. Bei so 
genauen Messungen könnte das schon eine große Auswirkung haben. 
Alternativ gleich was integriertes nutzen, z.B. MAX31725?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren