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?
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.
"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)
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.
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)
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
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.
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!
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?
"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
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
"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
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.
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
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 ;-)
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..
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.
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....
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 ;)
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!
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.
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
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
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?
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.
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...
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.