STM32 ADC Calibration

OP #5377203
Ich möchte ADC-Messung mit einem STM32F042 möglichst genau hinbekommen. 
Aktuell messe ich multichannel mit DMA.

Es funktioniert auch alles soweit, allerdings misst mein ADC bei 2 
Messeingängen mit Pull-up (an die später NTC's kommen sollen) jeweils um 
die 4030 (bei 12Bit). Meine Versorgungsspannung auf dem PCB ist per LDO 
bei (laut Multimeter) genauen 3,300 Volt. Die NTC Messeingänge liegen 
laut Multimeter auf 3,294 V.

Ich habe versucht die ganze Messung über Vref genauer zu machen.
Wie in dem Thread Beitrag "STM32 ADC Calibration" habe ich 
die Formel aus dem Reference Manual benutzt.

V=(3300V*V_ref_cal)/(V_ref_data)


Mein V_ref_cal ist 1525 und mein V_ref_data vom ADC ist um die 1460, 
sodass ich auf Vdd von ~3440 mV komme, obwohl ich mehrfach gemessen habe 
und es laut multimeter ziemlich genaue 3,3V sind.

Messen tut der ADC außerdem auch über die maximalen 239,5 Zyklen.

Ist diese Abweichung normal? Kann ich was tun, um die ADC Messung 
möglichst genau zu machen, außer ein offset oder ein gain händisch drauf 
zu addieren/multiplizierenn?
#5377213
Matthias F. schrieb:
> Ist diese Abweichung normal? Kann ich was tun, um die ADC Messung
> möglichst genau zu machen, außer ein offset oder ein gain händisch drauf
> zu addieren/multiplizierenn?

Genau so macht man es aber üblicherweise. Ansonsten kann man die 
Kalibrierung auch erstmal selbst im STM ausführen, wobei natürlich 
Ersteres am genauesten ist.
Gast #5377218
3,3 V / 4096 = 0,0008056640625 Volt pro Stufe

3,294 V / 0,0008056640625 = 4088

Das wäre der erwartete Messwert gewesen - im Idealfall.
Bekommen hast du aber den Wert 4030. Die Abweichung beträgt also

4088 - 4030 = 58

58 von 4096 sind 1,4%

Schau mal ins Datenblatt, welche maximale Abweichung dort versprochen 
wird. Ich bin (von anderen µC) größere Abweichungen gewohnt.
Gast #5377505
Wenn man "genau" messen will, ist die Betriebspannung als Referenz 
unbrauchbar. Falls der STM einen Ref-Eingang hat, solltest du den 
benutzen und temperaturstabile 2,5V in etwa anlegen.Eine Kalibration des 
ADC's erst einige Sekunden nach Hochlaufen durchführen, damit sich die 
Referenzspannung stabilisieren kann.

Grüsse
Gast #5377587
> Wenn man "genau" messen will, ist die Betriebspannung
> als Referenz unbrauchbar.

So Pauschal würde ich das nicht sagen. Denn wenn der Sensor eine 
Ausgangsspannung liefert, die ebenfalls relativ zur Betriebsspannung 
ist, dann eignet diese sich sogar ideal als Referenz.

Eine Klassiker wäre hier zum Beispiel die Temperaturmessung mittels NTC:
1
                    NTC 10k
2
                +---[===]---+
3
                |           |
4
GND |---[===]---+---[===]---+---o VCC
5
         10k    |    100k
6
                |
7
              zum ADC

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.