Hallo, ich bräuchte eine praktische Abschätzung zur Auswertung von mehreren Pt1000 Sensoren. Ich habe zwei Heizelemente welche ich auf verschiedene Temperaturen heize (80°C und 98°C) aus denen ich dann meine Wunschtemperatur mischen kann. Mir geht es um gesamt 4 Sensoren, wobei ich zwischen Raumtemperatur bis maximal 150°C messen möchte. Da der STM32H7 einen 16-Bit ADC hat (und ich eine externe 3V Referenz habe), ich mit dem aber keine Erfahrung habe, wollte ich fragen ob jemand abschätzen kann ob es reicht die Auflösung auf realistische 0,1°C zu bekommen. Die Genauigkeit ist relativ egal (ich sage mal 2°C) solange die Werte immer gleich bleiben (also kein/kaum Drift). Da der Hauptregelbereich um die 90°C ist, würde ich für die ratiometrische Messung ca 1300 Ohm nutzen (dort ist ja dann die Auflösung am größten wenn ich mich richtig erinnere). Meine Überlegung: Bei Raumtemperatur: 1080 Ohm und 1300 Ohm: 1,361V bei 150°C: 1570 Ohm und 1300 Ohm: 1,641V --> Range etwa 0,3V, also nur 1/10 des ADCs. Allerdings ist die theoretische Auflösung bei: 3V/2^16=0,045mV Änderung bei einem Grad: bei 90°C: 1347 Ohm und 1300 Ohm: 1,52663V bei 91°C: 1350,8 Ohm und 1300 Ohm: 1,52875V Differenz: 2,12mV, bei 0,045mV/ Bit wären das 47 LSB, also eine Auflösung von 0,02°C Jetzt die Preisfrage, da das alles sehr theoretisch ist, bekommt man das so hin das man auf 0,1°C Auflösung kommt, oder wackelt das viel zu sehr so dass man selbst nach digitalem Tiefpassfiltern noch eine zu stark wackelnde Nachkommastelle hat? Dass ein Differenzverstärker der auf den vollen Bereich verstärkt besser ist weiß ich, das wären allerdings wieder aktive Komponenten, mehrere Widerstände pro Kanal etc...
Hast du mal die Eigenerwärmung abgeschätzt? Rauschen (im Kontrast zu z.B. Drift) ist generell relativ unkritisch, wenn genug Zeit für's Messen zur Verfügung steht.
Die Eigenerwärmung habe ich eher ausgeblendet, da alle gut gekoppelt an einen "Metallklotz" geschraubt werden. Mir wäre eben für die Regelung wichtig dass sich die Temperatur entsprechend der Heizung ändert, und den Regler nicht durchdrehen lässt.
Kein Problem. Hier laufen viele an 10bit ADCs mit Grad genauer Auflösung
Wie schnell möchtest du denn regeln?
Das weiß ich noch nicht. Wird ja im Wesentlichen durch die Totzeit zwischen Heizspule --> Metall --> Pt1000 dominiert. Von daher vermutlich irgendwo im Hz-Bereich. Außerdem kenne ich auch den Durchfluss und damit ich die "verloren" Wärmemenge. Von daher kann ich auch gut vorhalten.
Gerald M. schrieb: > Differenz: 2,12mV, bei 0,045mV/ Bit wären das 47 LSB, also eine > Auflösung von 0,02°C Bedenke dabei, dass die unteren zwei Bit bei einfachster Anwendung des ADC unbrauchbar sind. Um alle 12 Bit nutzen zu können, brauchst du eine separate gefilterte Spannungsversorgung für den ADC, eine externe Referenz (hast du) und man muss vermutlich auch einen STOP oder WAIT Zustand benutzen, damit der ADC nicht gestört wird. Siehe 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
Stefan ⛄ F. schrieb: > Um alle 12 Bit nutzen zu können Wie der TE auch schrieb, haben die STM32H7 3 ADC Wandler mit 16 Bit Tiefe. Wenn mans ordentlich macht, können zwar die unteren beiden Bits kippeln, aber 14 Bit können da schon übrig bleiben.
A. H. schrieb: > Kein Problem. Hier laufen viele an 10bit ADCs mit Grad genauer > Auflösung Er wollte den Pt1000 direkt auswerten, also bloss ein Vorwiderstand von 8100 Ohm für 0.33mA, ohne OpAmp, also eine Änderung von 0.33V auf 0.33012V für 0.1 GradC Auflösung, 120uV, bei 3V Referenz also 1/25000, mit 16 bit ADC schaffbar, mit 10 bit nicht.
The STM32H7 series unleashes the Cortex-M7 core: Even more peripherals, ... many other analog peripherals including three fast 16-bit ADCs, two comparators and two operational amplifiers.
Jedenfalls gehen 10bit einfach so, alles darüber erfordert Aufwand in Hardware und Software.
Gerald M. schrieb: > Das weiß ich noch nicht. Wird ja im Wesentlichen durch die Totzeit > zwischen Heizspule --> Metall --> Pt1000 dominiert. Eine Totzeit hast du da bestimmt nicht - rein regelungstechnisch betrachtet. Oder sitzt zwischen Heizspule und Metall noch ein Wasserkreislauf, der für eine Verzögerung entsprechend Zeit=Strecke/Fließgeschwindigkeit sorgt?
Nein, ich habe einfach nur zwischen Pt1000 auf der Heizung Metall. Das alles dauert eine Weile bis man eben einen Temperaturausschlag misst. Der Thermoblock sieht etwa so aus wie angehängt. Eine Schnecke für das Wasser und eine mit Heizwendel. Die Temperatur messe ich mit einem Pt1000 zum Anschrauben an einem Gewinde. Ich werde dann wohl doch einen OPAmp nehmen. Als Schaltung einen einfachen Differenzverstärker mit Offset. Dann muss ich mir nur ein paar Gedanken mehr zu der resultierenden Verstärkung machen, da der Spannungsteiler ja belastet ist, aber das bekomme ich schon hin.
Noch eine kurze Idee, weiß jemand was gegen die angehängte Schaltung spricht? Im LTSpice sieht sie stabil aus, und sie ist auch einfacher zu berechnen, da beide Spannungsteiler durch die gleiche Anbindung an den Ausgang gleich stark belastet werden. Ich habe zwar das Gefühl dass da irgend etwas nicht stimmt, doch ich finde den Haken nicht...
> jemand was gegen die angehängte Schaltung spricht?
Das ist überhaupt kein Differenzverstärker mehr.
Der PT1000 hat doch ca. 1kOhm.
Wie soll das überhaupt mit 10k-10k auf der einen Seite und 10k-1k auf
der anderen Seite dann funktionieren?
Ja, da hast du Recht. R8 soll natürlich 1k Ohm sein. edit: Habe das nochmal simuliert, jetzt kommt nur Müll heraus. Von daher bleibt es wie im ersten Schaltplan (natürlich mit 1k anstatt 10k).
:
Bearbeitet durch User
Gerald M. schrieb: > Ich habe zwar das Gefühl dass da irgend etwas nicht stimmt, > doch ich finde den Haken nicht... Warum hab ich nur das Gefühl, dass da jemand schwimmt (oder uns auf den Arm nimmt), denn ich kapier diese Fehler nicht... Schaltung simuliert? - Messbrücke, falsches Spannungsverhältnis - OP mit positiver Rückkopplung - Spannungsteiler jeweils mit 1k Ohm belastet.
Ich habe natürlich die Schaltung nicht in einem Zeichenprogramm (wovon der Screenshot offensichtlich stammt) sondern in LTSpice simuliert. Die positive Rückkopplung habe ich bereits revidiert. Die Spannungsteiler sind selbstverständlich nicht mit 1k Ohm belastet, sondern mit 1k + 44k = 45k Ohm (siehe goldene Regeln)
:
Bearbeitet durch User
wieso wird eine externe Ref benötigt? Ich hatte das damals mal gefragt ob für die vollen 16Bit die interne Ref ausreichen würde..da wurde mir erzählt das ich offenbar das Prinzip des eines DS Wandlers nicht verstehen würde..was ich nicht in Frage stelle ...
kein gast schrieb: > wieso wird eine externe Ref benötigt? Wenn du die maximale Genauigkeit haben willst brauchst du eine externe Referenz. Es gibt einen Unterschied zwischen Auflösung und Genauigkeit. Wieso wird hier eigentlich schon wieder die 100. Lösung zum Auswerten von PTs besprochen. Es gibt genügend ICs die genau das machen, beispielsweise der MAX31865.
> kein gast schrieb: >> wieso wird eine externe Ref benötigt? Ohne gibt es größere Fehler wenn die Spannungsversorgung driftet. Hängt die externe an der gleichen Spannungsquelle wie der Vorwiderstand machen sich Spanungsschwankungen kaum bemerkbar. Die kippenden Bits können auch Vorteilhaft sein. Ein Grundrauschen erhöht die Genauigkeit. Allerdings müssen dazu sehr viele Werte addiert werden. Hätte man die Zeit könnte der Wert auf 1/100 Grad genau werden.
Du brauchst keine OPVs, bloß um die Auflösung zu erhöhen. Mit einem 10 Bit ADC liegt die Auflösung bei <= 2 K. Wenn Du die Schaltung auf den H7xxx umbaust, bekommst Du locker Deine Auflösung: Beitrag "Temperatursensor KTY81 am ATmega328 (Arduino UNO), 1-6 Kanäle" Wichtig ist, daß die PT nicht dauerhaft bestromt werden. Die Eigenerwärmung ist nicht unerheblich, stört nur und läßt sich doch ganz einfach vermeiden. A. H. schrieb: > Hätte man die Zeit könnte der Wert auf 1/100 Grad genau werden. Nein, die Zeit ist nicht sie ausschlaggebene Faktor.
A. H. schrieb: > Die kippenden Bits können auch Vorteilhaft sein. Ein Grundrauschen > erhöht die Genauigkeit. Allerdings müssen dazu sehr viele Werte addiert > werden. Hätte man die Zeit könnte der Wert auf 1/100 Grad genau werden. Immer wieder die Leute, die zu blöd sind, Auflösung und Genauigkeit auseianderzuhalten.
Guest schrieb: > Wenn du die maximale Genauigkeit haben willst brauchst du eine externe > Referenz. Quatsch, solange er ratiometrisch misst braucht er nur eine kurzzeit-stabile Referenz. Und dafür sollte die eingebaute reichen.
Udo S. schrieb: > Und dafür sollte die eingebaute reichen. Wenn du nur Widerstände messen willst, brauchst du garkeine Referenz_spannung_. Aber mit einem Vorverstärker reicht evt. auch ein 12-Bit ADC und ein viel kleinerer STM32.
Hallo, nur noch einmal was ich wollte: Ich wollte einfach, dass ich mir die Temperatur mit einer Nachkommastelle anzeigen lassen kann und auch danach regeln kann. Dass ich theoretisch die Nachkommastelle messen kann, habe ich bereits im ersten Post vorgerechnet. Meine Erwartung wäre allerdings, dass bei konstanter Temperatur mir auch immer die gleiche Temperatur angezeigt wird. Ich also bei 90,3°C keine zwischen 90,5°C und 90,2°C hin-und herzuckende Anzeige habe, sondern einfach 90,3°C. Ob das in echt 91,4°C sind, ist mir in erster Linie egal, so lange mir morgen bei 91,4°C immer noch 90,3°C angezeigt werden. Das Ganze soll natürlich ohne "digitalen Schweinereien" funktionieren. Wenn der Messwert genau zwischen zwei Werten liegt, darf er natürlich hin und her zucken, da würde ich dann eine Hysterese o.ä. einbauen. Der STM32H7 ist sowieso gesetzt. Ich weiß auch dass dieser einen eingebauten OpAmp hat, damit möchte ich mich aber nicht beschäftigen (Verbindung mit DAC, nur bestimte Pins etc.). Würde dort lieber einen externen nutzen falls nötig.
Ein externer ADC ist viel einfacher zu betreiben. Bei dem ADC im MC hast Du den Effekt, daß durch die digitalen Ströme der interne GND gegenüber dem GND-Anschluß angehoben ist und auch ständig schwankt. Stell Dir die gemeinsamen GND- und VCC-Pins quasi als Widerstände vor, durch die ständig der digitale Wechselstrom fließt. Einige MCs erlauben deshalb, die CPU während der Wandlung anzuhalten. Der MC hat "three fast 16-bit ADCs", was nochmal ungünstiger ist. Integrierende ADCs (Dual-Slope) können Störungen besser unterdrücken (50/60Hz Unterdrückung).
Einen MAX31865 und die 0,1 Auflösung werden stabil angezeigt. An einem Testaufbau hatte ich mal einen 12 Bit ADC im LPC1549 benutzt, da kam ich mit viel Mittelung auf ca. 1/4 °C. https://www.mouser.de/new/maximic/maxim-max31865-converters/
Hi, über den Max31865 bin ich selbstverständlich auch schon gestolpert. Für 4x (tatsächlich sind es 5 Stück, hatte einen vergessen) Pt1000 bräuchte ich entweder 4 Stück davon oder eben Multiplexer, wobei ich nicht abschätzen kann wie sehr die wieder das Signal verändern... Ich vermute mit OpAmp und integriertem ADC wird 0.1°C stabil angezeigt. Dafür müssten ja nur die ersten 11 Bit korrekt sein, die anderen 5 danach sind egal (150°C/ 2048 < 0.1°C ).
Gerald M. schrieb: > Ich vermute mit OpAmp und integriertem ADC wird 0.1°C stabil angezeigt. Lass den OPV weg. Damit hast Du mehr Probleme als mit ratiometrischer Messung. Wenn Du eine ruhige Anzeige haben willst, dann bilde den Mittelwert über 10, 100 oder meinetwegen 1000 Meßwerte. Der µC wird dabei nur müde gähnen.
m.n. schrieb: > Wenn Du eine ruhige Anzeige haben willst, dann bilde den > Mittelwert über 10, 100 oder meinetwegen 1000 Meßwerte. Der Praktiker würde 16, 256 oder 1024 wählen. Und er würde den ADC per Timer triggern, so daß ein Umlauf 20ms oder Vielfache davon beträgt.
Gerald M. schrieb: > über den Max31865 bin ich selbstverständlich auch schon gestolpert. Für > 4x (tatsächlich sind es 5 Stück, hatte einen vergessen) wer sich einen STM32H7 leisten kann, der kann auch 4x MAX kaufen :) Wenn das ein Projekt in Stückzahl 1 ist, dann ist das nicht der Aufwand. Ich habe noch eine Platine für 4x MAX abzugeben, oder das Layout in Eagle wenn es hilft. Und die Module beim Chinesen sind auch nicht teuer.
Gerald M. schrieb: > weiß jemand was gegen die angehängte Sie funkgioniert nicht, im Gegensatz zur ersten, die aber nicht berechnet war, daher: http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.32 kein gast schrieb: > wieso wird eine externe Ref benötigt? > Ich hatte das damals mal gefragt ob für die vollen 16Bit die interne Ref > ausreichen würde..da wurde mir erzählt das ich offenbar das Prinzip des > eines DS Wandlers nicht verstehen würde..was ich nicht in Frage stelle > ... Wer feagt jetzt eigentlich ? Kein gast = Gerald M. oder kein gast zu blöd um überhaut den richtigen thread zu finden ? Guest schrieb: > Wenn du die maximale Genauigkeit haben willst brauchst du eine externe > Referenz Blödsinn, wenn er ratiometrisch misst, braucht er gar keine Referenz. Guest schrieb: > Wieso wird hier eigentlich schon wieder die 100. Lösung zum Auswerten > von PTs besprochen. Es gibt genügend ICs die genau das machen, > beispielsweise der MAX31865. Wer zu blöd ist, es selbst zu machen, kauft einen Chip, der es für ihn macht. Der STM32H7 ist dermassen überdimensioniert ausgestattet, dass es kein Problem ist, einen Pt1000 über 8k1 an 3V anzuschliessen und die ca. 0.33V besser als 0.1GradC auflösend auf besser als 2 GradC genau zu Messen, ohne OpAmp, ohne SpezialdeppenIC. Und selbst wenn man einen OpAmp einsetzen wollte hat ihn der STM32H7 schon eingebaut, es gibt keinen Grund einen davorzulöten.
MaWin schrieb: > Wer zu blöd ist, es selbst zu machen, kauft einen Chip, der es für ihn > macht. Ich kenne mehr als genug mehr oder weniger aufwendige Arten eine PT auszuwerten und jede davon habe ich schonmal irgendwann eingesetzt und ganz ehrlich der Aufwand lohnt nicht. ICs wie der MAX sind einfach, praktisch und zuverlässig. Mal davon abgesehen das 16 Bit sowas von übertrieben sind.
Peter D. schrieb: > m.n. schrieb: >> Wenn Du eine ruhige Anzeige haben willst, dann bilde den >> Mittelwert über 10, 100 oder meinetwegen 1000 Meßwerte. > > Der Praktiker würde 16, 256 oder 1024 wählen. > Und er würde den ADC per Timer triggern, so daß ein Umlauf 20ms oder > Vielfache davon beträgt. Man nimmt den Wert, den man braucht. 1234 ist auch in Ordnung, weil der µC die Division in ein paar ns erledigt hat. Wenn man den ADC auf ganz langsam einstellt, macht er rund 100000 Messungen/s, deren Ergebnisse man per DMA in den Speicher legt. Und schon wieder einen Timer gespart. Das Einzige, bei dem H7 und z.B. AVR8 gleich schnell sind, ist delay_ms(1000), wenn man es denn unbedingt braucht ;-)
Der Stm32H7 ist natürlich auch aus anderen Gründen gewählt. Der soll noch eine Menge andere Dinge machen als nur ein paar ADC Werte einlesen... Dass ich im µC noch filtern kann ist mir klar. Wenn schon ein FIR Filter mit dem STM32, dann aber kein gleitender Durchschnitt. Ich komme auch aus der AVR-Ecke, bei der man durch Bitschieben usw. alles optimiert hat. Doch Für ein paar Euro mehr bekomme ich eine Floatingpoint-Unit bei der ich z.B. die Regelungen einfach mit den natürlichen Einheiten durchführen kann, anstatt mich mit Fixedpoint-Arithmetik und dadurch entstehende Gains herumzuschlagen. Aber das ist das was ich meinte. Ich weiß dass ich die Werte immer digital hinbiegen kann. Doch am besten würde mir es gefallen wenn schon die Rohdaten verwertbar sind. 5x Max31865 kosten übrigens doppelt so viel wie ein STM32H7. Und wenn ich durch ratiometrische Messung gute Werte hin bekomme, nehme ich natürlich diese. Und wenn ich durch einen OpAmp für 2€ bessere Werte hinbekomme, dann nehme ich eben den. Ich weiß auch dass durch die ratiometrische Messung schon sehr viele Probleme ausgelöscht werden, so dass vermutlich die internen Ströme des STM32 den größten Unsicherheitsfaktor ausmachen. Mit einem OpAmp schlagen diese nicht so stark durch, da das Messsignal 10 mal so groß ist. Dafür hat man andere Effekte (Offset, Rauschen, Abhängigkeit von der Referenzspannung, Nichtlinearitäten etc.). Ich habe lediglich nach Abschätzungen oder am besten Erfahrungen gefragt, ob es sich lohnt einen OpAmp zu nehmen oder nicht. Die Randbedingungen habe ich genannt.
Peter D. schrieb: > Bei dem ADC im MC hast Du den Effekt, daß durch die digitalen Ströme der > interne GND gegenüber dem GND-Anschluß angehoben ist und auch ständig > schwankt. Stell Dir die gemeinsamen GND- und VCC-Pins quasi als > Widerstände vor, durch die ständig der digitale Wechselstrom fließt. > Einige MCs erlauben deshalb, die CPU während der Wandlung anzuhalten. Ganz so schlimm ist es beim STM32H7 nicht, der hat extra Pins für die Analog-Versorgung (auch für AGND).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.