Due to the U.S. Thanksgiving holiday, please expect delayed responses during the week of 11/22.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR2353: Msp430fr2353- Internal Temperature sensor range capability

Part Number: MSP430FR2353
Other Parts Discussed in Thread: MSP430FR2355

Hello,

I am working on MSP430fr2353 microcontroller for one of our application.

We have to use the internal Temperature sensor for our application in which we have to read temperature from 0degee to above 50 degree range.

Does the inbuilt temperature sensor has the capability to read between that range?

Regards

Sanath Rai

  • Hi Sanath Rai,

    The temperature sensor is capable to read from 0 degree C to 50 degree C. Please check for more information in the User's Guide. However, if you need a high accuracy in your application, I would recommend you to use a external temperature sensor.

    Best regards,

    Cash Hao

  • Hi Cash Hao,

    Thank you for the reply.

    As i am using Msp430fr2353 should i use 105 degree or 85 degree value in the TLV table(Table 6-70) in the device datasheet.

    ADC internal shared 2.5-V reference,

    temperature 30°C       1A22h Per unit

                                        1A23h Per unit

    ADC internal shared 2.5-V reference,

    high temperature(3)

    1A24h Per unit

    1A25h Per unit

    My internal reference for temperature sensor is 2.5V

    Regards

    Sanath

  • Hi Sanath,

    The TLV data is trimmed at 30 degC. Check chapter 2.2.9 in UG.

    Best regards,

    Cash Hao

  • Hi Cash,

    Right Now we are reading temperature using the below seetings and formula.

    Reference is 2.5V.

    Formula used is

    Final Temperature = (Raw ADC-CALADC_25V_30C)*(75)/(CALADC_25V_105C-CALADC_25V_30C)+30;

    CALADC_25V_30C  -  1A22h

    CALADC_25V_105C-  1A24h

    we are getting Minimum of 17 degree in our device. we are keeping our device in refrigerator for 1 hour but the minimum temperature observed is 17degree.

    But we are able to read room temperature in our device.

  • Hi Cash,

    Our Application requirement is to read the temperature from 1 degree to 50 degree.

    By using the above mentioned formula we are not able to read temperature below 30 degree as it is factory trimmed at 30 degree.

    The temperature when we kept our device in refrigerator was 17 degree was wrong according to the formula.

    Is there any formula or calculation or any modification to existing formula to be done to read the temperature from 1degree to 50 degree?

    Regards

    Sanath

  • Hi Cash,

    As per user guide in section 21.2.7.8 Using the Integrated Temperature Sensor referring to 12bit ADC  slope we are seeing at 0 degree voltage should be 700mV. 

    Tc Sensor (temperature coefficient) is 2.32mV/degree.

    Voltage at 0 degree =700mV

    Temperature = Interested temperature(0 degree).

    Vsensor= (Tc Sensor x Temperature) + Voltage at 0 degree

    Using the above formula can we calculate the required temperature from 0 to 50 degree?

    Regards

    Sanath Rai

  • What are some actual values you're observing? (Raw_ADC, CALADC_25V_*) And what are the variable types?

    What I've observed with other devices (examples) is that it's easy to get the arithmetic conversions wrong and/or get underflows/overflows in the arithmetic. For better or worse, Example msp430fr235x_adc12_16.c does it in floating-point, which is not very instructive.

    What I would be doing right now is collecting a set of actual values (with the debugger) and doing the arithmetic with a calculator. This will distinguish (a) the ADC is wrong from (b) the calibration constants are wrong from (c) the arithmetic is wrong.

  • Hi Bruce,

    We have debugged the Device and checked the RAW Adc values and cross verified with the values given in Datasheet.

    Below is our Observation

    Note: Our reference voltage is 2.5V

    So according to the user guide(21.2.7.8 Using the Integrated Temperature Sensor) for 12 bit ADC  at 0 degree the Voltage is 700mv which is 1147(Raw ADC value)

    we are using the formula 

    VSense=TCsensor * Temperature + Vsensor

    Temperature =((Vsense-Vsensor)/(TCsensor))

    Vsensor is the value at 0degree which is 700mv(1147 is the ADC)

    Vsense the ADC value read from A12 channel of the device of inbulit Temperature sensor.

    TCsensor is the Tempearture coefficeint which is 2.32mV/degree on convertion to ADC it is 3.801088

    so 

    Temperature =((ADC raw -  1147)/(3.801088))

    Now At room temperature we read 30 degree which was correct but when we kept the device inside Refrigerator for 3 hours we were able to read temperature around 22 degree which made us bit doubtful of the reading .

    For 30 degree the RAW ADC value was 1261 which is correct reading according to the 0 degree reference ADC.

    what is the correct way to test the lower temperature say from 0degree to 50 degree?

    please suggest.

    Regards

    Sanath

     

  • I get sllightly different numbers from yours -- My 2.5/30 constant is 1285 and my 2.5/105 constant is 1625, which my spreadsheet computes as Temp=0.221*ADC-253.456, or 2.76 mV/degree.

    But I see what you mean: I put an icepack on my Launchpad (directly on the MCU) and the lowest I read was 8.38 degrees (1187 ADC ticks). I suppose it's some kind of self-heating thing. Are you reading the temperature while it's in the freezer (-14C) or do you take it out first?

  • Hi Bruce,

    I have a small doubt here.

    What's the formula you have used to calculate the temperature?

    It seems bit different from ours? Also the coefficient we are using is 2.32mv/degree as per the datasheet section 5.12.4  table 5.10.

    Regards

    Sanath

  • The data sheet numbers are "Typical", and vary between devices. I'm using the formula from Example msp430fr235x_adc12_16, adapted for the 2.5V reference and the 105C rating:

    >IntDegC = (temp-CALADC_25V_30C)*(105-30)/(CALADC_25V_85C-CALADC_25V_30C)+30;

    The Example is here:

    https://dev.ti.com/tirex/explore/node?node=AAtVKPeBbLjsgyiiEaXSdA__IOGqZri__LATEST

  • Hi Bruce,

    So using the above formula you have used can we read temperature from 0 degree upto 50 degree?? Because in the formula the TLV value is given for 30 degree  to 105 degree right?

    Regards

    Sanath

  • Those two values provide a 2-point calibration, i.e. a line. The line's formula (on my chip) is capable of results down to about -253C (at ADC=0 ticks).

    A separable question is whether/how it is possible to drive the chip's case temperature down to 0C, which an icepack (e.g.) doesn't appear to accomplish. Some time back I measured our freezer at 7F (-14C), but I don't have a setup to log the temperature while it's in there. There's not much thermal mass, so it probably heats up rather quickly once it's taken out.

  • Hi Bruce,

    Thanks for the explanation.

    But can you please elaborate bit more on your first point.

    I didn't get that.and your chip is msp430fr2355 right?

    Till now we were thinking that the formula you used was not able to read temperature below 30 degree.now we will use the same formula and send the device to a lab with a controlled environment and test the temperature reading.

    Regards

    Sanath

  • As I understand those values, they say "with a 2.5V reference, at temperate T we measured this many ADC ticks". If we believe that the transfer function is linear [Ref UG (SLAU445I) Fig 21-19] those two points describe a line which provides temperature for whatever ADC reading (ticks) we get. These numbers are not radically different from those in data sheet (SLASEC4C) Table 5-10, though they're described differently. A separable question is whether the ADC/sensor/packaging can ever generate a given number of ADC ticks (ADC=0 ticks, e.g. seems improbable).

    I was using an FR2355, since I don't have an FR2353. I think that for these purposes the devices are identical.

    [Full disclosure: I don't actually use the internal temperature sensor. If I need temperature, I design in a separate sensor so I can move it as far as possible from any heat sources on the PCB.]

  • Hi Bruce,

    Thank you.

    We will work on it and try to read temperature in a controlled environment.

    I will get back to you on this.

    Regards

    Sanath

  • Yes, please let us know how it turns out. 

  • "[Full disclosure: I don't actually use the internal temperature sensor. If I need temperature, I design in a separate sensor so I can move it as far as possible from any heat sources on the PCB.]"

    This.

    I suggest that you attach a very fine wire  thermocouple to your board - possibly right to the chip - to see if self heating is an issue. While the epoxy in the package is a pretty good conductor, there will still be a thermal gradient from die to case.