STM32F4 Internal Reference

OP #5467292
Hallo,

ich versuche gerade über die interne Referenzspannung eines STM eine 
externe Spannung zu ermitteln.

Mit der Formel V = ADC_Value * 3300mV / 4095 funktioniert das auch sehr 
gut und ich bekomme den richtigen Wert.

Da meine Spannungsversorgung aber natürlich nie genau 3,3V beträgt, 
würde ich gerne die interne Referenzspannung für bessere Genauigkeit 
verwenden.
Die Formel V = ADC_Value * 1200 / ADC_VREF funktioniert aber leider 
nicht, da ich beim lesen des Kanal 17 immer ca. 1500 als Wert zurück 
geliefert bekomme (Adc_Read(ADC1, ADC_Channel_Vrefint);)

Schaltplan und Source im Anhang.

mfg
Angehängte Dateien:
OP
Könntest du mir auch sagen, wo genau diese Formel steht? Wobei ich mir 
aber kaum vorstellen kann, dass der Wert so viel abweicht.

mfg

EDIT:
Ich möchte aber nicht die Versorgungsspannung berechnen, sondern eine 
externe am ADC
Hm, das is eine ausgezeichnete Frage...

Ich hab die Formel auf die schnelle aus einem L4-Datenblatt (S.425 in 
RM0394) da ich mir fest eingebildet hab, dass der F4 auch diesen 
internen "calibration factor" VREFINT_CAL hat. Beim L4 liegt dieser 
Faktor als uint16_t auf der Adresse 0x1FFF75AA.

Auch der von dir gemessene Wert würde schwer dafür sprechen dass die 
Formel stimmt. Ich hab mal eben bei einem Board mit STM32L431 gemessen 
und da bekomm ich für VREFINT 1487. Das ergibt mit dem internen 
Kalibrationsfaktor dann in etwa 3.3V.
Gast
Felix F. schrieb:
> ich versuche gerade über die interne Referenzspannung eines STM eine
> externe Spannung zu ermitteln.
>
> Mit der Formel V = ADC_Value * 3300mV / 4095 funktioniert das auch sehr
> gut und ich bekomme den richtigen Wert.
>
> Da meine Spannungsversorgung aber natürlich nie genau 3,3V beträgt,
> würde ich gerne die interne Referenzspannung für bessere Genauigkeit
> verwenden.
> Die Formel V = ADC_Value * 1200 / ADC_VREF funktioniert aber leider
> nicht, da ich beim lesen des Kanal 17 immer ca. 1500 als Wert zurück
> geliefert bekomme (Adc_Read(ADC1, ADC_Channel_Vrefint);)

Auf die Spannung an AVCC kann man mit einem internen Kalibrationswert 
schließen, welcher bei ST in der Produktion vermessen wird. Bei einem 
Versuch habe ich damit eine Abweichung von etwa +- 10 mV. Je nach dem 
was du messen willst, kann das ausreichend sein oder nicht. Dann hilft 
die sehr ungenaue interne Referenzspannung aber auch nicht, da diese 
zwischen 1.2 - 1.25 V schwanken kann (Werte vom STM32F072).

Evtl hilft dir der Beitrag von mir weiter: 
Beitrag "STM32F072 ADC Genauigkeit trotz Kalibrierung nicht optimal"

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.