D/A Wandler ESP32S3 gibt unterschiedliche Werte

OP #8065263
Lesenswert?

Hallo zusammen, für mein privates Projekt verwende ich einen ESP32 (S3) Mikrocontroller mit Arduino und ich möchte mit Hilfe eines Spannungsteilers und eines D/A Wandlers einen dynamischen Widerstand berechen...

Die Spannung lese ich bei Arduino mit Hilfe der Funktion analogReadMilliVolts zyklisch ein und lasse sie mir per Bluetooth ausprinten....

Der ESP32 verträgt allgemein nur eine Inputspannung von 3,3V

Wenn ich jetzt den entsprechen Pin "offen" ohne definierten Pegel in der Luft hängen lasse bekomme ich einen konstant einen Wert von 3152-> 3,15 Volt...lege ich den Pin auf den 3,3V ausgang vom ESP32S3 Board lese ich den selben Wert ein... Soweit so gut (oder schlecht) ich lese also bei soll 3,3V eine Spanung von 3,15V ein....

Wenn ich jetzt die exakt identische Software auf einen 2ten ESP32 S3 flashe lese ich bei dem eine Spannung von 3173-> 3,17 Volt aus.... ebenso egal ob frei hängend oder auf 3,3Volt gelegt..

Meine Fragen:

  1. hat Jemand anders schon sowas beobachtet?

  2. hat jemand eine Idee wie ich diesen dynamischen OFfset justieren kann

OP #8065513
Lesenswert?

Ich möchte an mehreren pins
über einen spannungsteiler temperatursensoren auslesen..

Ich kann verstehen dass mehr infos gut fürs Verständnis sind, aber sollten doch für das eigentliche problem egal sein. Oder?

Ich betreibe den esp32s3 mit 5v. Ich lese einen analog input auf 3.3V Und lese bei einem esp32s3 3.15V konstant und beim anderen konstant 3.17V...

Das heisst also dass ich bei jedem esp32s3 eine unterschiedliche Abweichung habe.

Was dahinter hängt ist doch erstmal egal .

#8065514
Lesenswert?

AD-Wandler können ziemlich tricky sein. Früher, als es nur Mikroprozessoren und dedizierte AD-Wandler ICs gab, oder man gar einen AD-Wandler als "IC-Grab" aus Operationsvertsärkern und digital ICs aufbaute, wurde auf derartige Feinheiten und Unzulänglichkeiten mehr eingegangen. Der Analogeingang kann recht hochohmig sein, allerdings beim Sampeln impulsweise Strom ziehen. Da nutzt es dir herzlich wenig, wenn er gemittelt 1µA zieht, für eine ms aber das Tausendfache. Ein (hochwertiger) Integrationskondensator ist im Zweifelsfall immer eine gute Idee. Der "beruhigt" ebenfalls den Eingang. natürlich kann man 3 Cent sparen und per Software aus 50 Werten das statistische Mittel bilden. Sind vielleicht 5 Zeilen im Code, aber man sollte abschätzen können, woher ein Problem stammt und wie man dem (möglichst schon präventiv) begegnen kann.

OP #8065515
Lesenswert?

Rainer W. schrieb:

Leute - Tobias fragt nach einem D/A Wandler.

Tobias L. schrieb:

... ich möchte mit Hilfe eines Spannungsteilers und eines D/A Wandlers

Tobias, vielleicht zeigst du einmal einem Schaltplan, von dem, was du da vor hast.

Sorry meine letzte Antwort war auf den post bezogen..

Der schaltplan drum rum sollte doch eigentlich egal sein...

P.s. ich arbeite sowohl mit dem esp32 als auch mit dem esp32s3

Angehängte Dateien:
#8065576
Lesenswert?

Ich empfehle, zwischen

  • dem ESP32S3 Chip
  • einem ESP32S3 Modul und
  • einem Board mit ESP32S3 Chip
  • einem Board mit ESP32S3 Modul
  • und welchem Board konkret zu unterscheiden.

Der ESP32S3 Chip kann nicht mir 5V versorgt werden. Seine normale Versorgungsspannung beträgt 3,3V. Board enthalten üblicherweise einen LDO Spannungsregler.

Der ADC hat 12 Bit und misst 0 bis 1,1 Volt. Der Wert 4095 entspricht dann 1,1 Volt.

Warum denkst du, dass der Wert 3152 der Spannung 3,15 Volt entspricht?

Auf Boards sind eventuell Spannungsteiler vorgeschaltet, um den Messbereich zu erweitern. Das muss jedoch nicht zwingend 3,3V sein. Kommt aufs konkrete Board an. Ich habe mal einen Schaltplan aus dem Netz angehängt, dort ist KEIN Spannungsteiler eingezeichnet. Wenn dein Board ebenfalls keinen Spannungsteiler hat, dann bedeutet der Messwert 3152 nicht 3,15V sondern 0,89V.

https://documentation.espressif.com/esp32-s3_datasheet_en.html#electrical_characteristics

https://documentation.espressif.com/esp32-s3_technical_reference_manual_en.pdf Kapitel 39.3.5

Angehängte Dateien:
: Bearbeitet durch User
#8065592
Lesenswert?

Nemopuk schrieb:

Wenn dein Board ebenfalls keinen Spannungsteiler hat, dann bedeutet der Messwert 3152 nicht 3,15V sondern 0,89V.

Bei einer Funktion, die

Tobias L. schrieb:

Funktion analogReadMilliVolts

heißt, wäre es allerdings naheliegend, dass die einen Wert skaliert in Millivolt zurück gibt - wie auch immer diese Funktion den Wert der Referenzspannung von dem Exemplar erfährt bzw. erfahren soll.

Was sagt die Doku der Funktion zu dem Thema?

: Bearbeitet durch User
(Firma: SD) #8065596
Lesenswert?

Tobias L. schrieb:

Ich möchte an mehreren pins ...

Das heisst also dass ich bei jedem esp32s3 eine unterschiedliche Abweichung habe.

...

Das ist so. Habe mit ChatgPT ein Projekt entwickelt, bei dem Ströme über ADCs (vorherige Unwandlung in Spannungen) gemessen werden. Das Programm habe ich kalibriert.

Nach Flashen eines weiteren ESP32 Boards stimmten die kalibrierten Werte überhaupt nicht mehr.

Für ChatGPT war das logisch ... hat irgendeine Espressif Doku ausgegraben, in der auf den Umstand hingewiesen wird, dass ADCs bei jedem ESP32 hardwarespezifisch kalibriert werden müssen.

#8065649
Lesenswert?

Tobias L. schrieb:

Der schaltplan drum rum sollte doch eigentlich egal sein...

Dir ist klar, dass der G266 kein Analogsignal am Ausgang liefert, sondern ein binäres, dass immer zwischen H und L hin- und her springt? Der Ölstand/-temperatur ist im Tastverhältnis kodiert.

Soviel zum Thema "Schaltplan ist egal" ...

: Bearbeitet durch User
#8065783
Lesenswert?

Ich weiss nicht, ob es bei ESP32 auch so krass ist: der ADC des ESP8266 durfte Laut einer älteren Version des Datenblattes unter Berücksichtigung aller Schwächen bis zu 20% vom richtigen Wert abweichen. Gemessen habe ich 10%. Im Internet gibt es irgendo ein ausführliches Messprotokoll, wo jemand auf etwa 15% kam, soweit ich mich erinnere.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren