Chapter 2. API Reference
Minimizing Noise
The ESP32-S2 ADC can be sensitive to noise leading to large discrepancies in ADC readings. Depending on the
usage scenario, users may connect a bypass capacitor (e.g. a 100 nF ceramic capacitor) to the ADC input pad in use,
to minimize noise. Besides, multisampling may also be used to further mitigate the effects of noise.
ADC Calibration
The
esp_adc_cal/include/esp_adc_cal.h
by variation of ADC reference voltages (Vref) between chips. Per design the ADC reference voltage is 1100 mV,
however the true reference voltage can range from 1000 mV to 1200 mV amongst different ESP32-S2s.
Fig. 4: Graph illustrating effect of differing reference voltages on the ADC voltage curve.
Correcting ADC readings using this API involves characterizing one of the ADCs at a given attenuation to obtain
a characteristics curve (ADC-Voltage curve) that takes into account the difference in ADC reference voltage. The
characteristics curve is in the form of y = coeff_a * x + coeff_b and is used to convert ADC readings to
voltages in mV. Calculation of the characteristics curve is based on calibration values which can be stored in eFuse
or provided by the user.
Calibration Values
Calibration values are used to generate characteristic curves that account for the variation
of ADC reference voltage of a particular ESP32-S2 chip. There are currently 1 source(s) of calibration values on
ESP32-S2. The availability of these calibration values will depend on the type and production date of the ESP32-S2
chip/module.
• eFuse Two Point values calibrates the ADC output at two different voltages. This value is measured and
burned into eFuse BLOCK0 during factory calibration on newly manufactured ESP32-S2 chips and modules.
If you would like to purchase chips or modules with calibration, double check with distributor or Espressif
(sales@espressif.com) directly.
You can verify if eFuse Two Point is present by running the
$IDF_PATH/components/esptool_py/esptool/espefuse.py --port /dev/ttyUSB0 adc_info
Replace /dev/ttyUSB0 with ESP32-S2 board's port name.
Espressif Systems
API provides functions to correct for differences in measured voltages caused
espefuse.py
216
Submit Document Feedback
tool with adc_info parameter
Release v4.4
Need help?
Do you have a question about the ESP32-S2 and is the answer not in the manual?