From 4a8d4b584a665708347aa7c8386c1dc308322eb5 Mon Sep 17 00:00:00 2001 From: Armando Date: Wed, 20 Oct 2021 11:07:00 +0800 Subject: [PATCH] docs: add adc calibration docs on c3 and s3 --- docs/_static/diagrams/adc/adc-all-cali-c3.png | Bin 0 -> 26052 bytes docs/_static/diagrams/adc/adc-all-cali-s3.png | Bin 0 -> 33596 bytes docs/_static/diagrams/adc/adc-hw-cali-c3.png | Bin 0 -> 25470 bytes docs/_static/diagrams/adc/adc-hw-cali-s3.png | Bin 0 -> 31436 bytes .../{ => diagrams/adc}/adc-noise-graph.jpg | Bin .../diagrams/adc/adc-uncali-raw-c3.png | Bin 0 -> 26161 bytes .../diagrams/adc/adc-uncali-raw-s3.png | Bin 0 -> 31441 bytes .../{ => diagrams/adc}/adc-vref-graph.jpg | Bin docs/en/api-reference/peripherals/adc.rst | 272 ++++++++++++------ 9 files changed, 191 insertions(+), 81 deletions(-) create mode 100644 docs/_static/diagrams/adc/adc-all-cali-c3.png create mode 100644 docs/_static/diagrams/adc/adc-all-cali-s3.png create mode 100644 docs/_static/diagrams/adc/adc-hw-cali-c3.png create mode 100644 docs/_static/diagrams/adc/adc-hw-cali-s3.png rename docs/_static/{ => diagrams/adc}/adc-noise-graph.jpg (100%) create mode 100644 docs/_static/diagrams/adc/adc-uncali-raw-c3.png create mode 100644 docs/_static/diagrams/adc/adc-uncali-raw-s3.png rename docs/_static/{ => diagrams/adc}/adc-vref-graph.jpg (100%) diff --git a/docs/_static/diagrams/adc/adc-all-cali-c3.png b/docs/_static/diagrams/adc/adc-all-cali-c3.png new file mode 100644 index 0000000000000000000000000000000000000000..d15e3a1469bf415a57a061b53b7ddd08cafb43ce GIT binary patch literal 26052 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 L)z4*}Q$iB}SaP}& literal 0 HcmV?d00001 diff --git a/docs/_static/diagrams/adc/adc-all-cali-s3.png b/docs/_static/diagrams/adc/adc-all-cali-s3.png new file mode 100644 index 0000000000000000000000000000000000000000..477dcb91a3192910371b332c976101339bb1df77 GIT binary patch literal 33596 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%0A;TYiHXLi|*;3T?Ut3B9>)7^4U}|GcC&a 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 literal 0 HcmV?d00001 diff --git a/docs/_static/diagrams/adc/adc-hw-cali-c3.png b/docs/_static/diagrams/adc/adc-hw-cali-c3.png new file mode 100644 index 0000000000000000000000000000000000000000..a90a9ede66387fc0156722222322ee3e8d8d805e GIT binary patch literal 25470 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
!}Hvg??u4^`5 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�TT{?4c0{JZvjyKwmCMa3;owz6;M zWKz`XZTnnReSh)ys;ZE)8(SC{nBIc!2nc@{*vRdFHqv7EbGiSA?kwQ2f3GFrWZ}2; z(XW4&AABmbIBNedXnD+`DD(3FvIE}wsbA*U7MUf!+y2FQpUsCNt-j!uA&28CE2c3x z2<2^HWYGzI^GNlg`~7O&^{Ul3-w5;x+`ZCsW7VR?xl;tP?BgobOmuZ~E*zb3`DMx7 z*uH(*McKvesab9%9kXuui_Cka)FQCRd;ZLrt>*jhId|+C~UBId7(&lAmp=Pa1 zmn;Q?BT+og|Ldk7nl37GtHLS6J20{I)0Yt0<^0@Vpng+ZOzjo_6Kx zwHt1Sl+HR{QC_hnYyb4ReZT&G{ohsbnSy!tHH z=hCl^MAv`RIG&isut4CBB?E)}mCJ$k3-{e!-0R`dGil$?1DlTaaW8$Fcv;A)u#lZY r09sjgTe~DWM4f?Q@JY literal 0 HcmV?d00001 diff --git a/docs/_static/diagrams/adc/adc-hw-cali-s3.png b/docs/_static/diagrams/adc/adc-hw-cali-s3.png new file mode 100644 index 0000000000000000000000000000000000000000..ca84d9a298158ba1046d1ef79c1c7b283ab13cfc GIT binary patch literal 31436 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 literal 0 HcmV?d00001 diff --git a/docs/_static/adc-noise-graph.jpg b/docs/_static/diagrams/adc/adc-noise-graph.jpg similarity index 100% rename from docs/_static/adc-noise-graph.jpg rename to docs/_static/diagrams/adc/adc-noise-graph.jpg diff --git a/docs/_static/diagrams/adc/adc-uncali-raw-c3.png b/docs/_static/diagrams/adc/adc-uncali-raw-c3.png new file mode 100644 index 0000000000000000000000000000000000000000..98cb3be26e4d1cba8b4fb2b7e0fc3f7c2604fa04 GIT binary patch literal 26161 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 literal 0 HcmV?d00001 diff --git a/docs/_static/diagrams/adc/adc-uncali-raw-s3.png b/docs/_static/diagrams/adc/adc-uncali-raw-s3.png new file mode 100644 index 0000000000000000000000000000000000000000..929d1dad8d241f9009dc19bdbb459ae5745fc8e4 GIT binary patch literal 31441 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

2_0&)+W;_AeH*-MQgs^VZ{&uGLO+aq)R5V)%Sx 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 literal 0 HcmV?d00001 diff --git a/docs/_static/adc-vref-graph.jpg b/docs/_static/diagrams/adc/adc-vref-graph.jpg similarity index 100% rename from docs/_static/adc-vref-graph.jpg rename to docs/_static/diagrams/adc/adc-vref-graph.jpg diff --git a/docs/en/api-reference/peripherals/adc.rst b/docs/en/api-reference/peripherals/adc.rst index d9865c47ec..575fa1eabf 100644 --- a/docs/en/api-reference/peripherals/adc.rst +++ b/docs/en/api-reference/peripherals/adc.rst @@ -5,13 +5,13 @@ Analog to Digital Converter (ADC) {IDF_TARGET_ADC2_CH7: default="GPIO 0", esp32="GPIO 27"} -Overview --------- +ADC Channels +------------ -{IDF_TARGET_ADC_DATA_WIDTH:default="12", esp32s2="13"} {IDF_TARGET_ADC_TOTAL_CHAN:default="20", esp32="18", esp32s2="20", esp32c3="6"} +{IDF_TARGET_ADC_UNIT_NUM:default="2"} -The {IDF_TARGET_NAME} integrates two {IDF_TARGET_ADC_DATA_WIDTH}-bit SAR (`Successive Approximation Register `_) ADCs, supporting a total of {IDF_TARGET_ADC_TOTAL_CHAN} measurement channels (analog enabled pins). +The {IDF_TARGET_NAME} integrates {IDF_TARGET_ADC_UNIT_NUM} SAR (`Successive Approximation Register `_) ADCs, supporting a total of {IDF_TARGET_ADC_TOTAL_CHAN} measurement channels (analog enabled pins). These channels are supported: @@ -22,7 +22,7 @@ These channels are supported: ADC2: - 10 channels: GPIO0, GPIO2, GPIO4, GPIO12 - GPIO15, GOIO25 - GPIO27 -.. only:: esp32s2 +.. only:: esp32s2 or esp32s3 ADC1: - 10 channels: GPIO1 - GPIO10 @@ -37,6 +37,74 @@ These channels are supported: - 1 channels: GPIO5 +.. _adc_attenuation: + +ADC Attenuation +--------------- +{IDF_TARGET_ADC_V_MIN_ATTEN0:default="0", esp32="100"} +{IDF_TARGET_ADC_V_MAX_ATTEN0:default="950", esp32s2="750", esp32c3="750", esp32s3="950"} + +{IDF_TARGET_ADC_V_MIN_ATTEN1:default="0", esp32="100"} +{IDF_TARGET_ADC_V_MAX_ATTEN1:default="1250", esp32s2="1050", esp32c3="1050", esp32s3="1250"} + +{IDF_TARGET_ADC_V_MIN_ATTEN2:default="0", esp32="150"} +{IDF_TARGET_ADC_V_MAX_ATTEN2:default="1750", esp32s2="1300", esp32c3="1300", esp32s3="1750"} + +{IDF_TARGET_ADC_V_MIN_ATTEN3:default="0", esp32="150"} +{IDF_TARGET_ADC_V_MAX_ATTEN3:default="2450", esp32s2="2500", esp32c3="2500", esp32s3="3100"} + + +Vref is the reference voltage used internally by {IDF_TARGET_NAME} ADCs for measuring the input voltage. The {IDF_TARGET_NAME} ADCs can measure analog voltages from 0 V to Vref. Among different chips, the Vref varies, the median is 1.1 V. In order to convert voltages larger than Vref, input voltages can be attenuated before being input to the ADCs. There are 4 available attenuation options, the higher the attenuation is, the higher the measurable input voltage could be. + +===================== ========================================================================================================= +Attenuation Measurable input voltage range +===================== ========================================================================================================= +``ADC_ATTEN_DB_0`` {IDF_TARGET_ADC_V_MIN_ATTEN0} mV ~ {IDF_TARGET_ADC_V_MAX_ATTEN0} mV +``ADC_ATTEN_DB_2_5`` {IDF_TARGET_ADC_V_MIN_ATTEN1} mV ~ {IDF_TARGET_ADC_V_MAX_ATTEN1} mV +``ADC_ATTEN_DB_6`` {IDF_TARGET_ADC_V_MIN_ATTEN2} mV ~ {IDF_TARGET_ADC_V_MAX_ATTEN2} mV +``ADC_ATTEN_DB_11`` {IDF_TARGET_ADC_V_MIN_ATTEN3} mV ~ {IDF_TARGET_ADC_V_MAX_ATTEN3} mV +===================== ========================================================================================================= + + +.. _adc_conversion: + +ADC Conversion +-------------- + +{IDF_TARGET_ADC_SINGLE_MAX_WIDTH:default="12", esp32s2="13} +{IDF_TARGET_ADC_SINGLE_RAW_MAX:default="4095", esp32s2="8191"} +{IDF_TARGET_ADC_CONTINUOUS_MAX_WIDTH:default="12", esp32s3="13} +{IDF_TARGET_ADC_CONTINUOUS_RAW_MAX:default="4095", esp32s3="8191"} + + +An ADC conversion is to convert the input analog voltage to a digital value. The ADC conversion results provided by the ADC driver APIs are raw data. Resolution of {IDF_TARGET_NAME} ADC raw results under Single Read mode is {IDF_TARGET_ADC_SINGLE_MAX_WIDTH}-bit. + +- :cpp:func:`adc1_get_raw` +- :cpp:func:`adc2_get_raw` + +.. only:: esp32c3 + + - :cpp:func:`adc_digi_read_bytes` + +To calculate the voltage based on the ADC raw results, this formula can be used: + +.. parsed-literal:: + + Vout = Dout * Vmax / Dmax (1) + +where: + +====== ============================================================= +Vout Digital output result, standing for the voltage. +Dout ADC raw digital reading result. +Vmax Maximum measurable input analog voltage, see :ref:`adc_attenuation`. +Dmax Maximum of the output ADC raw digital reading result, which is {IDF_TARGET_ADC_SINGLE_RAW_MAX} under Single Read mode, {IDF_TARGET_ADC_CONTINUOUS_RAW_MAX} under Continuous Read mode. +====== ============================================================= + +For boards with eFuse ADC calibration bits, :cpp:func:`esp_adc_cal_raw_to_voltage` can be used to get the calibrated conversion results. These results stand for the actual voltage (in mV). No need to transform these data via the formula (1). +If ADC calibration APIs are used on boards without eFuse ADC calibration bits, warnings will be generated. See :ref:`adc_calibration`. + + .. _adc_limitations: ADC Limitations @@ -64,7 +132,13 @@ ADC Limitations Driver Usage ------------ -Each ADC unit supports two work modes, ADC single read mode and ADC continuous (DMA) mode. ADC single read mode is suitable for low-frequency sampling operations. ADC continuous (DMA) read mode is suitable for high-frequency continuous sampling actions. +.. only:: esp32c3 + + Each ADC unit supports two work modes, ADC single read mode and ADC continuous (DMA) mode. ADC single read mode is suitable for low-frequency sampling operations. ADC continuous (DMA) read mode is suitable for high-frequency continuous sampling actions. + +.. only:: not esp32c3 + + Both of the ADC units support single read mode, which is suitable for low-frequency sampling operations. .. note:: @@ -75,14 +149,19 @@ Each ADC unit supports two work modes, ADC single read mode and ADC continuous ( ADC Continuous (DMA) Read mode ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Please use the ADC continuous read mode driver as the following steps: + To use the ADC continuous read mode driver, execute the following steps: - - Initialize the ADC driver by calling the function :cpp:func:`adc_digi_initialize`. - - Initialize the ADC controller by calling the function :cpp:func:`adc_digi_controller_config`. - - Start the ADC continuous reading by calling the function :cpp:func:`adc_digi_start`. - - After starting the ADC, you can get the ADC reading result by calling the function :cpp:func:`adc_digi_read_bytes`. Before stopping the ADC (by calling :cpp:func:`adc_digi_stop`), the driver will keep converting the analog data to digital data. - - Stop the ADC reading by calling the function :cpp:func:`adc_digi_stop`. - - Deinitialize the ADC driver by calling the function :cpp:func:`adc_digi_deinitialize`. + 1. Initialize the ADC driver by calling the function :cpp:func:`adc_digi_initialize`. + 2. Initialize the ADC controller by calling the function :cpp:func:`adc_digi_controller_config`. + 3. Start the ADC continuous reading by calling the function :cpp:func:`adc_digi_start`. + 4. After starting the ADC, you can get the ADC reading result by calling the function :cpp:func:`adc_digi_read_bytes`. Before stopping the ADC (by calling :cpp:func:`adc_digi_stop`), the driver will keep converting the analog data to digital data. + 5. Stop the ADC reading by calling the function :cpp:func:`adc_digi_stop`. + 6. Deinitialize the ADC driver by calling the function :cpp:func:`adc_digi_deinitialize`. + + + .. only:: esp32c3 + + The code example for using ADC continuous (DMA) read mode can be found in the :example:`peripherals/adc/esp32c3/adc` directory of ESP-IDF examples. .. note:: See :ref:`adc_limitations` for the limitation of using ADC continuous (DMA) read mode. @@ -98,6 +177,8 @@ Attenuation configuration is done per channel, see :cpp:type:`adc1_channel_t` an Then it is possible to read ADC conversion result with :cpp:func:`adc1_get_raw` and :cpp:func:`adc2_get_raw`. Reading width of ADC2 should be set as a parameter of :cpp:func:`adc2_get_raw` instead of in the configuration functions. +Single Read mode ADC example can be found in :example:`peripherals/adc/single_read` directory of ESP-IDF examples. + .. only:: esp32 It is also possible to read the internal hall effect sensor via ADC1 by calling dedicated function :cpp:func:`hall_sensor_read`. Note that even the hall sensor is internal to ESP32, reading from it uses channels 0 and 3 of ADC1 (GPIO 36 and 39). Do not connect anything else to these pins and do not change their configuration. Otherwise it may affect the measurement of low value signal from the sensor. @@ -108,87 +189,36 @@ Then it is possible to read ADC conversion result with :cpp:func:`adc1_get_raw` .. only:: esp32 or esp32s2 - There is another specific function :cpp:func:`adc_vref_to_gpio` used to route internal reference voltage to a GPIO pin. It comes handy to calibrate ADC reading and this is discussed in section :ref:`adc-api-adc-calibration`. + There is another specific function :cpp:func:`adc_vref_to_gpio` used to route internal reference voltage to a GPIO pin. It comes handy to calibrate ADC reading and this is discussed in section :ref:`adc_calibration`. + .. note:: See :ref:`adc_limitations` for the limitation of using ADC single read mode. -Application Example -------------------- +Minimizing Noise +---------------- -.. only:: esp32 or esp32s2 +The {IDF_TARGET_NAME} 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. - Reading voltage on ADC1 channel 0 ({IDF_TARGET_ADC1_CH0}):: +.. only:: esp32 - #include - - ... - - adc1_config_width(ADC_WIDTH_BIT_12); - adc1_config_channel_atten(ADC1_CHANNEL_0,ADC_ATTEN_DB_0); - int val = adc1_get_raw(ADC1_CHANNEL_0); - - The input voltage in the above example is from 0 to 1.1 V (0 dB attenuation). The input range can be extended by setting a higher attenuation, see :cpp:type:`adc_atten_t`. - An example of using the ADC driver including calibration (discussed below) is available at esp-idf: :example:`peripherals/adc/single_read/adc` - - Reading voltage on ADC2 channel 7 ({IDF_TARGET_ADC2_CH7}):: - - #include - - ... - - int read_raw; - adc2_config_channel_atten( ADC2_CHANNEL_7, ADC_ATTEN_0db ); - - esp_err_t r = adc2_get_raw( ADC2_CHANNEL_7, ADC_WIDTH_12Bit, &read_raw); - if ( r == ESP_OK ) { - printf("%d\n", read_raw ); - } else if ( r == ESP_ERR_TIMEOUT ) { - printf("ADC2 used by Wi-Fi.\n"); - } - - The reading may fail due to collision with Wi-Fi, if the return value of this API is ``ESP_ERR_INVALID_STATE``, then the reading result is not valid. - An example using the ADC2 driver to read the output of DAC is available in esp-idf: :example:`peripherals/adc/single_read/adc2` - - .. only:: esp32 - - Reading the internal hall effect sensor:: - - #include - - ... - - adc1_config_width(ADC_WIDTH_BIT_12); - int val = hall_sensor_read(); - - - .. only:: esp32 - - The value read in both these examples is 12 bits wide (range 0-4095). - - .. only:: esp32s2 - - The value read in both these examples is 13 bits wide (range 0-8191). - - .. _adc-api-adc-calibration: - - Minimizing Noise - ---------------- - - The {IDF_TARGET_NAME} ADC can be sensitive to noise leading to large discrepancies in ADC readings. To minimize noise, users may connect a 0.1 µF capacitor to the ADC input pad in use. Multisampling may also be used to further mitigate the effects of noise. - - .. figure:: ../../../_static/adc-noise-graph.jpg + .. figure:: ../../../_static/diagrams/adc/adc-noise-graph.jpg :align: center :alt: ADC noise mitigation Graph illustrating noise mitigation using capacitor and multisampling of 64 samples. - ADC Calibration - --------------- + +.. _adc_calibration: + +ADC Calibration +--------------- + +.. only:: esp32 or esp32s2 The :component_file:`esp_adc_cal/include/esp_adc_cal.h` API provides functions to correct for differences in measured voltages caused 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 {IDF_TARGET_NAME}s. - .. figure:: ../../../_static/adc-vref-graph.jpg + .. figure:: ../../../_static/diagrams/adc/adc-vref-graph.jpg :align: center :alt: ADC reference voltage comparison @@ -258,9 +288,89 @@ Application Example Replace ``/dev/ttyUSB0`` with {IDF_TARGET_NAME} board's port name. -.. only:: esp32c3 - The code example for using ADC single read mode and ADC continuous (DMA) read mode can be found in the :example:`peripherals/adc/esp32c3` directory of ESP-IDF examples. + +.. only:: esp32c3 or esp32s3 + + {IDF_TARGET_NAME} ADC Calibration contains 2 steps: Hardware Calibration and Software Calibration. + + + Hardware Calibration + ^^^^^^^^^^^^^^^^^^^^ + + Based on series of comparisons with the reference voltage, {IDF_TARGET_NAME} ADC determines each bit of the output digital result. Per design the {IDF_TARGET_NAME} ADC reference voltage is 1100 mV, however the true reference voltage can range from 1000 mV to 1200 mV among different chips. To minimize this difference, hardware calibration is introduced. + + Hardware calibration contains 2 steps: + + 1. Set an auto-calibration parameter of bandgap voltage reference. In this way, the difference mentioned above can be minimized. + 2. Correct the offset of the ADC Vin-Dout characteristics. ADC characteristics is generally a function: f(x) = A * x + B, where B is the offset. + + .. only:: esp32c3 + + An uncalibrated ADC characteristics is as follows: + + .. figure:: ../../../_static/diagrams/adc/adc-uncali-raw-c3.png + :align: center + :alt: ADC uncalibrated conversion result + + .. only:: esp32s3 + + An uncalibrated ADC characteristics is as follows: + + .. figure:: ../../../_static/diagrams/adc/adc-uncali-raw-s3.png + :align: center + :alt: ADC uncalibrated conversion result + + + The offset in the uncalibrated characteristics is significant. Step 2 is to correct the offset to 0. + + .. only:: esp32c3 + + After hardware calibration, the ADC characteristics would be like: + + .. figure:: ../../../_static/diagrams/adc/adc-hw-cali-c3.png + :align: center + :alt: ADC conversion results after hardware calibration + + .. only:: esp32s3 + + After hardware calibration, the ADC characteristics would be like: + + .. figure:: ../../../_static/diagrams/adc/adc-hw-cali-s3.png + :align: center + :alt: ADC conversion results after hardware calibration + + Hardware calibration is done internally by the ADC driver. The consequent results are raw data. A transformation is needed to get the final result, see :ref:`adc_conversion`. + + + Software Calibration + ^^^^^^^^^^^^^^^^^^^^ + + To convert ADC raw data to calibrated digital data, following steps should be followed: + + 1. Check the eFuse to know if the software calibration is supported via :cpp:func:`esp_adc_cal_check_efuse`. + 2. Calculate the ADC calibration characteristics via :cpp:func:`esp_adc_cal_characterize`. The ADC software calibration characteristics are per ADC module and per attenuation. For example, characteristics of ADC1 channel 0 under 11 dB attenuation are the same as characteristics of ADC1 channel 2 under 11 dB attenuation. But characteristics of ADC1 channel 0 under 11 dB attenuation are different with characteristics of ADC2 channel 0 under 11 dB attenuation. Also characteristics of ADC1 channel 0 under 11 dB attenuation are different with characteristics of ADC1 channel 0 under 6 dB attenuation. + 3. Get the actual voltage value via :cpp:func:`esp_adc_cal_raw_to_voltage`. + + .. only:: esp32c3 + + After software calibration, the ADC characteristics would be like: + + .. figure:: ../../../_static/diagrams/adc/adc-all-cali-c3.png + :align: center + :alt: ADC conversion results after hardware calibration + + .. only:: esp32s3 + + After software calibration, the ADC characteristics would be like: + + .. figure:: ../../../_static/diagrams/adc/adc-all-cali-s3.png + :align: center + :alt: ADC conversion results after hardware calibration + + + The results provided by the ADC calibration APIs indicate the actual voltage values. ADC software calibration example can be found in :example:`peripherals/adc/single_read` directory of ESP-IDF examples. + .. only:: esp32 or esp32s2