mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 20:24:32 +02:00
Merge branch 'bugfix/add_adc_oneshot_disable_ulp_enum_v5.0' into 'release/v5.0'
esp_adc: add adc ulp mode disable enum , and kconfig to enable dac output (v5.0) See merge request espressif/esp-idf!19710
This commit is contained in:
@@ -41,7 +41,19 @@ menu "ADC and ADC Calibration"
|
|||||||
This option will allow the ADC calibration component to use Lookup Tables
|
This option will allow the ADC calibration component to use Lookup Tables
|
||||||
to correct for non-linear behavior in 11db attenuation. Other attenuations
|
to correct for non-linear behavior in 11db attenuation. Other attenuations
|
||||||
do not exhibit non-linear behavior hence will not be affected by this option.
|
do not exhibit non-linear behavior hence will not be affected by this option.
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
|
config ADC_DISABLE_DAC_OUTPUT
|
||||||
|
depends on SOC_DAC_SUPPORTED
|
||||||
|
bool "Disable DAC when ADC2 is in use"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
By default, this is set. The ADC oneshot driver will disable the output of the
|
||||||
|
corresponding DAC channels:
|
||||||
|
ESP32: IO25 and IO26
|
||||||
|
ESP32S2: IO17 and IO18
|
||||||
|
|
||||||
|
Disable this option so as to measure the output of DAC by internal ADC, for test usage.
|
||||||
|
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@@ -44,7 +44,7 @@ TEST_CASE("ADC oneshot high/low test", "[adc_oneshot]")
|
|||||||
adc_oneshot_unit_handle_t adc1_handle;
|
adc_oneshot_unit_handle_t adc1_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config1 = {
|
adc_oneshot_unit_init_cfg_t init_config1 = {
|
||||||
.unit_id = ADC_UNIT_1,
|
.unit_id = ADC_UNIT_1,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@ TEST_CASE("ADC oneshot high/low test", "[adc_oneshot]")
|
|||||||
adc_oneshot_unit_handle_t adc2_handle;
|
adc_oneshot_unit_handle_t adc2_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config2 = {
|
adc_oneshot_unit_init_cfg_t init_config2 = {
|
||||||
.unit_id = ADC_UNIT_2,
|
.unit_id = ADC_UNIT_2,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config2, &adc2_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config2, &adc2_handle));
|
||||||
#endif //#if (SOC_ADC_PERIPH_NUM >= 2)
|
#endif //#if (SOC_ADC_PERIPH_NUM >= 2)
|
||||||
@@ -135,7 +135,7 @@ static void s_adc_oneshot_with_sleep(adc_unit_t unit_id, adc_channel_t channel)
|
|||||||
adc_oneshot_unit_handle_t adc_handle;
|
adc_oneshot_unit_handle_t adc_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config = {
|
adc_oneshot_unit_init_cfg_t init_config = {
|
||||||
.unit_id = unit_id,
|
.unit_id = unit_id,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config, &adc_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config, &adc_handle));
|
||||||
|
|
||||||
|
@@ -72,7 +72,7 @@ TEST_CASE("ADC oneshot fast work with ISR", "[adc_oneshot]")
|
|||||||
//-------------ADC1 Init---------------//
|
//-------------ADC1 Init---------------//
|
||||||
adc_oneshot_unit_init_cfg_t init_config1 = {
|
adc_oneshot_unit_init_cfg_t init_config1 = {
|
||||||
.unit_id = ADC_UNIT_1,
|
.unit_id = ADC_UNIT_1,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &isr_test_ctx.adc_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &isr_test_ctx.adc_handle));
|
||||||
|
|
||||||
|
@@ -78,7 +78,7 @@ TEST_CASE("ADC oneshot fast work with ISR and Flash", "[adc_oneshot]")
|
|||||||
//-------------ADC1 Init---------------//
|
//-------------ADC1 Init---------------//
|
||||||
adc_oneshot_unit_init_cfg_t init_config1 = {
|
adc_oneshot_unit_init_cfg_t init_config1 = {
|
||||||
.unit_id = ADC_UNIT_1,
|
.unit_id = ADC_UNIT_1,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &oneshot_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &oneshot_handle));
|
||||||
|
|
||||||
|
@@ -134,7 +134,7 @@ TEST_CASE("ADC1 oneshot raw average / std_deviation", "[adc_oneshot][ignore][man
|
|||||||
adc_oneshot_unit_handle_t adc1_handle;
|
adc_oneshot_unit_handle_t adc1_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config1 = {
|
adc_oneshot_unit_init_cfg_t init_config1 = {
|
||||||
.unit_id = ADC_UNIT_1,
|
.unit_id = ADC_UNIT_1,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
|
||||||
|
|
||||||
@@ -254,7 +254,7 @@ static void s_adc_cali_speed(adc_unit_t unit_id, adc_channel_t channel)
|
|||||||
adc_oneshot_unit_handle_t adc_handle;
|
adc_oneshot_unit_handle_t adc_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config = {
|
adc_oneshot_unit_init_cfg_t init_config = {
|
||||||
.unit_id = unit_id,
|
.unit_id = unit_id,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
TEST_ESP_OK(adc_oneshot_new_unit(&init_config, &adc_handle));
|
TEST_ESP_OK(adc_oneshot_new_unit(&init_config, &adc_handle));
|
||||||
|
|
||||||
|
@@ -25,7 +25,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if SOC_DAC_SUPPORTED
|
#if CONFIG_ADC_DISABLE_DAC_OUTPUT
|
||||||
// To disable DAC, workarounds, see this function body to know more
|
// To disable DAC, workarounds, see this function body to know more
|
||||||
static void s_disable_dac(adc_oneshot_hal_ctx_t *hal, adc_channel_t channel);
|
static void s_disable_dac(adc_oneshot_hal_ctx_t *hal, adc_channel_t channel);
|
||||||
#endif
|
#endif
|
||||||
@@ -52,7 +52,7 @@ void adc_oneshot_hal_setup(adc_oneshot_hal_ctx_t *hal, adc_channel_t chan)
|
|||||||
adc_ll_amp_disable(); //Currently the LNA is not open, close it by default.
|
adc_ll_amp_disable(); //Currently the LNA is not open, close it by default.
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SOC_DAC_SUPPORTED
|
#if CONFIG_ADC_DISABLE_DAC_OUTPUT
|
||||||
s_disable_dac(hal, chan);
|
s_disable_dac(hal, chan);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ bool adc_oneshot_hal_convert(adc_oneshot_hal_ctx_t *hal, int *out_raw)
|
|||||||
/*---------------------------------------------------------------
|
/*---------------------------------------------------------------
|
||||||
Workarounds
|
Workarounds
|
||||||
---------------------------------------------------------------*/
|
---------------------------------------------------------------*/
|
||||||
#if SOC_DAC_SUPPORTED
|
#if CONFIG_ADC_DISABLE_DAC_OUTPUT
|
||||||
static void s_disable_dac(adc_oneshot_hal_ctx_t *hal, adc_channel_t channel)
|
static void s_disable_dac(adc_oneshot_hal_ctx_t *hal, adc_channel_t channel)
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
@@ -55,6 +55,7 @@ typedef enum {
|
|||||||
} adc_bitwidth_t;
|
} adc_bitwidth_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
ADC_ULP_MODE_DISABLE = 0, ///< ADC ULP mode is disabled
|
||||||
ADC_ULP_MODE_FSM = 1, ///< ADC is controlled by ULP FSM
|
ADC_ULP_MODE_FSM = 1, ///< ADC is controlled by ULP FSM
|
||||||
ADC_ULP_MODE_RISCV = 2, ///< ADC is controlled by ULP RISCV
|
ADC_ULP_MODE_RISCV = 2, ///< ADC is controlled by ULP RISCV
|
||||||
} adc_ulp_mode_t;
|
} adc_ulp_mode_t;
|
||||||
|
@@ -62,7 +62,7 @@ Create an ADC Unit Handle under Normal Oneshot Mode
|
|||||||
adc_oneshot_unit_handle_t adc1_handle;
|
adc_oneshot_unit_handle_t adc1_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config1 = {
|
adc_oneshot_unit_init_cfg_t init_config1 = {
|
||||||
.unit_id = ADC_UNIT_1,
|
.unit_id = ADC_UNIT_1,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
|
ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config1, &adc1_handle));
|
||||||
|
|
||||||
|
@@ -70,7 +70,7 @@ void app_main(void)
|
|||||||
adc_oneshot_unit_handle_t adc2_handle;
|
adc_oneshot_unit_handle_t adc2_handle;
|
||||||
adc_oneshot_unit_init_cfg_t init_config2 = {
|
adc_oneshot_unit_init_cfg_t init_config2 = {
|
||||||
.unit_id = ADC_UNIT_2,
|
.unit_id = ADC_UNIT_2,
|
||||||
.ulp_mode = false,
|
.ulp_mode = ADC_ULP_MODE_DISABLE,
|
||||||
};
|
};
|
||||||
ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config2, &adc2_handle));
|
ESP_ERROR_CHECK(adc_oneshot_new_unit(&init_config2, &adc2_handle));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user