Forum: Mikrocontroller und Digitale Elektronik MSP430 linearisierte Tempmessung mit ADC


von Walter Braun (Gast)


Lesenswert?

Mit dem MSP430 soll mit dem eingebauten 12 Bit ADC die
Temperatur-Änderung erfasst werden. Die Justierung auf die
Absoluttemperatur ist vorerst nicht nötig. Der Sensor muß aber trotzdem
ziemlich linear arbeiten, da die Temperaturänderungen in definierten
Zeitabständen mit 12 Bit Genauigkeit erfaßt werden müssen. Als Sensor
wurde der KTY84-130 ausgewählt.

a)Philips schlägt für den KTY84 einen Konstantstrom von 2mA vor. Im
genutzten Temperaturbereich liegt dessen Widerstand zwischen 359 und
2166 Ohm. Damit ergibt sich der Spannungsfall am Sensor zu 0.71 bis
4.332V. Um analoges Rauschen möglichst zu vermeiden wollte ich den
MSP430 mit Vref- = 0V arbeiten lassen. Ich habe mir jetzt gedacht, die
2mA Stromquelle gegen Plus zu schalten und den Sensor gegen eine
negative Vorspannung von -0.71V arbeiten zu lassen. Am Knotenpunkt
zwischen Sensor und Stromquelle hätte ich dann 0 -> 2.15 die ich durch
Erhöhung des Konstantstromes auf einen Bereich von 0 -> 3.6V erweitern
könnte. Ist die negative Vorspannung hier sinnvoll oder gibt es
elegantere Lösungen?

b)Für den Widerstand in Abhängigkeit von der Temperatur in Grad Celsius
habe ich die Parabel y=0.011x^2+3.91x+498.45 aufgestellt. Diese stimmt
bis auf etwa 1.4 Kelvin mit der Kennlinie de KTY84 überein. Diese
Parabel müsste ich dann nochmals für die 12 Bit- Digitalwerte des ADC
berechnen. Der konstante Anteil würde dann aber schon durch die
negative Vorspannung des Temperatursensors ausgeglichen werden. Zur
Korrektur müsste ich im Prozessor dann nur noch mit guter Genauigkeit
den quadratischen Korrekturfaktor berechnen und vom ADC Wert abziehen.
Dabei sehe ich ein Problem: im Bereich der hohen Widerstände beträgt
der Korrekturfaktor etwa 35 Prozent des Absolutwertes. Wenn ich den
Absolutwert mit 12 Bit einlese und dann 35 Prozent abziehe, verringere
ich doch meine effektive Auflösung deutlich. Gibt es hier eine bessere
Lösung?

c)Kann man die Parabel analog entzerren?

von Gerhard Gunzelmann (Gast)


Lesenswert?

Hallo

zu a)versteh ich nicht. Wozu -0.71 Volt. Woher nehmen ? mit nem Poti
oder was ? Wie lang funktioniert das denn ? Die Konstantstromquelle mit
2mA wie ist denn die aufgebaut ? Stromquellen habe oft eine große
Temperaturabhängigkeit. Also KTY gegen Ground, dann ne Stromquelle ohne
TC; Die CR240 (2.4mA) hat glauch ich nen TC von annähernd 0. Wäre
geeignet. Nullpunktoffset wird per Software kompensiert.

zu B: würd ich auf jeden fall per Software machen

zu C: Bin zwar kein Analog-genie würde aber sagen ne parabel analog zu
entzerren verdient meinen Respekt

Gerhard

von Sebastian (Gast)


Lesenswert?

@Walter: Dein  Problem erscheint mir auch ein wenig komplex ... :-)

Ich versuche gerade im Moment genau dasselbe. Wenn ich es schaffe,
stelle ich heute Nachmittag noch ein neues Tutorial auf meine Homepage.
Prinzipiell bin ich jedenfalls so weit fertig, ich grübele gerade nur
noch über ein paar Umrechnungsfaktoren.

Ich benutze einen NTC (1k). (Naja, glaub ich zumindest, der ist aus
meiner Grabbelkiste -- notfalls ersetze ich ihn eben am Montag gegen
einen PT1000 oder so). Ich betreibe den an einem LM317 als
Konstantstromquelle mit 1,25 mA Konstantstrom. Der Spannungsabfall ist
bei mir im Zimmer (Raumtemperatur 20°C) 1,293 V (mit dem ADC12
gemessen). Jegliche Offset-Korrekturen führe ich per Software durch.
Als Vref- habe ich AVss, als Vref+ die internen 2,5 V. Muss gleich mal
im Kühlschrank gucken, ob das reicht ... :-)

Wie gesagt: Ich würde das alles per Software machen. Klar, du könntest
auch noch 'nen OP (inv. Verstärker oder so) als Offsetkorrektur davor
schalten, aber wieso? Mit 12 Bit kannst du ja locker genau genug
auflösen, da kannst du ruhig 0,7 V "verschenken".

Grüße, Sebastian

von Matthias Friedrich (Gast)


Lesenswert?

Wenn es auf große Genauigkeit ankommt, dann nimm einen PT1000. Dann
musst Du allerdings einen OP zur Offsetanpassung verwenden.
Einen Sensor mit Hardware zu linearisieren halte ich für keine gute
Idee, das geht in Software wesentlich effizienter. Eine Abweichung von
1.4K ist schon recht viel, wenn man bedenkt, dass noch andere
Störfaktoren dazukommen.

von Walter Braun (Gast)


Lesenswert?

Die Linearisierung per Software kostet halt etwa 2 Bits an Auflösung (12
Bits verteilen sich auf größeren Eingangsspannungsbereich). Für die
Bestimmung der Temperatur-Änderung ist das gerade nicht mehr
akzeptabel.

Für den KTY84 habe ich eine Linearisierungsformel gefunden die mit
einem Widerstand zur Linearisierung bis auf etwa 5K annährt. Dazu
genügt ein 1847 Ohm Widerstand parallel zum KTY84-130. Die 5K Fehler
habe ich dann noch, kann aber die 12 Bits vom wandler ausnutzen.

Die negative Vorspannung (mit LM317 den MSP 0.7V höherlegen als den
Tempsensor) soll den Analogbereich vergrößern.

Normalerweise hätte ich am Knotenpunkt Sensor 0.7-4.3V. Der MSP
verträgt aber nur 3.6V. Deshalb ziehe ich die 0.7V gegen Null und habe
dann einen sauberen Spannungsbereich von 0 bis 3.6V.

Durch den Parallelwiderstand sinkt der Spannungshub sogar noch ab, so
daß ich den MSP mit 3V fahren kann.

von Sebastian (Gast)


Lesenswert?

Moment. Du hast 12 Bit Auflösung am MSP430, wenn dir zwei verloren
gehen, hast du immer noch 10 Bit. Damit erreichst du bei einem Umfang
von meinentwegen -50°C bis +100°C eine Auflösung von ca. 0,15K! 15
Hundertstel Kelvin! So genau ist kein bezahlbarer Sensor! Wenn ein
Fliege auf den Sensor furzt, könntest du das schon feststellen. :-)

Grüße, Sebastian

von Walter Braun (Gast)


Lesenswert?

Das Problem ist, daß nicht die Absoluttemperatur zu messen ist sondern
die Änderung. Wenn z.B. die Heizung in 5 Sekunden um 0.2K ansteigt,
dann brauche ich die Auflösung. Die Messzeit kann wegen
Sicherheitsfunktionen nicht verringert werden.

Werde die Nichtlinearität wohl mit 1850 Ohm geradebiegen und dann den
Rest in Software machen.

von Sinx (Gast)


Lesenswert?

Eine Linearisierung des KTY84 geht auch so:
http://www.nxp.com/acrobat_download/various/SC17_GENERAL_TEMP_4.pdf

von Tobi (Gast)


Lesenswert?

>Wenn z.B. die Heizung in 5 Sekunden um 0.2K ansteigt,
>dann brauche ich die Auflösung. Die Messzeit kann wegen
>Sicherheitsfunktionen nicht verringert werden.

Ich versuche so etwas aehnliches zu erstellen, allerdings will cih die 
300 Grad voll ausnutzen. Des Weiteren sollten die Zuleitungen zu den 
Sensoren etwas laenger sein ~10m und die Kabel auch die Temperatur 
aushalten. Hat da jemand erfahrung?

Zu dem Zitat von oben:
tth thermal time constant in still air 20 s
Der Sensor KTY84 kann in 5Sekunden den Anstieg von 0.2K nicht messen, 
oder? dazu ist der mit ner thermischen Zeitkonstanten von 20s doch viel 
zu langsam.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.