SK schrieb:
> Hallo,
>
>
>
> ich benutze den STM32F103C8T6 ohne Spannungsstabilisierung direkt an
>
> einer 3,6V Batterie. Leider hat der Mikrocontroller kein
>
> Referenzspannungs- Pin.
Das ist richtig. VDDA ist intern mit VREF+, VSSA intern mit VREF-
verbunden
(LQFP48). Somit ist Deine AD-Referenzspannung die eigene
Betriebsspannung - in Deinem Fall also Batteriespannung.
Datenblatt:
"3. In devices delivered in VFQFPN and LQFP packages, VREF+ is
internally connected to VDDA and VREF- is internally
connected to VSSA. Devices that come in the TFBGA64 package have a VREF+
pin but no VREF- pin (VREF- is internally
connected to VSSA), see Table 5 and Figure 6."
> Das Problem ist halt das am Analogport bei
> fallender Bateriespannung es zu ungenauigkeiten kommt.
Wenn Du mit "Ungenauigkeiten" die dann mit der Batteriespannung
schwankende AD-Referenzspannung meinst, ist das richtig. Ich würde
da nicht mehr von "Ungenauigkeiten" sprechen. Kommt aber drauf an, ob
man Absolut- oder Relativmessungen durchführt.
> Da hatten wir die Idee das man das mit der Internen Referenzspannung
> korrigieren könnte.
Korrigieren nicht, aber verbessern. Die interne Referenzspannung
schwankt laut Datenblatt zwischen 1,16V und 1,26V (TA = -40...+105°C),
typisch 1,2V. Das ist natürlich immer noch viel stabiler, als die
externe Betriebsspannung.
> Die Interne Referenz Spannung kann man ja über den ADC_Channel_Vrefint
> auslesen.
Genau. Habe mich auch gefragt, warum man die nicht gleich als interne
Referenzspannung auf VREF+ schalten kann, aber das scheint so nicht zu
gehen.
Demzufolge kann das ja nur SO Sinn machen: Die tatsächliche
AD-Referenzspannung ist immer die externe VDDA/VREF+ und VSSA/VREF-. Das
lässt sich nicht ändern. Diese Spannung muss aber immer mindestens
2,4V betragen - ist also immer größer, als die interne Referenzspannung.
Die Kopplung bzw. Auswertung ist dann nur noch rein mathematischer
Natur.
Das Ergebnis aus der Wandlung der internen Referenzspannung entspricht
typisch 1,2V. Und jetzt ist es erst einmal egal, wie groß die wirkliche
AD-Referenzspannung ist. Mit Hilfe des Dreisatzes ;-) lässt sich nun
jede andere Spannung an einem ADC-Eingang berechnen. Die schwankende
Betriebsspannung wird im Idealfall immer rausgerechnet. Übrig bleibt die
Toleranz der internen Referenzspannung. Aber wenn man damit leben kann,
klappt das. Es hindert aber auch keiner daran, eine eigene noch genauere
Referenzspannung an einem der ADC-Eingänge zu betreiben (z.B. 1,2V mit
+-0.001%).
> Hierbei ist jedoch ein Problem aufgetreten und zwar scheint
> die gemessene Referenzspannung mit der zu messenden Spannung am
> Analogport zu steigen und fallen.
Entweder gibt es hier einen Software- oder Denkfehler.
Die gemessene Referenzspannung schwankt mit Deiner Betriebsspannung hin
und her. Wenn Du das meinst, ist das richtig. Danach kommt die
Umrechnung für alle anderen ADC-Eingänge. Dass die interne
Referenzspannung quasi intern schwankt ist ja gerade der Witz und
entsteht durch die oben genannte Kopplung.
> Woran liegt das?
>
> Die müßte doch eigenlich nur von der Batterie abhängig sein?
Solange da mehr als 2,4V an VDDA als an VSSA anliegt, ist die interne
Referenzspannung typisch bei 1,2V und schwankt s.o. noch ein wenig von
sich aus hin und her. Das Ergebnis der Wandlung der internen
Referenzspannung wiederum schwankt natürlich mit der Betriebsspannung
mit. Siehe oben.