MSP430 und interner temperatursensor?

OP Persönliche Seite #813107
Lesenswert?
• ▲
▼
Hallo,
ich versuche, die Temperatur mit der eingebauten Temperaturdiode zu 
"messen":
1
static void adcInit() {
2
    ADC12CTL0 &=~ENC;
3
    P6SEL |= 0xef;
4

5
    ADC12CTL0 = MSC + ADC12ON + REFON + REF2_5V + SHT0_15;
6
    ADC12CTL1 = SHP+CONSEQ_3;
7

8
    ADC12MCTL0 = SREF_2+INCH_0;         
9
    ADC12MCTL1 = INCH_10+EOS;           
10

11
    ADC12IE = 0x2;
12

13
    ADC12CTL0 |= ENC;                         // Enable conversions
14
    ADC12CTL0 |= ADC12SC;                     // Start conversion
15
}

Der ADC gibt für Kanal1 etwa 1394 aus. Bei Erwärmung steigt der Wert, 
bei Abkühlen sinkt er.

Ändere ich
1
ADC12MCTL1 = INCH_10+EOS;
in
1
ADC12MCTL1 = SREF_2 + INCH_10+EOS;

Ändert sich nichts am ausgelesenen Wert.

Kanal0 mißt wunderbar!

Bitte nehme jemand das Brett von meinem Kopf ;-)

Falk
Gast #814139
Lesenswert?
• ▲
▼
> Außerdem: Warum zeigt das Ding auch bei Verwendung der 2,5V-Referenz
> eine Temperatur, die <-100°C ist?

Wir rechnest du denn die Temperatur um? Im Datasheet steht, dass man den 
Offset der Temperaturkurve selbst kalibrieren muss...
Gast #814239
Lesenswert?
• ▲
▼
>Naja, im User Guide steht´s zumindest, dass man dazu nur die interne Ref
>nehmen kann.
Wo steht das denn ?
Die interne Referenzspannung wird beim Kanal 0x1010 (Temp.Diode) 
automatisch aktiviert, da diese sozusagen als "Betriebsspannung" für die 
interne Temp.Diode benötigt wird. Die daraus resultierende 
Temp.-Spannung wird dann allerdings genauso wie ein externes Signal über 
den Eingangsmultiplexer eingespeist und kann natürlich mit jeder 
beliebigen (auch externen) Referenzspannung gesampled werden. Die 
Ref-Spannung muss natürlich entsprechend der Temp.-Spannung gewählt 
werden!

>Das taugt höchstens zum Schätzen.
Kommt darauf an, welche Genauigkeit man erreichen will!
Wenn man den µC beim Messen immer in einem definierten Betriebszustand 
hält und in diesem Zustand auch (zumindest den Offset) kalibriert, 
erreicht man schon eine Genauigkeit von +-1,5°C
OP Persönliche Seite #814284
Lesenswert?
• ▲
▼
Johnny Maxwell wrote:
>> Außerdem: Warum zeigt das Ding auch bei Verwendung der 2,5V-Referenz
>> eine Temperatur, die <-100°C ist?
>
> Wir rechnest du denn die Temperatur um?

Wie in fet140_adc12_10.c aus TIs Beispielen beschrieben:
1
temp = ADC12MEM0;
2
IntDegC = (temp - 2692) * 423;
3
IntDegC = IntDegC / 4096;

Mit meinem Wert von 1815 komme ich so auf -90°C.

> Im Datasheet steht, dass man den
> Offset der Temperaturkurve selbst kalibrieren muss...

Klar, aber um >130°? Irgendwo ist da der Wurm drin.

Falk
Gast #814293
Lesenswert?
• ▲
▼
>Wie in fet140_adc12_10.c aus TIs Beispielen beschrieben:
1
>temp = ADC12MEM0;
2
>IntDegC = (temp - 2692) * 423;
3
>IntDegC = IntDegC / 4096;
>Mit meinem Wert von 1815 komme ich so auf -90°C.

Ich denke, Du benutzt Vref=2,5V ?!
Die obige Formel bezieht sich auf VRef=1,5V !!!
OP Persönliche Seite #814301
Lesenswert?
• ▲
▼
Stefan wrote:
>>Wie in fet140_adc12_10.c aus TIs Beispielen beschrieben:
>
1
>>temp = ADC12MEM0;
2
>>IntDegC = (temp - 2692) * 423;
3
>>IntDegC = IntDegC / 4096;
4
>
>>Mit meinem Wert von 1815 komme ich so auf -90°C.
>
> Ich denke, Du benutzt Vref=2,5V ?!
> Die obige Formel bezieht sich auf VRef=1,5V !!!

Danke. Ich habe noch mal nachgesehen. Ich hatte vermutet, mit
1
ADC12MCTL4 = SREF_1 + INCH_10+EOS;
die 1,5Vref anzusprechen.
damit wähle ich aber nur generell die interne Referenz, die ich mit
1
ADC12CTL0 = MSC + ADC12ON + REFON + REF2_5V + SHT0_15;
 auf 2,5V gesetzt hatte.

Jetzt messe ich 30°C, was IMO im Bereich des normalen Fehlers ist.

Danke fürs Brett-vorm-Kopf-abreißen ;-)

Falk

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.