mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Präzisionsspannungsquelle mit mindestens 100 Abstufungen


Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"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.

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Norbert aus E. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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%)?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

bischen teuer LTC1257, aber 12bit aufloesung.

Mfg

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keiner eine Ahnung? Keine Beispiele? Keine Links? Oder Erfahrungen mit
sowas?
Schade, aber an all die Bemühten ein dickes Dankeschön!

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist alles gesagt.

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du solltest deine Erfahrungen erweitern..., mir schient, da ist noch
Bedarf :-)

Autor: Hannes Hering (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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) ... ;)

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>
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.

Autor: Michael /(ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Norbert aus E. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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??

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bedank Dich in 1. Linie bei crazy horse, der schon alles gesagt hatte.
Und dann grübel nicht weiter, sondern mach es einfach !!!

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael (ein anderer) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber der MEga8 nicht, oder?
Welche haben das denn, die noch im preislichen Rahmen sind?

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"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.

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Wolle (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es denn mit oben angehängten Teilen ?
Die Toleranzen lassen sich doch "rausrechnen" oder mit entsprechender
Beschaltung "verfeinern".

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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ß

Autor: Michael Dittrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, Widerstände mit 0,1% Toleranz und Temperaturkoeffizient im Bereich
von 10E-5 sollten wohl ausreichend sein und die Toleranzen klein halten,
oder?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.