ADC Converter on an Espressif ESP32-S3-WROOM-1
Posted: Tue Apr 01, 2025 12:51 pm
We are using the ADC Converter on an Espressif ESP32-S3-WROOM-1 with the IDF-Library V5.4. Here we see an offset in the acquired values, as in the table below.
Measured / ESP-ADC voltage
1,046V / 1,000V
0,8466V / 0,800V
1,202V / 1,150V
2,060V / 2,000V
We followed the calibration guidelines in the ESP-IDF documentation: https://docs.espressif.com/projects/esp ... ation.html
For calibration, we use the example_adc_calibration_init() function from the following reference implementation, applying the Curve Fitting scheme: https://github.com/espressif/esp-idf/bl ... ead_main.c
The one shot conversion is configured as follows:
adc_oneshot_unit_init_cfg_t init_config1 = {
.unit_id = ADC_UNIT_1,
.ulp_mode = ADC_ULP_MODE_DISABLE,
};
adc_oneshot_chan_cfg_t config = {
.bitwidth = ADC_BITWIDTH_DEFAULT,
.atten = ADC_ATTEN_DB_12, // 12 dB attenuation
};
The final voltage value the then acquired using adc_oneshot_get_calibrated_result().
Could you please advise if there are any additional steps required to improve the ADC accuracy? Also, can the observed offset be explained?
Measured / ESP-ADC voltage
1,046V / 1,000V
0,8466V / 0,800V
1,202V / 1,150V
2,060V / 2,000V
We followed the calibration guidelines in the ESP-IDF documentation: https://docs.espressif.com/projects/esp ... ation.html
For calibration, we use the example_adc_calibration_init() function from the following reference implementation, applying the Curve Fitting scheme: https://github.com/espressif/esp-idf/bl ... ead_main.c
The one shot conversion is configured as follows:
adc_oneshot_unit_init_cfg_t init_config1 = {
.unit_id = ADC_UNIT_1,
.ulp_mode = ADC_ULP_MODE_DISABLE,
};
adc_oneshot_chan_cfg_t config = {
.bitwidth = ADC_BITWIDTH_DEFAULT,
.atten = ADC_ATTEN_DB_12, // 12 dB attenuation
};
The final voltage value the then acquired using adc_oneshot_get_calibrated_result().
Could you please advise if there are any additional steps required to improve the ADC accuracy? Also, can the observed offset be explained?