Question
Getting temperature from ADC on STM32f091
Posted on April 27, 2016 at 15:46
Hello!
I have a problem with the sensor temperature of STM32F091 (ARM Cortex M0). According to datasheet, temperature is coming from ADC channel 16. In my program, ADC acquiring is working well because I can receive values from channels 10, 11 and 12. The value I read from ADC channel 16 (temperature sensor) is 117. According to, temperature is computed with the following formula:
temperature = ((110-30)/(TS_CAL2 - TS_CAL1)) x (TS_DATA * TS_CAL1) + 30 This formula doesn't work for me: zero is returned. I tried to understand why by checking the value of TS_CAL1 and TS_CAL2 in the chip memory. The values are the following: TS_CAL1 = 0xDF06 (1759 in decimal) TS_CAL2 = 0x2605 (1318 in decimal) I found these values at the addresses given in the.
If I well understand, I should have 1759 when I have 30�C. How can I have this 16 bit value when my ADC is sampling 8 bits (255 max)? Then I tried to change scale of TS_CAL1 and TS_CAL2 in case of ST made their acquiring in 12bits mode: NEW_TS_CAL1 = (TS_CAL1 * 4095)/255 = 110 NEW_TS_CAL2 = (TS_CAL2 * 4095)/255 = 82 With these values the formula returns me a value of 8�C but the temperature in the romm I am currently working in is 24�C. I don't know what to do now to make it work. Please help #getting-temperature-from-adc-on