Hallo, weiß jemand, wie man beim MSP430 die Kalibrierungsdaten für den Temperatursensor verwendet? Irgendwie sehe ich das nicht im Datenblatt des MSP430G2252 beschrieben. Vielen Dank schon mal für die Hilfe? Michael
Guckst du User Guide Abschnitt 24.2.2 Sind ja zwei Referenzwerte für 1.5V und 2.5V Vref gegeben für 30°C und 85°C.
Afaik sind das Werte für den 12 Bit Converter ("TAG_ADC12_1 Calibration
TLV Structure"), ich haber hier aber nur den 10 Bit Converter.
Sind das dann die gleichen, wenn ich die durch 4 Teile?
Folgendes BeispieL gibt bei Zimmertemperatur ROT aus (Über 85°C).
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
Wobei ich selbst die Konstanten Definieren musste: (Vielleicht ist da ja ein Fehler)
1 | |
2 | |
Michael H. schrieb: > Afaik sind das Werte für den 12 Bit Converter ("TAG_ADC12_1 Calibration > TLV Structure"), ich haber hier aber nur den 10 Bit Converter. > Sind das dann die gleichen, wenn ich die durch 4 Teile? Normalerweise sollte dort einfach nur der Rohwert drin stehen, egal ob nun 12 oder 10 bit ADC. Wenn du nur nen 10 Bit ADC hast, dann ist die Adresse für die Kalibrierungswerte auch die gleiche Aus "24.2"
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Okay, ich bin nur mit den Werten, die abgespeichert sind nicht ganz so zufrieden, das können keine 10 Bit werte sein:
1 | |
2 | |
Mein erster Gedanke: Lese ich die falschen Werte?
1 | |
2 | |
Ich glaube, ich lese die richtigen Werte.
Michael H. schrieb: > Okay, ich bin nur mit den Werten, die abgespeichert sind nicht ganz so > zufrieden, das können keine 10 Bit werte sein: >
1 | |
2 | |
3 | |
Ja nun hast du sowohl T30 und T85 ausgelesen. T30 ist 0x02eb und T85 ist 0x0373 oder etwa nicht? Ist doch Little Endian. Die Kalibrierungswerte sind je 16 Bit breit und enthalten einen 10/12 Bit Wert.
Gast
#3112646
http://forum.43oh.com/topic/2026-tlv-data-calibration-parse-and-display/ Schönes Beispiel zum Auslesen der Cal. Daten.
Omg, klar, immer diese Formatfragen. Vielen Dank für deine Qualifizierte Hilfe. Ich habe mir, jetzt eine Funktion gebastelt, die mir die Temperatur in °C in Abhängigkeit der Temperaturwerte von 30°C und 85°C ausgibt. Die Funktion legt quasi eine Gerade durch die entsprechnenden Teile und erechnet anhand der Steigung den entsprechnden Punkt. Im Prinzip Mathe Klasse8. Eventuell hilft es ja jemanden.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Anmerkung: 55 Da 55 Grad Temperaturunterschied. 30, da wir 30 Grad in die Gerade einsetzten. Alternativ kann man auch 85 nutzen, kommt das gleiche raus.
Update zur Präzission: Im Zimmer werden Zimmergradtemperaturen gemessen, Außen, zur Zeit knapp über 0 Grad, wird kleiner 10 Grad gemessen. Mein Fazit: Bin ganz zufrieden mit der Präzission. Man darf keiner Wunder erwarten, aber dafür dass das Teil quasi für lau mitkommt =) Danke an Timo und Bernd für eure Hilfe!
Michael H. schrieb: >
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
> Anmerkung: 55 Da 55 Grad Temperaturunterschied. > 30, da wir 30 Grad in die Gerade einsetzten. Alternativ kann man auch 85 > nutzen, kommt das gleiche raus. Da wird auch nicht unbedingt das rauskommen was erwartet wird... T30 ist 0x02eb, T85 ist 0x0373 0x373 - 0x2eb = 136, 136 / 55 = 2,47272 bei einer Integerdivision sind das nur noch 2...
Gast
#3112775
Arc Net schrieb: > Da wird auch nicht unbedingt das rauskommen was erwartet wird... > bei einer Integerdivision sind das nur noch 2 Und was könnte helfen? Man rechnet in 1/10 oder 1/100 °C.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.