Skip to main content

Analog to Digital Converter ,ESP32

 

Analog to Digital Converter

Overview

The ESP32 integrates two 12-bit SAR (Successive Approximation Register) ADCs, supporting a total of 18 measurement channels (analog enabled pins).

The ADC driver API supports ADC1 (8 channels, attached to GPIOs 32 - 39), and ADC2 (10 channels, attached to GPIOs 0, 2, 4, 12 - 15 and 25 - 27). However, the usage of ADC2 has some restrictions for the application:

  1. ADC2 is used by the Wi-Fi driver. Therefore the application can only use ADC2 when the Wi-Fi driver has not started.

  2. Some of the ADC2 pins are used as strapping pins (GPIO 0, 2, 15) thus cannot be used freely. Such is the case in the following official Development Kits:

  • ESP32 DevKitC: GPIO 0 cannot be used due to external auto program circuits.

  • ESP-WROVER-KIT: GPIO 0, 2, 4 and 15 cannot be used due to external connections for different purposes.

Configuration and Reading ADC

Each ADC unit supports two work modes, ADC-RTC or ADC-DMA mode. ADC-RTC is controlled by the RTC controller and is suitable for low-frequency sampling operations. ADC-DMA is controlled by a digital controller and is suitable for high-frequency continuous sampling actions.

ADC-RTC mode

The ADC should be configured before reading is taken.

Attenuation configuration is done per channel, see adc1_channel_t and adc2_channel_t, set as a parameter of above functions.

Then it is possible to read ADC conversion result with adc1_get_raw() and adc2_get_raw(). Reading width of ADC2 should be set as a parameter of adc2_get_raw() instead of in the configuration functions.

Comments

Popular posts from this blog

cpp and header file example

https://docs.microsoft.com/en-us/cpp/cpp/header-files-cpp

Pulse Counter,ESP32,PCNT

  Pulse Counter The PCNT (Pulse Counter) module is designed to count the number of rising and/or falling edges of an input signal. Each pulse counter unit has a 16-bit signed counter register and two channels that can be configured to either increment or decrement the counter. Each channel has a signal input that accepts signal edges to be detected, as well as a control input that can be used to enable or disable the signal input. The inputs have optional filters that can be used to discard unwanted glitches in the signal.

Advanced 1-Wire Master with Memory #DS2485

DS28E18 Setup Guide for Remote I 2 C and SPI Sensors Featuring the DS2485 It is well established that the I 2 C and SPI communication protocols are designed to be used in short-distance, intra-board communication. This application note discusses the I 2 C and SPI bus extending capabilities of the DS28E18 1-Wire ® to I 2 C/SPI Bridge with Command Sequencer. Specifically, it covers important measures for setting up a long line, e.g., 100m communication with multiple I 2 C and SPI sensors and the benefits of using this device. Introduction The I 2 C and SPI communication protocols are well known to have short bus distances that range no more than a couple meters. Although solutions currently exist for extending these ranges, they are often complex and expensive. The DS28E18 , however, is a cost-efficient bridge-chip device that demonstrates the benefits of using the 1-Wire interface to get the most range out of complex I 2 C and SPI devices such as environmental sensors,...