Forum: Mikrocontroller und Digitale Elektronik STM32 ADC Calibration


von Matthias F. (matthias_f)


Lesenswert?

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?

von Patrick R. (ohmann)


Lesenswert?

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.

von Stefan F. (Gast)


Lesenswert?

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.

von Geb (Gast)


Lesenswert?

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

von Stefan F. (Gast)


Lesenswert?

> 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

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.