Forum: Mikrocontroller und Digitale Elektronik STM32F103 ADC Kalibrierung Fallstrick


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Gebhard (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
Ich barbeite an einem grösserem Messprojekt,bei dem der STM32F103ZET 
verwendet wird. Die ADC Referenzspannung hab ich aus einer hochstabilen 
1,2V Bandgapreferenz, die mit einem OPV auf 2,4V verdoppelt wird, 
gewonnen. Aus Stabilitätsgründen war ich gezwungen einen 220uF Tantal 
auf den Ausgang des OPV zu schalten.
Wenn jetzt die interne Kalibrierung der ADC's gestartet wird, wird dabei 
offenbar diese externe Referenzspannung verwendet. Das heisst aber, dass 
sich diese erst einmal stabilisiert haben muss bevor man kalibriert. Uns 
das kann mit so einem dicken Kondensator am OPV doch etwas dauern. Daher 
ist es keine gute Idee, unmittelbar nach hochfahren und initialisieren 
der CPU zu kalibrieren. Mir fiel das Problem bei "Kaltstart" und 
Softwarereset auf,wo ich bei Softwarereset immer die zu erwarteten ADC 
Werte hatte, bei Kaltstart aber um 10 bis 20 Digits höhere Werte. Eine 
verzögerte Kalibrierung hat das Problem dann behoben. Im Ref-Manual hält 
man sich bei der genauen Funktion der Kalibrierung ja vornehm zurück.
Hoffe dass das jemanden nützlich sein kann.

Grüsse

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> Aus Stabilitätsgründen war ich gezwungen einen 220uF Tantal auf den
> Ausgang des OPV zu schalten.
Warum das?

> Daher ist es keine gute Idee, unmittelbar nach hochfahren und
> initialisieren der CPU zu kalibrieren.
Schreib doch besser: es ist keine gute gute Idee, eine (bis dahin) nicht 
stabile Referenz zum Kalibrieren zu nehmen.
Denn das eigentliche Problem der Anwendung kommt ja nicht vom STM32 
sondern von deinem speziellen Aufbau. Hättest du direkt die 1,2V 
Referenzquelle als Referenz genommen, dann wäre das "Problem" gar nicht 
aufgetreten.

> Im Ref-Manual hält man sich bei der genauen Funktion der Kalibrierung
> ja vornehm zurück.
Wer mit einem Finger auf andere zeigt, der zeigt mit drei Fingern auf 
sich selbst. Denn von deiner Referenzquelle kann das Handbuch ja gar 
nichts wissen. Das muss stillschweigend davon ausgehen, dass die 
Referenz stabil ist, wenn du darauf kalibrierst.

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> Aus Stabilitätsgründen war ich gezwungen einen 220uF Tantal
> auf den Ausgang des OPV zu schalten.

Das ist ganz schlechter Stil, und ich glaub nicht, dass du dazu 
gezwungen bist.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
> Aus Stabilitätsgründen war ich gezwungen einen 220uF
> Tantal auf den Ausgang des OPV zu schalten.

Damit hast du die eigentliche Ursache brutal bekämpft aber nicht 
behoben.

Immer, wenn ich mit meinem Auto in die Garage fahre, krache ich gegen 
die Fahrräder. Also habe ich jetzt einen automatischen Enterhaken 
gebaut, der mein Auto im letzten Moment zurück hält.

So in etwa wirkt deine "Lösung". Die richtige lösung wäre vermutlich: 
Langsamer fahren -> richtig gegenkoppeln/dämpfen.

> Das heisst aber, dass sich diese erst einmal stabilisiert haben
> muss bevor man kalibriert.

Was bei deiner Schaltung nun ziemlich lange dauert, denn der Ausgang des 
OP-Amps ist Wechselspannungsmäßig kurzgeschlossen. Er wird sich also 
wesentlich erwärmen, bis ein Gleichgewicht zwischen Kühlung und Heizung 
entsteht. Und das dauert halt.

> Daher ist es keine gute Idee, unmittelbar nach hochfahren und
> initialisieren der CPU zu kalibrieren.

Das ist generell keine gute Idee. Kalibrieren sollte man stets in der 
realen Betriebsumgebung. Dazu zählt in allererster Linie die Temperatur, 
aber auch Spannung, Luftdruck und elektromangetische Einflüsse.

Du bringst ein Klavier auch nicht in die Werkstatt um es stimmen zu 
lassen, sondern der Fachmann kommt zu Dir nach Hause.

von Gebhard (Gast)


Bewertung
-4 lesenswert
nicht lesenswert
Hmmm... wieder einige Klugscheisser hier.
Wie man einen Spannungsfolger mit HF belastbarem Ausgang ohne 
Kondensator am Ausgang stabil kriegt, soll man mir bitte mal zeigen. Bin 
da ganz Ohr.

Die Auskunft des Ref-manuals ist auch mehr als dürftig, da steht nur, 
dass die Abweichungen der Kondensatoren ausgeglichen werden. Wie das vor 
sich geht,ob bzw. welche Referenz verwendet wird steht nicht da.

>Schreib doch besser: es ist keine gute gute Idee, eine (bis dahin) nicht
>stabile Referenz zum Kalibrieren zu nehmen.
>Denn das eigentliche Problem der Anwendung kommt ja nicht vom STM32
>sondern von deinem speziellen Aufbau. Hättest du direkt die 1,2V
>Referenzquelle als Referenz genommen, dann wäre das "Problem" gar nicht
>aufgetreten.
Mein lieber Lothar,wenn du mal nachgelesen hättest,kämst du 
dahinter,dass die interne 1,2 V Referenz Schrott ist, außerdem passt mir 
der Pegel nicht.
Das eigentliche Problem war eher, dass ich die ST Bibliothek bzw. die 
Beispielsammlung verwendet habe und nichts dabei gefunden habe, nach 
Initialisierung des ADC diesen auch gleich zu kalibrieren, wie es halt 
dort gemacht wird.
Darum hab ich hier darauf hingewiesen.

Grüsse

von Mike (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Aus Stabilitätsgründen war ich gezwungen einen 220uF Tantal auf den Ausgang des 
OPV zu schalten.

>Wie man einen Spannungsfolger mit HF belastbarem Ausgang ohne Kondensator am 
Ausgang stabil kriegt, soll man mir bitte mal zeigen. Bin da ganz Ohr.

Ich hoffe, dass der 220µF Elko nicht direkt am Ausgang des OPV hängt. 
Ansonsten wirst Du mit der Stabilität große Probleme haben. Im 
Zweifelsfall mal nach den Stichwörtern "Kapazitive Last" und 
"Phasenreserve" suchen. Wieso man zur HF-Unterdrückung 220µF braucht ist 
ebenso rätselhaft.
Üblicherweise nimmt man dazu einen viel kleineren C und isoliert ihn vom 
Ausgang des OPV durch einen Widerstand.

http://www.analog.com/en/analog-dialogue/articles/techniques-to-avoid-instability-capacitive-loading.html

von Gebhard (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Ich hoffe, dass der 220µF Elko nicht direkt am Ausgang des OPV hängt.
doch, das tut er.
>Zweifelsfall mal nach den Stichwörtern "Kapazitive Last" und
>"Phasenreserve" suchen. Wieso man zur HF-Unterdrückung 220µF braucht ist
>ebenso rätselhaft.
kleinere Kondensatoren schwingen auf jeden Fall(z.B. 0,1uF)
Man muss den Kondensator soweit vergrößern, dass er den dominanten Pol 
bildet (zusammen mit dem Ausgangswiderstand des OPV).Kleiner 
Kondensatoren für die HF sind sowieso noch parallel dazu.
Ein Widerstand in Serie bewirkt einen Spannungsabfall, das ist ziemlich 
unerwünscht.

Grüsse

von m.n. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> Ein Widerstand in Serie bewirkt einen Spannungsabfall, das ist ziemlich
> unerwünscht.

Spule parallel zum Widerstand schalten oder anderen OPV verwenden.

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
220µF Kondensatoren haben eine beträchtliche parasitäre Induktivität.

Du hast da gerade einen ganzen Heuwagen über eine Mücke geschüttet, um 
die still zu kriegen. Mit etwas Pech schlüpft die Mücke bald durch das 
grobe Heu hindurch und schwingt munter weiter.

von Gebhard (Gast)


Bewertung
0 lesenswert
nicht lesenswert
@Stefan
wie gesagt, es sind auch noch kleine C's parallel geschaltet, der große 
ist nur gegen Schwingneigung.

von holger (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>wie gesagt, es sind auch noch kleine C's parallel geschaltet, der große
>ist nur gegen Schwingneigung.

Buhaha. 10Ohm in Reihe zu den kleinen Cs bringt viel mehr
als den OP mit dem 220uF Monster zu quälen.

von Gebhard (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
@Holger
10Ohm /1mA = 10mV Spannungsabfall = ca. 20 Digits => indiskutabel

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Hört auf, die "Klugscheisserei" will er eh nicht hören. Wird schon alles 
. seine Richtigkeit haben...
Vielleicht mal noch einen 2200my dazupacken, besonders geringer ESR 
selbstredend

von Gebhard (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>Wird schon alles
>. seine Richtigkeit haben...
ja hat es, diese Schaltung ist zigfach erprobt
Ich bin ja noch unbedarft, mach das ganze eh erst seit 40 Jahren...

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> mach das ganze eh erst seit 40 Jahren...

Was kein Beweis für die Richtigkeit ist.
Es gibt Fehler, die schleppt man sein ganzes Leben mit, weil es nicht 
auffällt, dass es ein Fehler ist.

von Referenzator (Gast)


Bewertung
1 lesenswert
nicht lesenswert
H.Joachim S. schrieb:
> Gebhard schrieb:
>> mach das ganze eh erst seit 40 Jahren...
>
> Was kein Beweis für die Richtigkeit ist.
> Es gibt Fehler, die schleppt man sein ganzes Leben mit, weil es nicht
> auffällt, dass es ein Fehler ist.

Fehler, die man immer wieder macht, nennt man Tradition. Es gibt sehr 
alte Traditionen :-)

Jedenfalls würde ich folgendes vorschlagen:
Eine Referenz zu verwenden, deren Spannung passt.

Eine Referenz verstärken hat Nachteile:
- Der OPV hat einen Offset, der Temperaturabhängig ist
- Die Widerständen haben ebenfalls eine Temperaturdrift.
Ich würde das schon deshalb nicht tun.

Nenne doch mal die nötigen Daten der Referenz (Genauigkeit, Spannung), 
möglicherweise fällt mir eine passende ein. Referenzen gibts viele auf 
dem Markt, da sollte doch was mit passender Spannung erhältlich sein.

Was das eigentliche Thema angeht:
Ich persönlich würde die Lib ebenso schreiben. Warum?
Versorgung und Referenzspannungsquelle laufen gleichzeitig an. Der Reset 
kommt erst ca. 100ms nachdem die Versorgung hoch ist (dafür gibts den 
guten alten DS1816). Erst dann kann ja die Kalibrierung beginnen.
Da kann man bei einer nomalen Schaltung durchaus davon ausgehen, dass 
die Referenz inzwischen stabil ist.

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Hey er hat doch gar keine Frage gestellt.

von Gebhard (Gast)


Bewertung
-3 lesenswert
nicht lesenswert
>Hey er hat doch gar keine Frage gestellt.
so ist es!
Aber es gibt immer Schwachköpfe die aus ihren Löchern kriechen, einen 
Text nicht sinnerfassend lesen können,irgendein Halb oder Viertelwissen 
haben und hier irgendeinen Schwachsinn posten. Kann man ja gleich auf 
Facebook gehen, vieleicht fällt da einem noch eine Verschwörungstheorie 
ein.

kopfschüttel

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Das stimmt.
Aber Jugendsünden müssen ja nicht unkommentiert weiterverbreitet werden.

von A. S. (achs)


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> Aber es gibt immer Schwachköpfe die aus ihren Löchern kriechen, einen
> Text nicht sinnerfassend lesen können,irgendein Halb oder Viertelwissen
> haben und hier irgendeinen Schwachsinn posten.

ich habe bisher aber weder einen Schaltplan oder eine Erklärung für Dein 
Vorgehen gesehen, also warum Verdoppler, warum großes C, warum HF.

von Gebhard (Gast)


Angehängte Dateien:

Bewertung
-2 lesenswert
nicht lesenswert
@Achim
Ja warum Verdoppler? Scheint jetzt deine Vorstellungskraft zu sehr zu 
strapazieren.
Man stelle sich vor, man möchte eine Wechselspannung messen. Hmmm... da 
wär so was schon ganz praktisch oder? Der ADC-Ref/2 fungiert als 
virtuelle Masse.Geht super! ehrlich!
Schaltplan schick ich auch noch, nicht den originalen ,präzisen, aber 
den für gewöhnliche Anforderungen. Kannst ja noch alles verbessern oder 
verschlimmbessern.

von H.Joachim S. (crazyhorse)


Bewertung
1 lesenswert
nicht lesenswert
Wo kommt denn plötzlich der Widerstand zwischen OP-Ausgang und 
Kondensator her? Der geht doch nach deinen Erfahrungen gar nicht?

von Gerd E. (robberknight)


Bewertung
0 lesenswert
nicht lesenswert
Ist ein OPA2376 für diese Aufgabe nicht ein wenig Perlen vor die Säue?

Der ADC des STM32F103 ist zwar mit 1 MSPS brauchbar schnell, aber er hat 
nur nominell 12 Bit und davon gehen normal dann noch 2-3 wieder im 
Rauschen unter.

Um da die Referenz zu puffern sollte es doch auch nen billigerer OP tun.

: Bearbeitet durch User
von Codix (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ein LM385 als Referenz ist ein Witz. Der hat max 1% und 150 ppm. Gibt 
das ein Schätzeisen? Bei Linear gibt's Besseres mit weniger 
Bauteileaufwand. Aus meiner Sicht ist die Schaltung unbrauchbar.

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Ist doch nach eigeneenm Bekunden nur ne ungefähre Beispielschaltung...
Der originale, präzise (für mehr als nur gewöhnliche Messungen) kommt ja 
noch.
Da steht dann auch die hochpräzise Referenzquelle, der tatsächlich 
verwendete OP und der genaue Typ des 220µF-Kondensators drin.
Also die Referenz ist schon mal exakt, zumindest aber "hochstabil". Und 
das Rauschen wird ja eh über den gesamten Frequenzbereich untergepflügt.

edit: selbst der olle ICl8069 ist schon mal fast ein Quantensprung 
gegenüber dem LM385.

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Ich finde, dieser fette Elko am OP-Amp Ausgang könnte ein neuer Running 
Gaga werden. So wie die Amper hoch skillen.

Lass ihn uns immer dann vorschlagen, wenn ein OP-Amp nicht tut was er 
soll und der fragende nichts ändern will.

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Er hat ja nichts gefragt, sondern eine Lösung für ein selbst 
geschaffenes Problem präsentiert.
Unabhängig von der ungweöhnlichen Grösse des Elkos ist es natürlich auch 
sonst so, dass man manchmal eben warten muss, bis ein Zustand 
eingeschwungen ist. Was nach einem Reset nur sehr selten wirklich weh 
tut - da hat man Zeit.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> Mein lieber Lothar,wenn du mal nachgelesen hättest,kämst du
> dahinter,dass die interne 1,2 V Referenz Schrott ist
Wo hatte ich was von einer internen Referenz geschrieben? Du hast doch 
eine externe Referenz. Gut. Und dann hast du sie vermurkst verdoppelt. 
Das ist schlecht.
Also schließ einfach die externe Referenz direkt an und fertig. DAS 
meinte ich.

Und die interne Referenz ist wie bei µC üblich durchaus konstant, nur 
eben intitial ungenau und braucht deshalb einen Abgleich.

Gebhard schrieb:
> Kannst ja noch alles verbessern oder verschlimmbessern.
Am Besten alles löschen und richtig machen.

> Man stelle sich vor, man möchte eine Wechselspannung messen. Hmmm... da
> wär so was schon ganz praktisch oder
Ich kann das ganz ohne virtuelle Masse und das Herumgehampel mit zig 
Bauteilen...

> Mein lieber Lothar
Spar dir diese billige Arroganz. Wenn du keine Kommentare lesen willst, 
dann schreib einfach nichts.

: Bearbeitet durch Moderator
von Seppel (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nimm einen OpAmp der Unity-Gain Stable ist, auch bei DC, vielleicht 
MCP601,... ?

Grüße

Seppel

von H.Joachim S. (crazyhorse)


Bewertung
0 lesenswert
nicht lesenswert
Gebhard schrieb:
> 10Ohm /1mA = 10mV Spannungsabfall = ca. 20 Digits => indiskutabel

Auch bullshit.
IVREF Current on the VREF input pin 160µA typical 200μA max
Schonmal rel. weit weg von den 1mA.
Ausserdem legt man die Gegenkopplung hinter den Widerstand, ein 
Spannungsabfall dort spielt dann keine Rolle mehr.

von Arc N. (arc)


Bewertung
0 lesenswert
nicht lesenswert
H.Joachim S. schrieb:
> Gebhard schrieb:
>> 10Ohm /1mA = 10mV Spannungsabfall = ca. 20 Digits => indiskutabel
>
> Auch bullshit.
> IVREF Current on the VREF input pin 160µA typical 200μA max
> Schonmal rel. weit weg von den 1mA.
> Ausserdem legt man die Gegenkopplung hinter den Widerstand, ein
> Spannungsabfall dort spielt dann keine Rolle mehr.

Zum (anderen), möglichen Problem gibt's von TI extra einen Artikel:
Resistors in the feedback of a buffer: Ask why!
https://e2e.ti.com/blogs_/archives/b/precisionhub/archive/2014/07/15/resistors-in-the-feedback-of-a-buffer-ask-why

Ansonsten zur Schaltung:
Zweimal Opamp-Drift, dazu einmal die Drift der Widerstände der 
Verstärkung (Drift: Temperatur, Luftfeuchte, Alter usw.)
1.2V VRef-Diff bei 12-Bit -> LSB ~293uV. Der Rest sollte besser als 1/2 
LSB ~146 uV sein. Die OPA2376 sind zwar ganz gut, driften aber, je nach 
Temperaturbereich, schon mal mit max. +-2uV/°C. Selbst wenn die 
Schaltung nur 25 °C +-20 °C aushalten soll (OPAs +-1uV/°C), bleibt da 
nicht mehr viel für die Referenz... und dann fehlt noch das Tracking der 
Widerstände für die Verstärkung, die Langzeitdrift der ganzen Teile...

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.