12 Bit sind nicht 12 Bit
Alle Chips der Familie haben einen 12-Bit-Wandler. Das klingt nach 4096 unterscheidbaren Stufen. So genau ist er nicht.
Das Datenblatt nennt zwei Fehlergrössen, und beide sind in Stufen (LSB) angegeben:
| Chip | DNL | INL | Abtastrate |
|---|---|---|---|
| ESP32 | ±7 LSB | ±12 LSB | 200 ksps (RTC) / 2 Msps (DIG) |
| ESP32-S3 | ±4 LSB | ±8 LSB | 100 kSPS |
| ESP32-C6 | −8 … +12 LSB | ±10 LSB | 100 kSPS |
DNL (differenzielle Nichtlinearität) sagt, wie ungleichmässig die einzelnen Stufen breit sind. INL (integrale Nichtlinearität) sagt, wie weit die Kennlinie insgesamt von der Geraden abweicht.
Beim klassischen ESP32 heisst ±12 LSB INL: Der abgelesene Wert kann um bis zu zwölf Stufen daneben liegen. Von den 4096 Stufen bleiben damit real deutlich weniger nutzbare übrig.
Dazu kommt beim ESP32 eine Streuung von etwa ±6 % zwischen einzelnen Exemplaren. Zwei baugleiche Chips messen also unterschiedlich. ESP-IDF bringt für ADC1 Kalibrierverfahren mit, die den in der Fertigung eingebrannten Referenzwert benutzen — wer genau messen will, benutzt sie.
Alle Werte in der Tabelle sind übrigens unter Idealbedingungen gemessen: 100 nF am Eingang, Gleichspannung, 25 °C und abgeschaltetem Funk.
Der Messbereich reicht nicht bis 3.3 V
Der Wandler lässt sich in mehreren Dämpfungsstufen betreiben, damit er unterschiedlich grosse Spannungen erfassen kann. Die höchste Stufe wird gern als „0 bis 3.3 V" beschrieben. Das Datenblatt des klassischen ESP32 hält an dieser Stelle etwas anderes fest:
Bei der höchsten Dämpfungsstufe wird die Genauigkeit oberhalb eines Messwerts von etwa 3000 — das entspricht rund 2450 mV — schlechter als in der Tabelle angegeben.
Das obere Ende des Bereichs ist also nicht brauchbar. Wer bis knapp unter die Versorgungsspannung messen will, braucht einen Spannungsteiler davor und misst im gutmütigen Teil der Kennlinie.
Die genauen Dämpfungsstufen und ihre Bereiche stehen im Abschnitt „ADC Characteristics" des Datenblatts deines Chips — dort nachschlagen, sie unterscheiden sich zwischen den Chips.
Touch — und wer es überhaupt kann
Touch-Eingänge messen die Kapazität am Pin. Kommt ein Finger in die Nähe, ändert sie sich. Damit lassen sich Tasten ohne bewegliche Teile bauen, hinter Glas oder Kunststoff.
| Chip | Touch-Kanäle |
|---|---|
| ESP32 | 10 |
| ESP32-S2 | 14 |
| ESP32-S3 | 14 |
| ESP32-C3, C6, H2 | keine |
Die drei RISC-V-Chips haben überhaupt keinen Touch-Sensor. Wer Touch braucht, ist damit auf die Xtensa-Familie festgelegt — das ist eine der wenigen Stellen, an denen der Kern doch eine Rolle spielt.
Touch-Pins beim klassischen ESP32
| Signal | Pin | Signal | Pin | |
|---|---|---|---|---|
| T0 | GPIO4 | T5 | GPIO12 | |
| T1 | GPIO0 | T6 | GPIO14 | |
| T2 | GPIO2 | T7 | GPIO27 | |
| T3 | GPIO15 | T8 | GPIO33 | |
| T4 | GPIO13 | T9 | GPIO32 |
Auch hier wieder die Überschneidung, die sich durch den ganzen Kurs zieht: T1, T2, T3 und T5 liegen auf Strapping-Pins (GPIO0, 2, 15, 12). Eine Touch-Fläche an einem dieser Pins ist eine leitende Fläche an einem Pin, der beim Reset abgetastet wird.
Einschränkung aus dem Datenblatt
Das ESP32-Datenblatt hält zum Touch-Sensor ausdrücklich fest, dass er den Test auf leitungsgebundene Störfestigkeit (Conducted Susceptibility) nicht bestanden hat und deshalb nur eingeschränkt einsetzbar ist.
Für ein Bastelprojekt ist das ohne Belang. Für ein Gerät, das eine EMV-Prüfung bestehen soll, ist es eine Vorentscheidung.
Quellen
- ESP32 Series Datasheet v5.2, Tabelle 4-3 „ADC Characteristics" samt Anmerkung zur Genauigkeit oberhalb Messwert 3000 (rund 2450 mV); Abschnitt 4.5 zur Streuung von ±6 % und zur Kalibrierung von ADC1; Tabelle 4-5 „Capacitive-Sensing GPIOs Available on ESP32" samt Hinweis zum CS-Test
- ESP32-S3 Series Datasheet v2.2, Tabelle 5-5 „ADC Characteristics"
- ESP32-C6 Series Datasheet v1.5, Tabelle 5-5 „ADC Characteristics"
- Abschnitt „Features" der Datenblätter ESP32 v5.2, ESP32-S2 v1.9, ESP32-S3 v2.2, ESP32-C3 v2.4, ESP32-C6 v1.5, ESP32-H2 v1.3 — Zahl der Touch-Kanäle
Die Dämpfungsstufen mit ihren Spannungsbereichen sind hier bewusst nicht wiedergegeben: Sie liessen sich aus dem Datenblatt nicht spaltentreu übernehmen. Bitte im Abschnitt „ADC Characteristics" des Datenblatts deines Chips nachschlagen.
Stand geprüft am 3. August 2026.