fix(tsens): fix temp_sensor affect by adc reset

This commit is contained in:
gaoxu
2025-09-19 11:56:44 +08:00
committed by Gao Xu
parent 9619d2b05a
commit e5c6b87c10
25 changed files with 577 additions and 6 deletions

View File

@@ -9,6 +9,8 @@
#include "hal/adc_ll.h"
#include "hal/adc_types.h"
#include "esp_private/regi2c_ctrl.h"
#include "hal/temperature_sensor_ll.h"
#include "esp_private/sar_periph_ctrl.h"
#define I2C_SAR_ADC_INIT_CODE_VAL 2150
#define ADC_RNG_CLKM_DIV_NUM 0
@@ -17,7 +19,17 @@
void bootloader_random_enable(void)
{
#ifndef BOOTLOADER_BUILD
sar_periph_ctrl_adc_reset();
#else
tsens_ll_reg_values_t saved_tsens_regs = {};
tsens_ll_backup_registers(&saved_tsens_regs);
adc_ll_reset_register();
// Restore temperature sensor related register values after ADC reset
temperature_sensor_ll_reset_module();
tsens_ll_restore_registers(&saved_tsens_regs);
#endif
adc_ll_enable_bus_clock(true);
adc_ll_enable_func_clock(true);
adc_ll_digi_clk_sel(ADC_DIGI_CLK_SRC_XTAL);