Hab gleich drei ES32 S2 Mini Module getestet. Auf channel1 = pin 17 wird brav von 0V - 3.3V ausgegeben, aber auf channel2 = 18 hängt die Ausgabespannung von 0 - 127 (vermutlich) bei so der Hälfte von 1,6V und steigt dann linear auf die 3.3 V an.
Mit einem alten LOLIN32 Lite funktionieren beide adc channel einwandfrei.
Ich muss mir jetzt einen kapazitiven Tiefpass und
ledcSetup(ledChannel, 10000, 8); ledcAttachPin(PIN_DACout, ledChannel); ledcWrite(ledChannel, iOut);
basteln um mit 10 kHz pwm meinen eigenen adc zu basteln :-(
Der Arduino Core scheint noch die veraltete dac.h von Espressif zu nutzen
https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/esp32-hal-dac.c#L31
und nicht die neue dac_oneshot.h https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/dac.html
Laut https://www.wemos.cc/en/latest/_static/files/sch_s2_mini_v1.0.0.pdf hängen keine externen Komponenten pin 18 = DAC_2. Mit Ohmmeter pendelt pin17 = dac1 um die 5 MOhm, pin 18 aber steigt recht langsam von 0 Ohm auf so 100 kOhm. Da scheint also kleiner Kondensator dran zu hängen.
Was natürlich die 10 kHz pwm von ledcWrite(ledChannel, iOut); nicht stört.
Ist das nun ein Bug vom ESP32 S2 der immerzu das letzte Bit vom DAC_2 auf 1 hält ?