Reach 200 degre celsius with the temperature sensor in the ATSAM20Dj18a

Hi, i'm working with the ATSAM20DJ18A (using ASF) and i'm doing some temperature monitoring. But it seems like I'am stucked at 169 degre celsius. Is there a way maybe by changing the ADC reference to mesure 200 degre celsius?

Regards,

Parents
  • Hi carrelito1824,

    It's possible but you have to do that with caution.

    hot.jpg

    The temperature sensor of the ATSAMD20J18 is an on-chip thermal sensor. The temperature it senses is the die temperature of the MCU. To be able to read 200 °C from the temperature sensor, the die temperature itself should be raised to 200 °C. This may be too much thermal stress for your MCU and you risk damaging the device.

    So, if you want to pursue your objective you have to obtain more technical information and guidance before you proceed.

    If you were able to read a maximum of 169 °C, you are lucky because for a 1.0 V reference, this is the maximum temperature (169.783 °C) you can read with the minimum temperature sensor slope of 2.3 mV/°C. With the typical temperature sensor slope of 2.4 mV/°C you get only 163.75 °C and with the maximum temperature sensor slope of 2.5 mV/°C you get only 158.2 °C. Note also that the integrated temperature sensor has an accuracy of only ±10 °C.

    If you have the typical Analog supply voltage (VDDANA) of 3.3 V, here is a convenient way to allow the microcontroller to read 200 °C from the temperature sensor without using an external voltage reference. Do these:

    • Set Bits 3:0 (REFSEL[3:0]) of the Reference Control (REFCTRL) register to 0x1. This sets the Reference Selection to INTVCC0 (1/1.48 VDDANA), the reference voltage becomes 2.2297 V.
    • Set Bits 27:24 (GAIN[3:0]) of the Input Control (INPUTCTRL) register to 0x1. This sets the Gain Factor Selection to 2X (2x gain).

    Because of the 2x gain factor,

      • The temperature sensor output voltage at 25 °C (0.667 mV) becomes

    2 * 0.667 mV = 1.334 V.

      • The typical temperature sensor slope (2.4 mV/°C) becomes

    2 * 2.4 mV/°C = 4.8 mV/°C

    Owing to the combined effects of the new reference voltage and the 2x gain factor,

    • The maximum change in voltage is

    2.2297 V - 1.334 V = 895.7 mV

    • The maximum change in temperature at the typical temperature sensor slope (2x)(2.4 mV/°C) is

    895.7 mV / (4.8 mV/°C) = 186.604 °C

    • The maximum temperature that can be read is

    25 °C + 186.604 °C = 211.604 °C.

    Using the maximum temperature sensor slope (2x)(2.5 mV/°C), the maximum temperature that can be read is 204.14 °C. Since these maximum temperature estimates are just slightly greater than your 200 °C target, the dynamic range of the ADC is almost fully utilized.

    Just be reminded that the reference and gain factor selection affect all ADC channels. This can introduce additional obstacle(s) when you have other quantities to be measured in the other ADC channels.

    Regards,

    Goodwin

Reply
  • Hi carrelito1824,

    It's possible but you have to do that with caution.

    hot.jpg

    The temperature sensor of the ATSAMD20J18 is an on-chip thermal sensor. The temperature it senses is the die temperature of the MCU. To be able to read 200 °C from the temperature sensor, the die temperature itself should be raised to 200 °C. This may be too much thermal stress for your MCU and you risk damaging the device.

    So, if you want to pursue your objective you have to obtain more technical information and guidance before you proceed.

    If you were able to read a maximum of 169 °C, you are lucky because for a 1.0 V reference, this is the maximum temperature (169.783 °C) you can read with the minimum temperature sensor slope of 2.3 mV/°C. With the typical temperature sensor slope of 2.4 mV/°C you get only 163.75 °C and with the maximum temperature sensor slope of 2.5 mV/°C you get only 158.2 °C. Note also that the integrated temperature sensor has an accuracy of only ±10 °C.

    If you have the typical Analog supply voltage (VDDANA) of 3.3 V, here is a convenient way to allow the microcontroller to read 200 °C from the temperature sensor without using an external voltage reference. Do these:

    • Set Bits 3:0 (REFSEL[3:0]) of the Reference Control (REFCTRL) register to 0x1. This sets the Reference Selection to INTVCC0 (1/1.48 VDDANA), the reference voltage becomes 2.2297 V.
    • Set Bits 27:24 (GAIN[3:0]) of the Input Control (INPUTCTRL) register to 0x1. This sets the Gain Factor Selection to 2X (2x gain).

    Because of the 2x gain factor,

      • The temperature sensor output voltage at 25 °C (0.667 mV) becomes

    2 * 0.667 mV = 1.334 V.

      • The typical temperature sensor slope (2.4 mV/°C) becomes

    2 * 2.4 mV/°C = 4.8 mV/°C

    Owing to the combined effects of the new reference voltage and the 2x gain factor,

    • The maximum change in voltage is

    2.2297 V - 1.334 V = 895.7 mV

    • The maximum change in temperature at the typical temperature sensor slope (2x)(2.4 mV/°C) is

    895.7 mV / (4.8 mV/°C) = 186.604 °C

    • The maximum temperature that can be read is

    25 °C + 186.604 °C = 211.604 °C.

    Using the maximum temperature sensor slope (2x)(2.5 mV/°C), the maximum temperature that can be read is 204.14 °C. Since these maximum temperature estimates are just slightly greater than your 200 °C target, the dynamic range of the ADC is almost fully utilized.

    Just be reminded that the reference and gain factor selection affect all ADC channels. This can introduce additional obstacle(s) when you have other quantities to be measured in the other ADC channels.

    Regards,

    Goodwin

Children