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???
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.
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
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.
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???
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.