esp-idf/docs/en/api-reference/peripherals/temp_sensor.rst
2023-03-14 13:04:34 +08:00

71 lines
2.3 KiB
ReStructuredText

Temperature Sensor
===================
Overview
--------
The {IDF_TARGET_NAME} has a built-in temperature sensor used to measure the chip's internal temperature, and hard to measure the environmental temperature accurately. Being built-in means that the temperature sensor should work on any {IDF_TARGET_NAME} regardless of what board the chip is embedded in. The temperature sensor module contains an 8-bit Sigma-Delta ADC and a temperature offset DAC.
The conversion relationship is the first columns of the table below. Among them, Offset = 0 is the default measurement option, and other values are extended measurement options.
.. list-table::
:header-rows: 1
:widths: 25 50 50
* - Offset
- Measurement Range (°C)
- Measurement Error (°C)
* - -2
- 50 ~ 125
- < 3
* - -1
- 20 ~ 100
- < 2
* - 0
- -10 ~ 80
- < 1
* - 1
- -30 ~ 50
- < 2
* - 2
- -40 ~ 20
- < 3
Driver Usage
------------
1. Initialize the temperature sensor by calling the function :cpp:func:`temp_sensor_set_config` and pass to it a :cpp:type:`temp_sensor_config_t` structure. The :cpp:type:`temp_sensor_config_t` structure should contain all the required parameters. See the example below.
.. code-block:: c
temp_sensor_config_t temp_sensor = {
.dac_offset = TSENS_DAC_L2,
.clk_div = 6,
};
temp_sensor_set_config(temp_sensor);
1. Start the temperature sensor by calling :cpp:func:`temp_sensor_start`, and then the sensor will start to measure the temperature.
2. To get the current temperature, you can take the example below as a reference, and the temperatures you get are in Celsius.
.. code-block:: c
float tsens_out;
temp_sensor_read_celsius(&tsens_out);
1. To stop the temperature sensor, please call :cpp:func:`temp_sensor_stop`.
.. note::
To realize dynamic reconfiguration, you need to stop the sensor first with :cpp:func:`temp_sensor_stop`, then set the new configuration with :cpp:func:`temp_sensor_set_config`, and then re-start the sensor with :cpp:func:`temp_sensor_start`.
Application Example
-------------------
For examples of the temperature sensor, please refer to :example:`peripherals/temp_sensor`.
API Reference - Normal Temp Sensor
----------------------------------
.. include-build-file:: inc/temp_sensor.inc