Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung Atmega nur Single Conversion?


von Funker (Gast)


Lesenswert?

Hallo Forum!

Ich versuche gerade bei einem Atmega 168 den internen Temperatursensor 
zu verwenden. Dabei bin ich über den Satz gestolpert:

"When the temperature sensor is enabled, the ADC converter can be used 
in single conversion
mode to measure the voltage over the temperature sensor."

Ich schließe daraus, dass ich die Temperatur nicht im Freerunning-Modus 
messen kann.
Was passiert, wenn ich es doch tue?

Hintergrund: Alle anderen ADCs lese ich im Free-Running-Modus aus und 
möchte nicht ständig umschalten.

Alternative: Einen Timerinterrupt opfern und damit den ADC manuell im 
Singlemodus triggern?

von 4toTakoe (Gast)


Lesenswert?

Vorab: Ich bin mir nicht ganz sicher, aber möchte meine Vermutung 
trotzdem loswerden.

Meines Wissens nach braucht der interne Sensor eine spezielle Vref (1,1V 
o.ä.). Für die anderen ADC-Eingänge wirst du sicher eine andere Referenz 
verwenden als die interne Vref die der Temp-Sensor nutzt.

Daher muss für den Messvorgang die Vref umgeschaltet werden, weshalb 
kein free-run funktionieren würde.

So in etwa ist meine Vermutung...

von Funker (Gast)


Lesenswert?

Ich verwende auch für die anderen ADCs die 1,1V Refspannung.

von spess53 (Gast)


Lesenswert?

Hi

>Ich versuche gerade bei einem Atmega 168 den internen Temperatursensor
>zu verwenden.

Dann lies dir das mal durch:

http://www.atmel.com/Images/doc8108.pdf

>Dabei bin ich über den Satz gestolpert:

>"When the temperature sensor is enabled, the ADC converter can be used
>in single conversion
>mode to measure the voltage over the temperature sensor."

>Ich schließe daraus, dass ich die Temperatur nicht im Freerunning-Modus
>messen kann.

Da steht 'can' und nicht 'must'.

MfG Spess

von Funker (Gast)


Lesenswert?

O.K. dann schließe ich nur daraus, daß er im Single Modus messen kann, 
weiß aber immer noch nicht, ob es auch im Free-Running-Mode geht.

Die AppNote zum internen Sensor ist sehr interessant. Danke.

von spess53 (Gast)


Lesenswert?

Hi

>O.K. dann schließe ich nur daraus, daß er im Single Modus messen kann,
>weiß aber immer noch nicht, ob es auch im Free-Running-Mode geht.

Vielleicht, weil es einfach sinnfrei ist, einen Temperatursensor im 
kHz-Takt auszulesen?

MfG Spess

von Funker (Gast)


Lesenswert?

Ich lese alle anderen ADCs im Khz Takt aus, da müßte ich jedesmal 
umschalten, wenn ich die Temperatur seltener auslesen wollte(siehe 
erster Post).

Mfg

von spess53 (Gast)


Lesenswert?

Hi

Was gibt es denn da groß umzuschalten? Im einfachsten Fall eine 
Zählvariable laufen lassen, die nur bei einem X-beliebigen Wert die 
Temperaturmessung zuschaltet.

>Die AppNote zum internen Sensor ist sehr interessant. Danke.

Ich hoffe du hast dort gelesen, das der 'gemessene' Temperaturwert ohne 
Kalibrierung um +-10° abweichen darf. Da ist mein Finger genauer.

MfG Spess

von c-hater (Gast)


Lesenswert?

spess53 schrieb:

> Ich hoffe du hast dort gelesen, das der 'gemessene' Temperaturwert ohne
> Kalibrierung um +-10° abweichen darf. Da ist mein Finger genauer.

Aber nur in einem recht engen Temperaturbereich um 37°C herum. ;o)

von Funker (Gast)


Lesenswert?

spess53 schrieb:
> Was gibt es denn da groß umzuschalten? Im einfachsten Fall eine
> Zählvariable laufen lassen, die nur bei einem X-beliebigen Wert die
> Temperaturmessung zuschaltet.

oder einfach X-Werte ignorieren, dadurch bleibt die Abtastfrequenz 
konstant.

spess53 schrieb:
> Ich hoffe du hast dort gelesen, das der 'gemessene' Temperaturwert ohne
> Kalibrierung um +-10° abweichen darf. Da ist mein Finger genauer.

Du hast aber nur 10 und ich brauche mehr Systeme :)

von bob (Gast)


Lesenswert?

Zur ursprünglichen Frage: ich verwende beim ATmega88A den Free-Running 
Modus und es funktioniert...

von Jobst M. (jobstens-de)


Lesenswert?

Funker schrieb:
> Alternative: Einen Timerinterrupt opfern

Oder den ADC-Interupt dafür benutzen.

ADC_ISR:
{ ADC-Wert(n) = ADC
  n++;
  Wenn (n > Benutzte Kanäle) n = 0
  ADC-Steuerregister = Parameter_tabelle(n)
  Wandlung starten
}


Easy ... ;-)


Gruß

Jobst

von Olaf (Gast)


Lesenswert?

> Ich lese alle anderen ADCs im Khz Takt aus, da müßte ich jedesmal
> umschalten,

Man koennte jetzt natuerlich fragen wie ungenau die Temperaturfuehler 
werden wenn sie andauernd eingeschaltet sind, aber zum Glueck gehen sie 
ja sowieso eher nach dem Mond. :-)

Olaf

von spess53 (Gast)


Lesenswert?

Hi

Da hat bob (Gast) einen fast 2 Jahre alten Thread ausgegraben, um zu 
erzählen wie das die minder bemittelten machen.

MfG Spess

von Jobst M. (jobstens-de)


Lesenswert?

F**k - drauf hereingefallen ...

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.