Die einstellbare Präzisionspannungquelle soll folgendes leisten: 0-10mV in 0,1mV Schritten 0-100mV in 1mV Schritten 0-1000mV in 10mV Schritten Zum Einstellen würde ich mir eine up/down-Bedienung mit zwei Tastern wünschen, die vielleicht bei längerem Tastendruck etwas zügiger selbständig durchschalten. Zur Auswahl der Modi das gleiche mit einem Taster (evtl. mit zwei, um die zwei nicht aktiven direkt anwählen zu können). Für jeden Modus wird ein Schaltausgang benötigt, um die Hardwarebeschaltung außen auch in einen anderen Modus umzuschalten. Die Technischen Parameter, die mindestens erfüllt werden sollten: Einregelzeit/Einschwingzeit: <1sec Frequenz: <1Hz (keine Wechselspannung, nur Gleichspannung) Grundgenauigkeit: 10% Genauigkeitsdrift: 1% (1min), 10% (10h) Ripple: 1% Vpp vom eingestellten Wert, wobei ich da nicht sicher bin, ob das erreichbar ist alleine aufgrund des Rauschens. Belastung: Eingang OPV (OP07 bzw. äquivalent), also im Bereich > 33MOhm, < 100nA Ist sowas im Rahmen von insgesamt unter 15 Eur für drei Stück realisierbar (arbeiten alle drei in einem Gerät und müssen nicht unabhängig sein)? Die Ausgangsspannung kann auch fest im Bereich von 0-1000mV sein, dann muß die Spannung halt über einen Widerstandsteiler runtergeteilt werden, dann ist allerding die Belastung etwa 1000fach, also 100µA bzw. 33kOhm. Würde mich über ausführliche Informationen aber auch Links freuen.
"Präzisionsspannungsquelle" würde ich bei den geforderten Daten nicht gleich dazu sagen :-) Wenn du mit 15 die reinen Bauteilkosten meinst, ist das kein Problem. ATMega8, an den PWM-Ausgang einen Tiefpass, der macht dir eine Gleichspannung 0-5V. Daran einen OP als Spannungsfolger, an dessen Ausgang einen Spannungsteiler, der dir die 5V die benötigten Spannungen teilt, leicht zu berechnen. An die einzelnen Abgriffe wieder je einen OP als Spannungsfolger, fertig. Etwas bessere OPs verwenden, dann hast du auch kein Offsetproblem. Also einen MC und einen 4fach-OP, dazu etwas Hühnerfutter.
Danke für die Antwort, also ist es ohne Probleme möglich mit der Genauigkeit? Was wäre denn in deinem Begriff eine Präzisionsspannungsquelle? Welche Genauigkeiten erreicht man denn auf diese Weise, wenn wir mal die OPVs weglassen und nur das PWM-Signal betrachten? Wie sollte das RC-Glied Dimensioniert sein? Was sind für dich etwas bessere OPVs? Gibts dazu genaueres im Netz?
Soso...naja...,
>0-10mV in 0,1mV Schritten
Das ist eine Schrittweite von 1%. Da ist nichts gegen zu sagen.
Aber was soll die Grundgenauigkeit von 10%, bzw. Drift von 1%(10%)?
1% Grundgenauigkeit und 10% zul. Drift ist für mich keine Präzision. Was aber Präzision genau ist, kann man nicht pauschal sagen, es muss einfach der gestellten Anforderung genügen.
Grundgenauigkeit im Sinne von zulässige Abweichung jedes Wertes von max 10%. z.B. bei eingestellten 0,1mV, darf die Spannung dann zwischen 0,09 und 0,11 liegen. Drift über der Zeit, also wenn ich 1mV einstelle, dann darf die Spannung innerhalb einer Minute bis auf 0,99mV fallen bzw. 1,01mV steigen. Ok, ich beschreib mal mit Worten, was ich haben will: Eine einstellbare Gleichspannungsquelle, die innerhalb von 1min ihren Wert um nicht mehr als 1% verändert (unter allen Betriebsbedingungen, da fällt auch der Ripple drunter) und bei der ich die oben angegebenen Schritte bzw. Spannungen einstellen kann, die nicht mehr als 10% vom eingestellten Wert abweichen sollen. Die Spannung ist als Sollwert für einen "guten" OPV gedacht, der als Spannungsfolger arbeitet und damit einen Istwert regelt.
Die Genauigkeit einer PWM Loesung haengt von der Genaueigkeit ihrer Betriebsspannung ab. Ausserdem natuerlich noch vom notwendigen Filter der die PWM-Frequenz rausfiltert. .-) Eine andere Loesung waere die Verwendung eines externen DA-Wandlers dem man eine entsprechend genaue Bandgap-Referenz gibt. Olaf
Würde ja auch gehen, wenn man eine gute Referenzspannung nimmt und die mit einem Transistor mit einer extrem schnellen Schaltzeit schaltet, oder? Was käme also in Frage? Natürlich hätte ich auch nichts gegen nen guten AD-Wandler, aber ich fürchte, der sprengt den preislichen Rahmen, oder?
Keiner eine Ahnung? Keine Beispiele? Keine Links? Oder Erfahrungen mit sowas? Schade, aber an all die Bemühten ein dickes Dankeschön!
Erfahrung mit PWM+Glätten: Für Lüfters/Motoren OK, allerdings für "genaue" spannungsquellen im mV bereich absolut untauglich ! Ich würd dir da eher zu nem DAC raten. ein R2R netzwerk wird auch sicher zu ungenau sein.
du solltest deine Erfahrungen erweitern..., mir schient, da ist noch Bedarf :-)
Wenn jemand zu viel Geld hat, dann kann er ja ein R2R-Netzwerk aus Trimmern aufbauen! Das kann dann jeder mit seinem Messgerät auf seine Wünsche hin ausmessen! Des einzige Problem dabei is dann, das der Trimmer en Haufen Geld kostet und kein bezahlbares Voltmeter hat ne Genauigkeit unter 1% (MB) ... ;)
Schön, welcher DAC kommt denn in Frage? Irgendwie hab ich das Gefühl keiner kann wirklich was konkretes sagen... Und die letzten beiden Posts zeugen nicht gerade von dem Versuch was zum Thema beizutragen, nicht für ungut...
>>
ATMega8, an den PWM-Ausgang einen Tiefpass, der macht dir eine
Gleichspannung 0-5V.
Daran einen OP als Spannungsfolger, an dessen Ausgang einen
Spannungsteiler, der dir die 5V die benötigten Spannungen teilt,
leicht
zu berechnen. An die einzelnen Abgriffe wieder je einen OP als
Spannungsfolger, fertig. Etwas bessere OPs verwenden, dann hast du
auch
kein Offsetproblem. Also einen MC und einen 4fach-OP, dazu etwas
Hühnerfutter.
<<
Das ist die billigste und beste Lösung. Sie ist sozusagen am
optimalstesten.
@Michael Dittrich: Wenn Du einen DAC verwenden willst, reicht so ziemlich jeder beliebige mit 8 Bit, da Du ja nur 100 Schritte brauchst. Aber die PWM-Lösung hat die gleiche Auflösung (bei einem AVR). Bei beiden Lösungen kannst Du sogar noch eine Eich-Tabelle im Controller hinterlegen, für jeden Deiner 100 Werte steht der entsprechende PWM-Wert drinn. So kannst Du sämtliche Nicht-Linearitäten in Deinem Tiefpass-Filter und Spannungsfolger inkl. der Bauteiltoleranzen ausgleichen. Musst nur einmal alle 100 Werte ausmessen und abspeicher, eben eichen. Am besten über eine Art zweite Bedienebene, oder ein separates Eich-Programm für den Mikrocontroller. Falls die Versorgunsspannung der Microcontrollers zu ungenau ist, verwende einfach eine beliebige andere Spannungreferenz (die muss nichtmal extra teuer sein, bei dieser Auflösung und geforderten Genauigkeit). Dann gehst Du mit dem PWM-Signal der Controllers auf einen Fet der die Spannung der Referenz auf einen Filter schaltet. Ansonsten ist hier wirklich schon alles gesagt worden.
zur PWM: eine Auflösung von 10mV entspricht einem Tastgrad von 1%!! Wie soll den das Tiefpass-Filter aussehen, um einen Ripple kleiner als 1mV zubekommen?
Grob gerechnet: PWM 0-5V, Teiler auf 0-1V 10bit-PWM, rechnen wir einfach mal mit 1000, entspricht 5mV/Schritt im 5V-Signal, nach dem Teiler 1mV/Schritt. Ist das alles so schwer zu verstehen??
Ich glaube, Norbert meint etwas anderes: die Dimensionierung vom Tiefpass selbst. Grob gerechnet: CPU 16MHz, PWM mit 100 Stufen ergibt ein Ausgangssignal von 80Khz mit 5V Amplitude. Um 0,1% Ripple zu erreichen, müssen diese 80KHz um 60dB gedämpft werden. Ein RC-Tiefpass (1. Ordnung mit 20dB/Dekade) liefert diese Dämpfung bei 80Hz Grenzfrequenz. Da die Einschwingzeit größer sein darf, kann die Grenzfrequenz weiter gesenkt werden. Eleganter sind jedoch Filter 2. Ordnung, die doppelte Dämpfung liefern. Im einfachsten Fall schaltet man zwei RC-Tiefpässe direkt nacheinander; das ist zwar 'Fusch', da die Grenzfrequenz nicht mehr stimmt, für PWM-Filterung ist das aber 'Wurscht'. Wer es genau mag, sieht im Tietze/Schenk nach. Dort findet man u.a. einen Bessel-Tiefpass 3. Ordnung, der hohe Dämpfung und schnelle Einstellzeit ermöglicht - auch, wenn die PWM-Auflösung höher gewählt wird und die PWM-Frequenz entsprechend sinkt. Hier ist der Aufwand nicht nötig; 100k und 100nF sollten als Richtwerte brauchbar sein.
Wow, das sind ja mal seh hilfreiche Antworten, danke euch Michaels! Bessel-Tiefpass hab ich schon mal gehört, aber von der Berechnung solcher Filter hab ich noch keinen Plan, aber wenn du sagst, im Tietze-Schenk steht sowas ausführlich beschrieben, dann werde ich mir den bei Gelegenheit mal in unserer FH-Bibliothek reinpfeiffen. Also du bist sicher, das es möglich ist, selbst bei einem Tastgrad von unter 1% einen Ripple von unter 1% der Spannung am Ausgang so einfach hinzubekommen? Ist die Ausgangsspannung nicht auch noch von der Belastung abhängig, oder ist das bei einem OPV unkritisch (bezüglich Änderung des Eingangsstromes/-spannung)? Der Wechselspannungswiderstand ist ja wesentlich kleiner als der Gleichspannungswiderstand und das würde ja heißen, der Eingang ändert halt je nach angelegtem Signal auch seinen Widerstand oder ist das unkritisch? Werde das dann mal mit einer Hardware-PWM versuchen und berichten. Als Alternative steht ja noch der DAC im Raum, also ist jeder billig-DAC dafür geeignet mit 8 bit, ich brauch ja dann im Prinzip nur 7 bit, oder? Referenzspannung wären ja im Prinzip 1,28V ideal, son LM385 hat 1,25V sollte also gehen, ist eine Abweichung von 2,4%, also im Rahmen dessen, was ich haben will. Bei einigen billigen DACs steht etwas von +-2LSB, das wäre dann aber schon zu viel, oder? Bei 0-1000mV in 10mV Schritten würde das ja z.B. bedeuten 10mV +-10mV, also 0-20mV und somit weit über 10% Abweichung. Oder ist dieser Wert auf den Endwert bezogen? Weil so wie im Beispiel wären die Dinger ja sehr ungenau, oder? Vielleicht kann jemand zu den Genauigkeiten bei DACs was sagen oder vielleicht einen Verweis, wo man darüber etwas findet. Hab zwar schon etwas gesucht, aber nichts brauchbares dazu gefunden, ehrlich gesagt ist es auch nicht einfach, wonach man suchen soll, also für Tips diesbezüglich wäre ich dankbar.
Bedank Dich in 1. Linie bei crazy horse, der schon alles gesagt hatte. Und dann grübel nicht weiter, sondern mach es einfach !!!
Habe ich bereits oben :-) Ich weiß es heißt probieren geht über studieren, aber ich denk lieber 3x drüber nach, als mich nachher 3x drüber zu ärgern, wenns dann nicht klappt. Und da ich noch keine Erfahrungen mit µCs und ADC/DAC habe, wollte ich mich halt mal schlau machen und nicht gleich ins kalte Wasser springen. Ehe ich ewig dranrumdoktor, bis mir dann jemand sagt, das kann so eh nicht gehen und ich womöglich noch zum Mörder werde :-) Beim Coden hab ich jemand an der Hand, der schon ein wenig Erfahrung hat, zwar nicht mit dem ATMega8, aber mit anderen µCs. Er ist auch sehr interessiert daran, den kennenzulernen, hat nur leider auch noch keine bzw. sehr wenig Erfahrung was ADC/DAC angeht. Ich brauche ja keine fertige Lösung (wäre aber nicht abgeneigt, wenns eine mir bekannte gäbe), mir gehts ja darum auszuloten, was sinnvoll ist und jemand mit viel Erfahrung in dem Bereich mich in die richtige Richtung lenkt und vielleicht auch die Problematiken dabei mal anspricht.
Manche AVRs haben z.B. eine interne PLL und erzeugen damit 64 MHz um den PWM-Zähler damit zu betreiben. Das ergibt dann eine PWM-Frequenz bei 8 Bit Auflösung von 256 kHz. Bei diesen Frequenzen macht der Tiefpass auch keine Probleme mehr.
Aber der MEga8 nicht, oder? Welche haben das denn, die noch im preislichen Rahmen sind?
"1% Grundgenauigkeit und 10% zul. Drift ist für mich keine Präzision." Genau. Daher kann man das mit einem guten AD-Wandler und digialer Ansteuerung lösen. Die Gesamtbetrachtung liefert : 0-1000mV, bei 1% Genauigkeit. Bezieht man diesen auf den kleinsten Bereich von 0,1mV (0-10mV, erste Schaltstufe), so ergibt sich eine Genauigkeit von 0,001mV. Das wäre eine Genauigkeit von 1µV und einem Dynamikumfang von 60db (1.000.000). Es wird aber schwieg weges des Rauschens auf dem Board. Möglich wäre aber ein passender Präzisionsspannungsteiler von 1:10, den man dem Ausgang nachschatet und der von einem Bit gestseurt geschaltet wird. Damit könnte man mit nur 10 Bit (1000) und 4 Bit (10 Stufen) den AD-Wander ansteuern. Andererseits: Wenn nur eine geringe Grenzfrequenz benötigt wird, lässt sich das mit einer PWM machen. Beispiel siehe oben. Es sit aber nötig den erzielten Ausgang zu regeln. Ich würde die Regelschleife über den belasteten Ausgang aufbauen, sodaß ein vergleichsweise schneller OP diesen Pin auf die von vorn eingestellte Spannung regelt. Dies erfolgt per programmierter PWM mit passendem Tiefpass wie oben. Zusätzlich benötigt man aber auch noch eine Driftkorrektur: Ich würde mit dem Controller die am Ausgang des lezten OPs eingestellte Spannung über einen Tiefpass messen und wieder in den uC einlesen. kommt es infolge von mangelnder Gleichtaktunterdrückung oder Drift des OP zu einem langfristigen Spannungsdrift, so wird der uV dies mitbekommen und kann LANGSAM mit niedriger GF seine PWM etwas anpassen.
Vielen Dank für die Ausführungen, ich werds dann mal austesten. Ist ein ADC von einem µC ausreichend genau für die Driftkorrektur? Oder sollte man den vielleicht wegdriften lassen, weil die Abweichung geringer wäre als die des ADC? Natürlich vorausgesetzt man verwendet einen guten OPV, was ist denn von einem OP07 zu halten?
Wie wäre es denn mit oben angehängten Teilen ? Die Toleranzen lassen sich doch "rausrechnen" oder mit entsprechender Beschaltung "verfeinern".
Hallo, OP07 halte ich bei richtiger Beschaltung für geeignet. Die Toleranz und Temperaturdrift der Widerstände dürften mehr ins Gewicht fallen als die Ungenauigkeit des OPV. OP27 ist dann der nächst bessere. Gruß
Naja, Widerstände mit 0,1% Toleranz und Temperaturkoeffizient im Bereich von 10E-5 sollten wohl ausreichend sein und die Toleranzen klein halten, oder?
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.