ESP32-S2 – Analisando o novo e melhor ADC

esp32 s2 adc

Esse artigo será um complemento ao artigo anterior (https://www.embarcados.com.br/esp32-adc-interno/), onde foi feita a análise do ADC no ESP32. Iremos analisar o ADC do novo ESP32-S2, que teve melhorias em relação aos modelos anteriores.

Características do ADC

  • 2 SAR ADC: O ADC2 há restrições de uso pois é acessado pelo o WiFi.
    • Nas versões antigas do ESP32, o ADC2 era impossibilitado de uso enquanto WiFi ativo, entretanto, no ESP32-S2 há o “Árbitro”, que permite o uso e ainda selecionar prioridade de acesso pelo hardware.
  • Canais: 20.
  • Atenuações internas: 0, 2.5, 6 e 11dB.
    • Faixa recomendada para 0dB:    0 – 750mV.
    • Faixa recomendada para 2.5dB: 0 – 1050mV.
    • Faixa recomendada para 6dB:    0 – 1300mV.
    • Faixa recomendada para 11dB:  0 – 2500mV.
  • Controladores digitais (2x): 12-bit de resolução para altas velocidades (DMA).
    • Filtro IIR configurável dedicado no próprio hardware.
    • Monitoramento de nível (Threshold) para geração de interrupções.
  • Controladores RTC (2x): 13-bit de resolução para low-power.
  • A API de calibração no ESP32-S2 suporta apenas o modo “Two-Point”, que está presente na maioria dos módulos que saem de fábrica.

Testando o ADC na prática

Os testes serão feitos seguindo a mesma metodologia do artigo anterior, gerando as curvas de leitura e curvas de erro em relação ao valor real esperado. A tensão gerada é feita pelo próprio DAC (8-bit) presente no microcontrolador. As leituras de cada tensão são uma média simples de 100 valores, intervaladas de 30us entre cada leitura, sendo que cada tensão gerada é intervalada de 10ms. Todos os testes serão feitos no ADC1 (GPIO 1).

Será feito 2 medições por gráfico, uma em que é utilizado a fórmula convencional para conversão (ADC RAW): [ (Vref / Resolução) * ADC ]. Na outra medição, é utilizado em conjunto da API de calibração disponibilizado pela própria Espressif IDF (ADC CAL).

Teste A

Neste teste (figuras 1 e 2), iremos testar o ADC com 0dB e WiFi OFF.

ADC
Figura 1 – Curvas de leitura ESP32-S2 (WiFi OFF, 0dB).

ADC
Figura 2 – Curvas de erro ESP32-S2 (WiFi OFF, 0dB).

Teste B

Neste teste (figuras 3 e 4), iremos testar o ADC com 0dB e WiFi ON.

ADC
Figura 3 – Curvas de leitura ESP32-S2 (WiFi ON, 0dB).

ADC
Figura 4 – Curvas de erro ESP32-S2 (WiFi ON, 0dB).

Teste C

Neste teste (figuras 5 e 6), iremos testar o ADC com 11dB e WiFi OFF. Não se esqueça que as dimensões do gráfico aumentaram, podendo gerar interpretações erradas.

ADC
Figura 5 – Curvas de leitura ESP32-S2 (WiFi OFF, 11dB).

image 18
Figura 6 – Curvas de erro ESP32-S2 (WiFi OFF, 11dB).

Teste D

Neste teste (figuras 7 e 8), iremos testar o ADC com 11dB e WiFi ON.

image 19
Figura 7 – Curvas de leitura ESP32-S2 (WiFi ON, 0dB).

image 20
Figura 8 – Curvas de leitura ESP32-S2 (WiFi ON, 11dB).

Comparando os resultados desse artigo (ESP32-S2) com o anterior (ESP32 normal), é perceptível a melhora no ADC, principalmente quando utilizado com atenuação interna. No artigo anterior, as atenuações de 11dB causavam alta não-linearidade nas leituras, principalmente com WiFi ON. Agora, com o ESP32-S2, percebemos que a leitura continuou satisfatoriamente linear com atenuação interna se comparado ao outro hardware. Além disso, também poderíamos utilizar o filtro IIR presente no hardware do ESP32-S2 para filtragem de ruídos.

É possível notar que as curvas geradas sem a API de calibração (ADC RAW) também foram satisfatoriamente lineares, porém, com uma inclinação fixa para cima. Isso indica que a tensão de referência “Vref” utilizada na fórmula para conversão foi MAIOR que o real. Alterando esse parâmetro da fórmula, podemos chegar num valor bem próximo ao real mesmo sem a API de calibração. Você pode entender isso mais facilmente ao analisar as figuras 11 e 12 do artigo anterior (citado no começo deste artigo).

Outro detalhe interessante é que não foi notado nenhum ruído significativo na alimentação do ESP32-S2 (Devkit Saola) quando WiFi ON. Em contrapartida, nos modelos antigos, é possível notar o ruído do WiFi ativo na alimentação, onde os picos de consumo fazem a alimentação cair 50-100mV.

A fim de conhecimento e comparação, foi refeito o mesmo teste ‘D’ acima de 11dB e WiFi ON mas no ESP32 (normal), o mesmo código com mesma metodologia de teste usada no S2. Os resultados foram similares aos testes do artigo anterior, indicando mais uma vez uma perceptível melhora no ADC do S2. Compare esse gráfico (figura 9) com o teste ‘D’ feito no S2.

image 21
Figura 9 – Curvas de erro ESP32 normal (WiFi ON, 11dB).

Se você deseja fazer os testes acima para gerar gráficos e analisá-los, o código abaixo será útil pois não irá precisar de equipamentos especiais, apenas o ESP32! Não se esqueça que cada hardware irá gerar resultados diferentes um do outro.

O código e toda planilha com dados e gráficos gerados estão no repositório no github. Se você deseja analisar mais a fundo outros detalhes do ADC, pode utilizar a planilha para gerar novos gráficos e também contribuir com novas medições e testes para toda comunidade!

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Nenhum resultado encontrado.

Séries

Menu