Skip to content

Support for internal die temperature measurement in some microcontrollers #992

@mofosyne

Description

@mofosyne

Just a heads up that many microcontrollers have a temperature sensor integrated inside the microcontroller itself.

Typically you would find it attached to the ADC internally or as a separate module.

This would be an easy way for users to gain an extra telemetry in cheap repeater only nodes.

Just be mindful that these sensors on the die itself is not always going to be very accurate unless calibrated and will usually not be exposed to the outside world so is not exactly ambient temperature.

Still if you consider it as the enclosure temperature, you can at least get a general sense of how much heat a device is experiencing over a period of time.

Technical References on internal die temperature options

nRF52840 (Heltek T114, WisBlock etc...)

https://www.mouser.com/datasheet/2/297/nRF52840_OPS_v0.5-1074816.pdf#page=314

26 TEMP — Temperature sensor
The temperature sensor measures die temperature over the temperature range of the device. Linearity
compensation can be implemented if required by the application.
Listed here are the main features for TEMP:
• Temperature range is greater than or equal to operating temperature of the device
• Resolution is 0.25 degrees

Warning

TEMP sensor is restricted when softdevice is active and must be accessed thought it's API. https://docs.nordicsemi.com/bundle/sds_s140/page/SDS/s1xx/sd_resource_reqs/hw_block_interrupt_vector.html

Specifically you should use mpsl_temperature_get() https://docs.nordicsemi.com/bundle/nrfxlib-apis-latest/page/group_mpsl_temp.html

Registers

Registers https://docs.nordicsemi.com/bundle/ps_nrf52840/page/temp.html

ESP32-S3 (T-Deck)

https://www.espressif.com/sites/default/files/documentation/esp32-s3_datasheet_en.pdf#page=59

4.2.2.2 Temperature Sensor
The temperature sensor generates a voltage that varies with temperature. The voltage is internally converted
via an ADC into a digital value.
The temperature sensor has a range of –40 °C to 125 °C. It is designed primarily to sense the temperature
changes inside the chip. The temperature value depends on factors such as microcontroller clock frequency
or I/O load. Generally, the chip’s internal temperature is higher than the ambient temperature

Usage

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions