mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 09:09:10 -04:00
Merge branch 'feat/add_temperature_calib_v5.1' into 'release/v5.1'
feat(temperature_sensor): Add temperature sensor calibration support(backport v5.1) See merge request espressif/esp-idf!37317
This commit is contained in:
commit
92638cbbfe
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -107,7 +107,18 @@ esp_err_t esp_efuse_rtc_calib_get_cal_voltage(int version, uint32_t adc_unit, in
|
|||||||
|
|
||||||
esp_err_t esp_efuse_rtc_calib_get_tsens_val(float* tsens_cal)
|
esp_err_t esp_efuse_rtc_calib_get_tsens_val(float* tsens_cal)
|
||||||
{
|
{
|
||||||
// Currently calibration is not supported on ESP32-C2, IDF-5236
|
const esp_efuse_desc_t** cal_temp_efuse;
|
||||||
|
cal_temp_efuse = ESP_EFUSE_TEMP_CALIB;
|
||||||
|
int cal_temp_size = esp_efuse_get_field_size(cal_temp_efuse);
|
||||||
|
assert(cal_temp_size == 9);
|
||||||
|
|
||||||
|
uint32_t cal_temp = 0;
|
||||||
|
esp_err_t err = esp_efuse_read_field_blob(cal_temp_efuse, &cal_temp, cal_temp_size);
|
||||||
|
if (err != ESP_OK) {
|
||||||
*tsens_cal = 0.0;
|
*tsens_cal = 0.0;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
// BIT(8) stands for sign: 1: negative, 0: positive
|
||||||
|
*tsens_cal = ((cal_temp & BIT(8)) != 0)? -(uint8_t)cal_temp: (uint8_t)cal_temp;
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -132,7 +132,18 @@ esp_err_t esp_efuse_rtc_calib_get_cal_voltage(int version, uint32_t adc_unit, in
|
|||||||
|
|
||||||
esp_err_t esp_efuse_rtc_calib_get_tsens_val(float* tsens_cal)
|
esp_err_t esp_efuse_rtc_calib_get_tsens_val(float* tsens_cal)
|
||||||
{
|
{
|
||||||
// Currently calibration is not supported on ESP32-C6, IDF-5236
|
const esp_efuse_desc_t** cal_temp_efuse;
|
||||||
*tsens_cal = 0;
|
cal_temp_efuse = ESP_EFUSE_TEMP_CALIB;
|
||||||
|
int cal_temp_size = esp_efuse_get_field_size(cal_temp_efuse);
|
||||||
|
assert(cal_temp_size == 9);
|
||||||
|
|
||||||
|
uint32_t cal_temp = 0;
|
||||||
|
esp_err_t err = esp_efuse_read_field_blob(cal_temp_efuse, &cal_temp, cal_temp_size);
|
||||||
|
if (err != ESP_OK) {
|
||||||
|
*tsens_cal = 0.0;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
// BIT(8) stands for sign: 1: negative, 0: positive
|
||||||
|
*tsens_cal = ((cal_temp & BIT(8)) != 0)? -(uint8_t)cal_temp: (uint8_t)cal_temp;
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -124,7 +124,18 @@ esp_err_t esp_efuse_rtc_calib_get_cal_voltage(int version, uint32_t adc_unit, in
|
|||||||
|
|
||||||
esp_err_t esp_efuse_rtc_calib_get_tsens_val(float* tsens_cal)
|
esp_err_t esp_efuse_rtc_calib_get_tsens_val(float* tsens_cal)
|
||||||
{
|
{
|
||||||
// Currently calibration is not supported on ESP32-H2, IDF-5236
|
const esp_efuse_desc_t** cal_temp_efuse;
|
||||||
*tsens_cal = 0;
|
cal_temp_efuse = ESP_EFUSE_TEMP_CALIB;
|
||||||
|
int cal_temp_size = esp_efuse_get_field_size(cal_temp_efuse);
|
||||||
|
assert(cal_temp_size == 9);
|
||||||
|
|
||||||
|
uint32_t cal_temp = 0;
|
||||||
|
esp_err_t err = esp_efuse_read_field_blob(cal_temp_efuse, &cal_temp, cal_temp_size);
|
||||||
|
if (err != ESP_OK) {
|
||||||
|
*tsens_cal = 0.0;
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
// BIT(8) stands for sign: 1: negative, 0: positive
|
||||||
|
*tsens_cal = ((cal_temp & BIT(8)) != 0)? -(uint8_t)cal_temp: (uint8_t)cal_temp;
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user