Forum: Mikrocontroller und Digitale Elektronik STM32 Temperatur Sensor


von Heikon (Gast)


Lesenswert?

Hallo,

habe eine Frage zum Temperatur Sensor:
Wie bekomme ich aus meinem AD-Messwert die Umrechnungsfaktoren für die 
Temperatur in °C?
Ich habe zwar ein Beispiel Projekt von ST, aber da stehen nur im 
file-Kopf 2 Konstanten, wo keiner weiß, wo die her kommen...

Hat jemand eine Info dazu, bzw. schon mal die Werte der Wandlung richtig 
umgerechnet?

Heiko

PS im DS und RM steht immer was von einer in der Produktion des µC 
gemessenen Wertes bei 90°C. Wo findet man die Adresse des Bytes, wo die 
das eingetragen haben???

von LuXXuS 9. (aichn)


Lesenswert?

Heikon schrieb:
> Hat jemand eine Info dazu, bzw. schon mal die Werte der Wandlung richtig
> umgerechnet?

Ist dazu keine Umrechnung im Datasheet / User's Guide? Kann ich mir 
nicht vorstellen.

von Heikon (Gast)


Lesenswert?

es steht eine Berechnungsformel im RM ADC, aber der Bezugspunkt fehlt.

Das ist der Code in einem Musterprojekt von ST - OHNE KOMMENTARE

uint16_t v25=17490;
uint8_t slope =53;

temp = ADC_ConvertedValue;
temp=(temp/4)*10;
temperature=((v25-temp)/slope)+25;


teile ich meinen gewandelten Wert durch 17, dann erhalte ich die 
korrekte temperatur.
ich möchte nur gerne verstehen, WARUM das so ist...

hat keiner den TempSensor in Betrieb genommen??

Heikon

von spess53 (Gast)


Lesenswert?

Hi

>hat keiner den TempSensor in Betrieb genommen??

Welchen?

MfG Spess

von avrGerd (Gast)


Lesenswert?

Hi,

aus dem Manual:

The temperature sensor output voltage changes linearly with temperature. 
The offset of this
line varies from chip to chip due to process variation (up to 45 °C from 
one chip to another).
The internal temperature sensor is more suited to applications that 
detect temperature
variations instead of absolute temperatures. If accurate temperature 
readings are needed,
an external temperature sensor part should be used.

Reading the temperature
To use the sensor:
1. Select the ADCx_IN16 input channel.
2. Select a sample time of 17.1 μs
3. Set the TSVREFE bit in the ADC control register 2 (ADC_CR2) to wake 
up the
temperature sensor from power down mode.
4. Start the ADC conversion by setting the ADON bit (or by external 
trigger).
5. Read the resulting VSENSE data in the ADC data register
6. Obtain the temperature using the following formula:
Temperature (in °C) = {(V25 - VSENSE) / Avg_Slope} + 25.
Where,
V25 = VSENSE value for 25° C and
Avg_Slope = Average Slope for curve between Temperature vs. VSENSE 
(given in
mV/° C or μV/ °C).
Refer to the Electrical characteristics section for the actual values of 
V25 and
Avg_Slope.
Note: The sensor has a startup time after waking from power down mode 
before it can output
VSENSE at the correct level. The ADC also has a startup time after 
power-on, so to minimize
the delay, the ADON and TSVREFE bits should be set at the same time.

von Heikon (Gast)


Lesenswert?

Alles klar, war bisher immer im STM32L unterwegs. Da ist das nicht so 
ausführlich beschrieben.

Aber denn auch schon mal gemacht??

Wenn man die Electrical Characteristics beachtet,
ist der Slope 4.3mV/°C und die V25 1.43V

mein Wert bei 36°C beträgt 0x026F

wie werden denn nun die V25 und slope in die Formel

X = (((V25-Vsense)/slope)+25) eingesetzt???

von martin (Gast)


Lesenswert?

Mathe 11. klasse
Wie bestimme ich eine geradengleichung

von Heikon (Gast)


Lesenswert?

Bitte nur konstruktive Antworten!!!!!!!!!!

Es geht darum, wie die Konstanten für die Weiterverarbeitung im Code 
umgerechnet werden müssen...
Gebe ich die in Dezimal als mV ein, kommt eine falsche Temperatur raus.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

@spess53: den internen natürlich!

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.