Forum: Mikrocontroller und Digitale Elektronik STM32F030 interne REF ausreichend für 12Bit?


von Thomas P. (Gast)


Lesenswert?

Ich lese im Datenblatt kaum was über die interne Ref, fidne kaum welchen 
Wert diese eigentlich hat.
Dennoch steht dort das eine vorhanden ist für den Temp Fühler und auch 
für den ADC genutzt werden kann...
Kann sie nur auch dafür verwendet werden oder ist die auch dafür 
ausgelegt?
ist die stabil genug für die 12Bit?

von mini (Gast)


Angehängte Dateien:

Lesenswert?

300 µV (1.23/4096) < 10 mV(dV_refint)

von Gerd E. (robberknight)


Lesenswert?

Thomas P. schrieb:
> Kann sie nur auch dafür verwendet werden oder ist die auch dafür
> ausgelegt?

Du hast noch einen Punkt vergessen: sind die zur Verfügung gestellten 
Kalibrierdaten gut genug.

Meiner Erfahrung nach ist die interne Ref ganz ok, die von ST 
programmierten Kalibrierdaten haben dagegen durchaus bei manchen 
Exemplaren einen kräftigen Offsetfehler. Genaue Zahlen hab ich leider 
nicht im Kopf. Gab aber auch mal einen Thread dazu hier im Forum wo 
andere ähnliches berichtet haben.

Wenn Du selbst Kalibrierdaten aufnimmst und im Flash oder einem externen 
EEPROM ablegst, bekommst Du deutlich bessere Werte.

> ist die stabil genug für die 12Bit?

Die 12 Bit sind sowieso nicht stabil erreichbar, die letzten 2 Bit oder 
so flattern in der Praxis.

von Thomas P. (Gast)


Lesenswert?

"Die 12 Bit sind sowieso nicht stabil erreichbar, die letzten 2 Bit oder
so flattern in der Praxis."
?!?!
Wieso das?
Beim Xmega flattert nichts, warum ist das bei STm anders?!? Wozu sind es 
denn dann 12 Bit Wandler?


Wie schalte ich die interne Ref um?
Ich ref manual für den ADC finde ich nichts(RM0360)

von Thomas P. (Gast)


Lesenswert?

ach verdammt..ganz am ende stehts doch :-) HAbe die Umstellung auf TEmp 
oder redf gefunden

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Thomas P. schrieb:
> Wieso das?

Tja, das ist mögl. aufgrund der Chipstruktur so. Du kannst dir ja mal 
den Spass machen, den internen ADC mal auf einen DAC zu legen und dir 
das mit dem Kopfhörer anzuhören. Da surrt und bratzelt es doch schon 
ganz nett. Mit einem externen I²S ADC ist da Ruhe.

: Bearbeitet durch User
von Thomas P. (Gast)


Lesenswert?

Dann wären doch aber alle Datenblätter falsch?!?
Wenn die +-2LSB angeben?!?
Und warum klappt es dann beim Xmega?

Beitrag #5649615 wurde vom Autor gelöscht.
von S------- R. (simonr)


Lesenswert?

Nimm NICHT die internen ADCs für Aufgaben wo es auf Exaktheit ankommt.
Ich musste das auf die harte Tour lernen.

Die +-2 Bit gelten auch nur bei richtig gutem Layout, kleinem 
Kondensator am Eingang und deshalb auch kräftigem-puffer Opamp.

Wenn du die normalen Nucleo/Disco Boards nimmst und da fröhlich 
rumsteckst kommst du vielleicht auf 7 bis 8 Bit.

Ich mag ST und die ADCs sind schnell aber reichen nur für Poti-Abtastung 
und dergleichen.

Nimm einen externen und hänge ihn an die 54MHz SPI, das geht mit 3Msps 
wunderbar.

Für mehr dann eben parallel an die GPIO. Wenn du frickeln willst dann 
gehts auch per DCMI (Hsync/Vsync ignorieren) oder FMC (NOR-Flash 
Variante)

von Orikson (Gast)


Lesenswert?

Thomas P. schrieb:
> ist die stabil genug für die 12Bit?

Was hat die stabile Referenzspannung mit der Auflösung zu tun? ;)

Je nach dem was du messen willst kann man die interne Referenz verwenden 
oder nicht. Wenns nur um die grobe Temperatur geht, kann man das machen. 
Die interne Referenzspannung hat 1.2 - 1.25 V (Werte vom STM32F072). 
Dann gäbe es noch einen internen Kalibrationswert, dem würde ich aber 
auch nicht mehr als +-10 mV trauen, siehe Datenblatt und hier: 
Beitrag "STM32F072 ADC Genauigkeit trotz Kalibrierung nicht optimal"

Wenn du die exakte Temperatur möchtest, brauchst du sowieso nen anderen 
Sensor, z.B. MAX31725. Für präzise ADC-Werte dementsprechend ne gute 
Referenzspannungsquelle, z.B. REF6233

von temp (Gast)


Lesenswert?

Und nicht vergessen, es wird nicht im Verhältnis zur internen Referenz 
gemessen sondern zu Vda. Allerdings kannst du mit einem Kanal die 
Referenz messen und danach deinen Messwert. Neben den genannten 
Fehlermöglichkeiten kommt noch die hinzu, dass Vda zwischen den beiden 
Messungen schwankt. Dann geht es erst recht in die Hose.

von Thomas P. (Gast)


Lesenswert?

Es geht in meiner Frage nicht darum ob die Ref nun genau 1,25 oder 1,20 
hat..BITTE GENAU LESEN BEVOR MAN ANTWORTET!
Es geht darum ob die zu stark rausch oder für 12 Bit geeignet ist!

von Thomas P. (Gast)


Lesenswert?

und um die Temperatur geht es schon mal gar nicht...wieso liest hier 
eigentlich nie jemand die Fragen?!

von Orikson (Gast)


Lesenswert?

Thomas P. schrieb:
> Ich lese im Datenblatt kaum was über die interne Ref, fidne kaum welchen
> Wert diese eigentlich hat.

Thomas P. schrieb:
> wieso liest hier
> eigentlich nie jemand die Fragen?!

Wieso liest du nicht das Datenblatt? ;) Aber mal ernsthaft

Thomas P. schrieb:
> Es geht in meiner Frage nicht darum ob die Ref nun genau 1,25 oder 1,20
> hat..BITTE GENAU LESEN BEVOR MAN ANTWORTET!
> Es geht darum ob die zu stark rausch oder für 12 Bit geeignet ist!

Rauschen, oder Spannungsungenauigkeiten der Ref haben mit der Auflösung 
von 12 Bit nicht zwingend etwas zu tun!

Oder Anders gesagt, da du so auf die Auflösung bestehst: denkst du +- 10 
LSB  (bei 12 Bit) sind schlimmer oder eine schwankende bzw. unbekannte 
Ref von 1,2 - 1,25?

Was ist dein Signal, welches dich interessiert? Und wie genau möchtest 
du messen?

von Thomas P. (Gast)


Lesenswert?

"denkst du +- 10
LSB  (bei 12 Bit) sind schlimmer oder eine schwankende bzw. unbekannte
Ref von 1,2 - 1,25?"

!??!?
ÄHmm jA!!!
Soll das ein Scherz sein!??
Was interesseirt es, welchen Wert die REf genau hat, wenn ich die 
Berechnung schlussendlich mit dem gemessenen Wert durchführe?!
Aber ein wild umherzappelnder ADC Wert der sich nur durch 10000000fach 
Oversampling und Filterunge tc pp erreichen lässt wären keine wirklichen 
12Bit..
Das DAtenblatt spricht auch bei weitem nicht von 10 zappelnden LSB..
Abgesehen davon..wie oft soll ich es sagen...beim Xmega ist es doch auch 
kein Thema??!? Wieso sehen das alle beim STM als völlig i.O. an.
Dann taugt er nichts und ich würde auch Atsam umsteigen oder eben Xmega

von Johnny B. (johnnyb)


Lesenswert?

Thomas P. schrieb:
> Oversampling und Filterunge tc pp erreichen lässt wären keine wirklichen
> 12Bit..

Also für die meisten Messungen (wo die Zeit ausreicht um ein paar mal zu 
sampeln) bin ich ganz froh wenn der ADC etwas zappelt, denn so kann man 
per Oversampling noch wesentlich mehr Bits rausholen als der ADC 
hergibt, ohne da noch schaltungsmässig selber eine Rauschquelle einbauen 
zu müssen.

Nachtrag: Auf die Genauigkeit hat Oversampling keinen Einfluss

: Bearbeitet durch User
von Thomas P. (Gast)


Lesenswert?

"schaltungsmässig selber eine Rauschquelle einbauen
zu müssen."
Was per PWM und einem Widerstand schnell gemacht ist..also froh bin ich 
ganz sicher nicht, wenn der ADC ab Werk nichts taugt und wackelt..dann 
lieber absichtlich kontrolliert wackeln lassen

von soso... (Gast)


Lesenswert?

Thomas P. schrieb:
> !??!?
> ÄHmm jA!!!
> Soll das ein Scherz sein!??

Stimmt nicht. Einige STM32-Fanboys haben einfach nur keine Ahnung von 
Hardware. Oder arbeiten mit den Discovery-Boards. Oder arbeiten mit 
einem Derivaten, das keinen VREF-Eingang hat.

Ich darf in der Arbeit auch mit STM32 werken.
Wir verwenden unter Anderem für Testadapter STM32F3, die internen ADCs 
sind mit der dort verbauten externen Referenz ganz gut (also für 
12Bit-Verhältnisse). Da zappelt vielleicht das letzte Bit, aber selbst 
das nicht immer.

So ein STM32 mit FPU und >50MHz zieht schon etwas Strom im Digitalteil, 
da besteht schon ein gewisser Anspruch an die Stromversorgung. Mehr als 
bei einem 8-Bitter zumindest. Dazu sieht man oft Step-Down-Regler, 10mV 
Rippel (ist eh schon gut!) ist im Analogteil nicht so toll.
Auch die GND-Führung will bedacht werden.

Ein ATXMEGA dürfte das gleiche Problem haben. Nur braucht der weniger 
Strom, und hat daher weniger Anspruch an die Versorgung.

Nein, die ADCs der STM32 sind schon ok, wenn die Versorgung sauber ist. 
Sage ich als überzeugter PIC32-Fan.

von Thomas P. (Gast)


Lesenswert?

ich habe beim Xmega156 nur einen Tantal  und einen Elko..nichts keine 
100nf oder sonstwas..es wackelt ein Digit auf dem STECKBRETT!!
Gleiceh Breakoutplatine beim STM32 zappelt mal gut 8-10 mit 
gelegentlichen Sprüngen die noch größer sind!! bei 16MHz

von Thomas P. (Gast)


Lesenswert?

Xmega16

von Thomas P. (Gast)


Lesenswert?

ach ja, alles an EINER Spannungsquelle(Labornetzteil) keine extra 
Versorgung  oder REf oder sonstwas..nur die interne vom Xmega

von Thomas P. (Gast)


Lesenswert?

ach ja..Xmega bei 32MHz

von Thomas P. (Gast)


Lesenswert?

offenbar bin ich nicht der einzige...
Beitrag "STM32 ADC Verhalten eigentümlich"

von soso... (Gast)


Lesenswert?

Thomas P. schrieb:
> offenbar bin ich nicht der einzige...
> Beitrag "STM32 ADC Verhalten eigentümlich"

SO ein schlechtes Verhalten hatte ich nie. Bei zig Platinen...

Zeig mal die Schaltung, vielleicht kann man dir ja helfen. Oh, und die 
Kalibrierung hast du gemacht? Da gibts so eine Kalibrierroutine. Wie 
sieht dein TACQ und deine Quelle aus?

Man muss die Peripherie von ST nicht mögen, sie ist ziemlich 
kompliziert, aber sie funktioniert definitiv ziemlich gut.

Sont gäbe es noch das:
https://www.st.com/content/ccc/resource/technical/document/application_note/group0/3f/4c/a4/82/bd/63/4e/92/CD00211314/files/CD00211314.pdf/jcr:content/translations/en.CD00211314.pdf

Wenn dir ST nicht gefällt, nimm halt XMEGA. Man nimmt zum Basteln was 
gefällt. Böse geagt: Hättest dir halt nicht den STM32 von den Fanboys 
andrehen lassen sollen ;-)

von Thomas P. (Gast)


Lesenswert?

keine Kalibrierung..wofür auch, die ändert ja nichts am eigentlichen 
Problem...
Die Frage ist halt ob ein ATsam besser ist...
Ich werde es morgen nochmal mit dem 373 versuchen..ATSAm und UC liegen 
auch schon zum Test Bereit.


Aufbau brauch ich nicht zeigen.
Bedingungen für beide sind gleich, wie oben geschrieben..selbst ohne 
Kondensatoren ist der xmega besser..

von Thomas P. (Gast)


Lesenswert?

es handelt  sich auch bei beidem um leiche größen..44pin xmega 48pin 
STM32

von Orikson (Gast)


Lesenswert?

Thomas P. schrieb:
> Was interesseirt es, welchen Wert die REf genau hat, wenn ich die
> Berechnung schlussendlich mit dem gemessenen Wert durchführe?!

Wie willst du den ADC Wert der Referenzspannung berechnen, ohne eine 
exakte bekannte Referenzsspannung? V_meas = ADC_Value * (4095 / V_REF). 
Da hilft leider auch der im Werk vermessene Wert VREFINT_CAL in Register 
0x1FFFF7BA nur bedingt

> Das DAtenblatt spricht auch bei weitem nicht von 10 zappelnden LSB..
Zählt man alle LSB-Fehler zusammen sind es zumindestens beim F072 +-10 
Bits. Einige lassen sich aber evtl durch die interne Routine raus 
kalibireren.

Thomas P. schrieb:
> selbst ohne Kondensatoren ist der xmega besser..
Ist dir schon mal in denn Sinn gekommen, dass ein etwa 3$ teurer Xmega16 
etwas bessere Daten haben könnte, als ein mit 1.6$ nur halb so teurer 
STM32F030? Könnte aber natürlich auch einfach am Markt liegen...

Die STM haben hald ein großes Featureset und sind dabei auch bezahlbar. 
Dabei leidet hald dann auch die Qualität, im Falle vom ADC die 
Genauigkeit. Für die allermeisten Fälle ausreichend. Für spezielle Fälle 
gibts gute 24-Bit ADCs. Dein Messfall ist leider immer noch unbekannt.

von Thomas P. (Gast)


Lesenswert?

Vergiss bitte die Diskussion mit der Ref..ist ein völlig anderes Thema 
und unwichtig.
Ist dir schon mal in denn Sinn gekommen,wenn die Daten im Datenblatt 
stehen, diese auch erreicht werden können sollten?!?

"Die STM haben hald ein großes Featureset und sind dabei auch bezahlbar. 
"
Bringt nur nichts, wenn alles nicht richtig funktioniert und Spielkram 
is..dann sollten die ins Datenblatt 10Bit und mit Oversampling 12Bit 
schreiben...tun sie aber nicht!

"Dein Messfall ist leider immer noch unbekannt."
tut auch so gar nichts zur Sache, weil es an den Fakten absolut nichts 
ändert


"ass ein etwa 3$ teurer Xmega16
etwas bessere Daten haben könnte, als ein mit 1.6$ nur halb so teurer §
Dann verrat mir nach Deiner Logic mal, wonach ich bei STM32 suchen muss 
um einen vergleichabren ADC zu finden wie im XMega, wenn es offenbar 
über die Datenblätter nicht geht??!?


Also manchmal....

von Orikson (Gast)


Lesenswert?

Thomas P. schrieb:
> Vergiss bitte die Diskussion mit der Ref..ist ein völlig anderes Thema
> und unwichtig.
Kann ich dir nicht folgen. Wieso sollte die Referenzspannung bei 
analogen Messungen unwichtig sein? Das ist doch DIE Bezugsgröße für die 
Umrechnung.

Thomas P. schrieb:
> Ich lese im Datenblatt kaum was über die interne Ref, fidne kaum welchen
> Wert diese eigentlich hat.
> Kann sie nur auch dafür verwendet werden oder ist die auch dafür
> ausgelegt?
Soviel zum "völlig anderem Thema", zur Ref war deine anfängliche 
Frage...

Thomas P. schrieb:
> Ist dir schon mal in denn Sinn gekommen,wenn die Daten im Datenblatt
> stehen, diese auch erreicht werden können sollten?!?
Tun sie, wenn man alle Toleranzen und Faktoren mit beachtet, also auch 
Temperatur, Takt etc.

Thomas P. schrieb:
> "Dein Messfall ist leider immer noch unbekannt."
> tut auch so gar nichts zur Sache, weil es an den Fakten absolut nichts ändert
Um welche Sache geht es dann hier? Ob man die internen Ref auch für 
andere ADC-Eingänge nutzen kann? Ja, kann man. Wenn dir der integrierte 
im STM32 zu schlecht ist, dann musst du eben einen anderen (externen) 
ADC verwenden. Mich würden die Ergebnise deines STM32 zu Xmega16 
Vergleichs dennoch interessieren ;)

von Thomas P. (Gast)


Lesenswert?

warum ist die Ref wichtig, sie ist doch nur RELATIV.
Aber wie gesagt egal..
das einzige was die nicht darf ist rauschen oder schwanken im Betrieb

Nein, die Frage zur Ref war ob die stabil genug ist, oder zu sehr 
rauscht. Bei keinem µc ist die genau, weil das auch völlig wurscht 
ist..lassen wir das!

Nööö! tun Sie nicht!!
Beide werden heir gelichzeitig bei gleichen Temo getestet und der STM 
ist kacke!!
Also stimmen die Angaben so nicht! PUNKT

"Wenn dir der integrierte
im STM32 zu schlecht ist"

GENAU darum geht es!!
und nein, ich nehme dann keinen anderen ADC..sondern werde mich weg von 
STM bewegen! Weil meine hauptsächlichen basteleien auf den ADC setzen!

von S------- R. (simonr)


Lesenswert?

Das wichtige an einem µC sind zwar DMA, Interrupthandhabung, Busmatrix, 
Dokumentation, Libraries und dergleichen, aber wenn du meinst, dann such 
eben den mit dem besten internen ADC.

Andere gehen da eben zu Analog, Linear (gehören ja eh zusammen), TI und 
MAXIM aber nungut. TI hat übrigends mitunter die kompaktesten ADCs mit 
so 3mm^2 footprint (falls es ein Problem der Layoutgröße ist)

Entspann dich einfach etwas, ein µC ist niemals perfekt in allen 
Belangen und im Datenblatt wird auch nur mit Wasser gewaschen.

von Hans (Gast)


Lesenswert?

Thomas P. schrieb:
> Beide werden heir gelichzeitig bei gleichen Temo getestet und der STM
> ist kacke!!

Ich bin mir zwar nicht ganz sicher, ich meine aber stm gibt zum rauschen 
durchaus Angaben an.

Die stm Controller sind mit an Sicherheit grenzender Wahrscheinlichkeit 
in einem "besseren" (zu lesen: schnelleren) CMOS Prozess gefertigt. 
Damit MUSS das rauschen, bedingt durch die Halbleiterphysik, höher sein.

Externe ADCs sind schon immer besser in Bezug auf rauschen.


Außerdem: bei den stms sind die ADCs nicht bandbegrenzt..... Mach mal 
einen passenden Tiefpass vor den Eingang und vergleiche nochmal.


Bevor du über dieses Feature schimpfst - es gibt Fälle wo du keine 
bandbegrenzung willst.... Stichwort dazu ist subsampling oder 
Unterabtastung


73

von Thomas P. (Gast)


Lesenswert?

wie gesagt...wenn im Datenblatt steht +-2LSB ist die Angabe falsch

Bin hier raus

von S. R. (svenska)


Lesenswert?

So rein vom lesen her habe ich schlicht das Gefühl, dass der STM32 nicht 
die Ursache des Problems ist. Aber was weiß ich schon...

von Hans (Gast)


Lesenswert?

Thomas P. schrieb:
> wie gesagt...wenn im Datenblatt steht +-2LSB ist die Angabe falsch

Das wären 11bit... Das sollten sich meiner Erfahrung liefern...

Wie gesagt, sie sind (gottseidank) nicht bandbegrenzt... Die externe 
Beschaltung ist dann eine Kunst... Das ist bei den sar wandlern von AD 
üblicherweise nicht anders..... aus ähnlichen Gründen....


Wenn du was unaufwendiges willst, nimm irgend einen i2c ADC... Die haben 
ganz andere Design requirents wie schnelle ADCs...


73

von soso... (Gast)


Lesenswert?

Hans schrieb:
>> wie gesagt...wenn im Datenblatt steht +-2LSB ist die Angabe falsch
>
> Das wären 11bit... Das sollten sich meiner Erfahrung liefern...

tun sie auch ;-)

Aber der gute Herr will seine XMEGA besser finden.
Lasst ihn. Wozu diskutieren?

von FloMann (Gast)


Lesenswert?

Welche Angabe genau meinst du?
Auf die schnelle im Datenblatt habe ich
auch keine Angaben zum SNR gefunden
(auch nicht SNRD oder die effektive Auflösung)
um zumindest mal rudimentär unter dessen
Bedingungen den möglichen Signal/Rausch
Abstand einschätzen zu können...

Meine Versuche mit einem F051 Discovery jedoch
mit vorgeschalteten AFE (~3.5khz BW 3te Ord.)ergaben
um die 1Lsb Std.Abweichung und etwa ±3lsb Min/Max
vom Mittel. Abtastrate waren nur 10khz wobei der
Adc selbst mit max Takt lief, die Zeit für das settling
wurde variiert. Ziel sollte sein 10 Kanäle sequentiell
mit 10khz/Kanal abzutasten. Da wäre für jeden Kanal
noch bis zu 8 Messungen für Mittelwertbildung geblieben,
je nach settling Zeit Wahl und was wievielt bringt.
Generell ( auch bei anderen MCU's) waren die Messungen
auch sehr empfindlich z.b. wenn über SPI ordentlich Daten
transferiert wurden.
Ich könnte mir hier auch gut Vorstellen das dies mit eigenem
Design dann auch besser wird.
Wurde es zum Beispiel auch beim am Ende verwendeten
EFM8LB12 (Architektur Wechsel war erstmal nicht gewünscht,
sonst hätte ich mich nochmal mit den kinetis beschäftigt)
welcher aber auf dessen Entwicklungs Board auch schon
besser war.
Wenn Arm und Mixed Signal integriert dann eventuell auch mal bei
NXP Kinetis vorbeischauen oder bei TI.
Je nach Vorhaben wird man hier schon was ausreichendes finden
und ggf. dann halt externe nutzen.

von Thomas P. (Gast)


Lesenswert?

was ist AFE?
Habe gestern den 373 Sigma Delta 16Bit getestet...also selbst 14Bit sehe 
ich da nicht...
Die Woche werde ich den Atsam 4S2AB testen

von Alex (Gast)


Lesenswert?

Thomas P. schrieb:
> was ist AFE?

Analog Front End

Thomas P. schrieb:
> Habe gestern den 373 Sigma Delta 16Bit getestet...also selbst 14Bit sehe
> ich da nicht...

Habe ich das eigentlich richtig gelesen, dass du deine Tests auf einem 
Steckbrett machst? Halte ich bei gewünschter 16 Bit Auflösung für 
mutig...

von Thomas P. (Gast)


Lesenswert?

Dann hat AFE sicher auch einen Filter?! Das kann man natürlich nicht als 
vergleich heranziehen.

Ich erwarte nicht 100% Perfekte Werte..ich erwarte zu sehen, welcher µc 
ADC besser ist bzw weniger rauscht.
Und dazu ist das Steckbrett problemlos geeignet.
Gemessen wird ein statischen Signal(1,2V Zelle.
Selbst auf dem Steckbrett wären 16 Bit möglich, es gibt immer noch die 
Möglichkeit beine vom Breakout abzuknipsen oder C direkt ans Breakout zu 
löten etc pp.
Aber wie gesagt..darum geht es nicht...es geht nur darum  welcher ADC 
und gleichen Bedingungen stabiler ist.

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.