forked from espressif/esp-idf
Merge branch 'fix/tsens_issues' into 'master'
fix(tsens): 300us delay in phy cause extra power consumption, fix length of soc_caps See merge request espressif/esp-idf!28360
This commit is contained in:
@@ -177,6 +177,10 @@ esp_err_t temperature_sensor_enable(temperature_sensor_handle_t tsens)
|
|||||||
|
|
||||||
temperature_sensor_ll_clk_sel(tsens->clk_src);
|
temperature_sensor_ll_clk_sel(tsens->clk_src);
|
||||||
temperature_sensor_power_acquire();
|
temperature_sensor_power_acquire();
|
||||||
|
// After enabling/reseting the temperature sensor,
|
||||||
|
// the output value gradually approaches the true temperature
|
||||||
|
// value as the measurement time increases. 300us is recommended.
|
||||||
|
esp_rom_delay_us(300);
|
||||||
tsens->fsm = TEMP_SENSOR_FSM_ENABLE;
|
tsens->fsm = TEMP_SENSOR_FSM_ENABLE;
|
||||||
return ESP_OK;
|
return ESP_OK;
|
||||||
}
|
}
|
||||||
|
@@ -45,7 +45,7 @@ void temperature_sensor_power_acquire(void)
|
|||||||
s_temperature_sensor_power_cnt++;
|
s_temperature_sensor_power_cnt++;
|
||||||
if (s_temperature_sensor_power_cnt == 1) {
|
if (s_temperature_sensor_power_cnt == 1) {
|
||||||
regi2c_saradc_enable();
|
regi2c_saradc_enable();
|
||||||
#if !SOC_TEMPERATURE_SENSOR_IS_INDEPENDENT_FROM_ADC
|
#if !SOC_TSENS_IS_INDEPENDENT_FROM_ADC
|
||||||
adc_apb_periph_claim();
|
adc_apb_periph_claim();
|
||||||
#endif
|
#endif
|
||||||
TSENS_RCC_ATOMIC() {
|
TSENS_RCC_ATOMIC() {
|
||||||
@@ -55,10 +55,6 @@ void temperature_sensor_power_acquire(void)
|
|||||||
temperature_sensor_ll_enable(true);
|
temperature_sensor_ll_enable(true);
|
||||||
}
|
}
|
||||||
portEXIT_CRITICAL(&rtc_spinlock);
|
portEXIT_CRITICAL(&rtc_spinlock);
|
||||||
// After enabling/reseting the temperature sensor,
|
|
||||||
// the output value gradually approaches the true temperature
|
|
||||||
// value as the measurement time increases. 300us is recommended.
|
|
||||||
esp_rom_delay_us(300);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void temperature_sensor_power_release(void)
|
void temperature_sensor_power_release(void)
|
||||||
@@ -75,7 +71,7 @@ void temperature_sensor_power_release(void)
|
|||||||
TSENS_RCC_ATOMIC() {
|
TSENS_RCC_ATOMIC() {
|
||||||
temperature_sensor_ll_bus_clk_enable(false);
|
temperature_sensor_ll_bus_clk_enable(false);
|
||||||
}
|
}
|
||||||
#if !SOC_TEMPERATURE_SENSOR_IS_INDEPENDENT_FROM_ADC
|
#if !SOC_TSENS_IS_INDEPENDENT_FROM_ADC
|
||||||
adc_apb_periph_free();
|
adc_apb_periph_free();
|
||||||
#endif
|
#endif
|
||||||
regi2c_saradc_disable();
|
regi2c_saradc_disable();
|
||||||
|
@@ -1339,7 +1339,7 @@ config SOC_TEMPERATURE_SENSOR_INTR_SUPPORT
|
|||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
config SOC_TEMPERATURE_SENSOR_IS_INDEPENDENT_FROM_ADC
|
config SOC_TSENS_IS_INDEPENDENT_FROM_ADC
|
||||||
bool
|
bool
|
||||||
default y
|
default y
|
||||||
|
|
||||||
|
@@ -577,7 +577,7 @@
|
|||||||
/*-------------------------- Temperature Sensor CAPS -------------------------------------*/
|
/*-------------------------- Temperature Sensor CAPS -------------------------------------*/
|
||||||
#define SOC_TEMPERATURE_SENSOR_LP_PLL_SUPPORT (1)
|
#define SOC_TEMPERATURE_SENSOR_LP_PLL_SUPPORT (1)
|
||||||
#define SOC_TEMPERATURE_SENSOR_INTR_SUPPORT (1)
|
#define SOC_TEMPERATURE_SENSOR_INTR_SUPPORT (1)
|
||||||
#define SOC_TEMPERATURE_SENSOR_IS_INDEPENDENT_FROM_ADC (1) /*!< Temperature sensor is a separate module, not share regs with ADC */
|
#define SOC_TSENS_IS_INDEPENDENT_FROM_ADC (1) /*!< Temperature sensor is a separate module, not share regs with ADC */
|
||||||
|
|
||||||
/*-------------------------- Memory CAPS --------------------------*/
|
/*-------------------------- Memory CAPS --------------------------*/
|
||||||
#define SOC_MEM_TCM_SUPPORTED (1)
|
#define SOC_MEM_TCM_SUPPORTED (1)
|
||||||
|
Reference in New Issue
Block a user