Externer ADC am ESP32

In einem früheren Post hatte ich das ADDA-Subsystem des ESP32 untersucht und konnte nur wenig überzeugende Resultate präsentieren.

Ich habe die Messungen an einem neuen ESP32_Core_board v2 wiederholt. Die Resultate waren vergleichbar zur letzten Untersuchung.

ESP32 DAC-ADC-Characteristics

Im ESP32 Forum habe ich einen Hinweise zum Thema gefunden (https://www.esp32.com/viewtopic.php?f=2&t=4784&hilit=adc+accuracy) und eine Polynomapproximation der Kennlinie auf Github.

Diese Funktion habe ich in meinen Test eingebaut und die folgenden Ergebnisse erzielt:

ESP32 DAC-ADC-Characteristics

Schon in der Gesamtcharakteristik ist eine verbleibende Nichtlinearität zu erkennen, die im Detailbild noch deutlicher wird. Die Trendlinie zeigt eine Korrekturmöglichkeit am Gain. Es bleiben aber die nichtlineare Abweichungen , die allenfalls durch ein angepasstes Polynom reduziert werden könnten.

ESP32 DAC-ADS1015-Characteristics – Abweichung der ADC Spannung

Eine Alternative ist ein externer ADC. Ich verwende einen 12-bit ADC ADS1015, den es als Breakout Board von Adafruit u.a. gibt.

Adafruit ADS1915

Das Testprogramm ESP32_DAAD_ext_Test.ino ist auf Github abgelegt.

Die Resultate sehen folgendermassen aus:

ESP32 DAC-ADS1015-Characteristics

Erwartungsgemäss bekommen wir eine lineare Kennlinie, die aber bei näherem Hinsehen mit einem Offset und einem Gain behaftet ist, wie die folgende Darstellung besser zeigt.

ESP32 DAC-ADS1015-Characteristics – Abweichung der ADC Spannung

Diese Eigenschaften lassen sich kalkulatorisch ausgleichen und wir erhalten schliesslich Abweichungen im Bereich weniger mV.

Abweichung der ADC Spannung nach Offset- und Gain-Korrektur

Ein Gedanke zu „Externer ADC am ESP32

  1. Pingback: Arduino Portenta H7 – ckArduino

Hinterlasse einen Kommentar