Forum: Mikrocontroller und Digitale Elektronik STM32 ADC Verhalten bei hohem Quellwiderstand


von stbastler (Gast)


Lesenswert?

Hallo, ich nutze den ADC des STM32 um ein Signal mit einigen kHz 
auszuwerten. Dabei habe ich ein merkwürdiges Verhalten im Testaufbau 
festgestellt.

Versuchsaufbau: Signalgenerator, gibt Sinus aus mit ca. 30kHz. Amplitude 
ca. 1V mit 1.6V Offset. Der Signalgeneratorausgang ist über 10 kOhm 
direkt mit dem ADC verbunden.

Firmware: Die Firmware führt alle paar Sekunden einen Burst von einigen 
hundert Acquisitions durch. (Abtasttheorem weit übererfüllt, mehr als 
1MS/s) Steuerung per Timer + DMA. Die Daten werden danach integriert 
bzw. die Fläche unter der Kurve wird berechnet. => Ein einzelner 
Messwert ist das Ergebnis.


Das funktioniert soweit sehr gut. Allerdings sehe ich im Messwert über 
die Zeit eine Art Sägezahn mit ca. 1% Amplitude. D.h. der Wert der 
Integrals wächst von Messung zu Messung an, um dann plötzlich wieder 
abzufallen. Der ADC sieht also mehr Amplitude. Das passiert im Zeitraum 
von einigen dutzend Sekunden, ist also ein langsamer Effekt. Unabhängig 
von der Messung selbst (tritt also nicht alle N Messungen auf, sondern 
alle M Sekunden).

Nehme ich den 10 kOhm Widerstand raus, so tritt dieser Effekt nicht auf. 
Auch bei einem anderen Signalgenerator sehe ich das gleiche Verhalten. 
Dieser Effekt kommt also definitiv vom zu großen Quellwiderstand. Laut 
Datenblatt sind auch nur ein paar Ohm erlaubt bei meiner 
Messgeschwindigkeit. Dahingehend ist der STM32 auch funktional in 
Ordnung.

Halte ich den Lötkolben an den Chip, dann wird der Sägezahn schneller.

Obwohl nun alles wie geplant funktioniert, interessiert mich trotzdem: 
Was ist da los? Ist da intern ein Kompensationsmechanismus drin, der 
irgendwelche Kapazitäten(?) im ADC umschaltet? Würde gerne verstehen, 
was da intern vor sich geht, falls da jemand mehr Erfahrung auf diesem 
Gebiet hat.

von Benjamin S. (recycler)


Lesenswert?

Hast du die Referenzspannung vom ADC und die Spannung von STM32 sauber 
geglättet mit einem Kondensator?

von Strubi (Gast)


Lesenswert?

Moin,

da musst du schon etwas mehr Fleisch am Knochen liefern:
- Welcher STM32? (SAR oder Sigma Delta ADC?)
- Siehst du den Sägezahn auf den gemessenen Rohwerten oder nach deiner 
Integration?
- Kannst du die Frequenz des Sägezahns garantieren? (also kein Artefakt 
durch Unterabtastung eines hochfreq. Störsignals)

Beim simplen Aufaddieren über ein Rechteckfenster kannst du dir 
Artefakte einhandeln, aber danach sieht's a priori nicht aus, wenn's bei 
Niederhohmigkeit verschwindet. Prinzipiell werden bei SAR natürlich 
interne Kondensatoren umgeladen, wenn du da hochohmig reingehst, kannst 
du alles Mögliche sehen (kippende Adresszähler machen auch schön 
korreliertes "Rauschen"), oder irgend ein Quarz streut dir was rein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?


von stbastler (Gast)


Lesenswert?

Benjamin S. schrieb:
> Hast du die Referenzspannung vom ADC und die Spannung von STM32 sauber
> geglättet mit einem Kondensator?

Ja, die Referenzsspannung bzw. die analoge Versorgung ist stark 
geglättet. Low-Noise LDO + einige Kerkos direkt am IC. Durchgehende 
Ground-Plane drunter. Sollte also deutlich stabiler als 1% sein.

Strubi schrieb:
> - Welcher STM32? (SAR oder Sigma Delta ADC?)
STM32F303, also SAR ADC

> - Siehst du den Sägezahn auf den gemessenen Rohwerten oder nach deiner
> Integration?
Ich sehe ihn nach der Integration. Softwareprobleme kann ich 
ausschließen, die müssten auch bestehen wenn ich die Quellimpedanz 
ändere.

> - Kannst du die Frequenz des Sägezahns garantieren? (also kein Artefakt
> durch Unterabtastung eines hochfreq. Störsignals)
Nein. Das ist ziemlich schlecht vorherzusehen, hängt primär wohl von der 
Umgebungstemperatur ab.

> Beim simplen Aufaddieren über ein Rechteckfenster kannst du dir
> Artefakte einhandeln, aber danach sieht's a priori nicht aus, wenn's bei
> Niederhohmigkeit verschwindet.
Ja, zusätzlich: N Perioden des Signals passen exakt in die Fensterlänge. 
Dadurch dürfte es zu keinen Artefakten kommen.

> Prinzipiell werden bei SAR natürlich
> interne Kondensatoren umgeladen, wenn du da hochohmig reingehst, kannst
> du alles Mögliche sehen (kippende Adresszähler machen auch schön
> korreliertes "Rauschen"), oder irgend ein Quarz streut dir was rein.
Hmm... Wäre denkbar, ich suche die "Schuld" aber eher beim ADC, da es ja 
auch temperaturabhängig ist. Aber genau dort kenne ich mich kaum aus: 
Macht so ein ADC intern self-calibration der Eingangsstufe oder so 
etwas? (ohne dass es durch einen Befehl ausgelöst wird?)

von A. S. (Gast)


Lesenswert?

Über die Ströme und Spannungen, die der ADC am Eingang verursacht, 
kannst Du gerne spekulieren, ist aber sinnlos.

Willst Du sie wissen, messe mit Oszi.

Willst Du sie verstehen, besorge Dir den Aufbau.

Willst Du nur Signale messen, Sorge für entsprechende niederinnige 
Aufbereitung.

von Strubi (Gast)


Lesenswert?

stbastler schrieb:
>> - Kannst du die Frequenz des Sägezahns garantieren? (also kein Artefakt
>> durch Unterabtastung eines hochfreq. Störsignals)
> Nein. Das ist ziemlich schlecht vorherzusehen, hängt primär wohl von der
> Umgebungstemperatur ab.

Dann taste doch mal mit einer anderen Frequenz ab. Drei gut gewählte 
Frequenzen reichen...

> Ja, zusätzlich: N Perioden des Signals passen exakt in die Fensterlänge.
> Dadurch dürfte es zu keinen Artefakten kommen.

Exakt gibt's eigentlich nicht, irgendwann driftet was weg.

> Hmm... Wäre denkbar, ich suche die "Schuld" aber eher beim ADC, da es ja
> auch temperaturabhängig ist. Aber genau dort kenne ich mich kaum aus:
> Macht so ein ADC intern self-calibration der Eingangsstufe oder so
> etwas? (ohne dass es durch einen Befehl ausgelöst wird?)

Nee, das machst du typischerweise nur einmal. Kenne die Tricks bei STM 
jedoch nicht im Detail.
Wenn du wirklich die Detektivarbeit zu inneren Strukturen aufbringen 
willst, bist du ganz schön beschäftigt...

Achim S. schrieb:
> Über die Ströme und Spannungen, die der ADC am Eingang verursacht,
> kannst Du gerne spekulieren, ist aber sinnlos.
>

Sinnlos keineswegs, das ist oft tägliche Arbeit und die Übung schadet 
definitiv nicht.

> Willst Du sie wissen, messe mit Oszi.

Womit man auch wieder die Impedanz verändert und der Log-Buffer begrenzt 
ist, geschweige denn die Möglichkeit zur genauen Analyse der Artefakte 
auf Bit-Level existiert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.