Forum: Mikrocontroller und Digitale Elektronik 0V aus DAC bekommen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von markus (Gast)


Lesenswert?

Hallo zusammen,

ich wollte fragen, wie ich 0V aus dem DAC MCP4922 bekommen kann. Im 
Datenblatt steht ja minimal 0,01V.

Ich möchte die DAC Spannung in einen Spannungsfolger-OP geben, welcher 
einen FET steuert. Das Ganze soll eine elektronische Last geben.
(ähnlich: http://jasper.sikken.nl/electronicload/index.html)

Das Problem mit minimal 0,01V ist, dass das in meinem Fall mindestens 
ca. 35mA Laststrom bedeutet. Das ist mir als minimaler Wert jedoch zu 
hoch.

Jetzt suche ich einen Weg, den „Offset“ des DAC zu entfernen.

Vielen Dank im Voraus für eure Hilfe!

Gruß markus

von m.n. (Gast)


Lesenswert?

markus schrieb:
> Im
> Datenblatt steht ja minimal 0,01V.

Davon würde ich mich nicht irritieren lassen, da diese Einschränkung für 
<= 1 LSB Genauigkeit gilt.

von Noch einer (Gast)


Lesenswert?

Als Spannungsfolger einen Rail-to-rail Opamp mit Low output voltage 
kleiner als 10mV? Gibt es so etwas überhaupt? Da musst du den Offset 
doch sowieso nach dem Spannungsfolger entfernen.

von Georg (Gast)


Lesenswert?

markus schrieb:
> ich wollte fragen, wie ich 0V aus dem DAC MCP4922 bekommen kann.

Wenn du wirklich mit 0V arbeiten willst, solltest du die Hardware auf 
bipolar umstellen.

Georg

von WehOhWeh (Gast)


Lesenswert?

Falls du einen OPV mit dualer Versorgung hast (z.B. +-15V) gibts 
massenweise Schaltungen zur Offsetkompensation. Eine solche kannst du so 
anpassen, dass sie dir bei 10mV am Eingang 0mV am Ausgang bringt.

Bei einem single-Supply-OPV hilft dir das nicht wirklich weiter. Kein 
OPV kann 0V am Ausgang liefern und gleichzeitig Strom treiben, rail2rail 
hin, rail2rail her.

Siehe auch:
http://www.analog.com/media/en/training-seminars/tutorials/MT-035.pdf

Zitat:
"On the other hand, an output stage constructed of CMOS FETs (Figure 7B) 
can provide nearly true rail-to-rail performance, but only under no-load 
conditions."

"only under no load conditions" = praktisch nie

Ich würde der Stromquelle einen Offset verpasssen, so dass sie erst ab 
z.B. 100mV anfängt, Strom zu liefern.

von Falk B. (falk)


Lesenswert?

@ WehOhWeh (Gast)

>"only under no load conditions" = praktisch nie

Eben.

>Ich würde der Stromquelle einen Offset verpasssen, so dass sie erst ab
>z.B. 100mV anfängt, Strom zu liefern.

Genau.

Siehe

https://www.mikrocontroller.net/articles/Konstantstromquelle#Konstantstromquelle_mit_Operationsverst.C3.A4rker_und_Transistor

Einfach einen hochohmigen Widerstand von vielleicht 1M von V+ zum - 
Eingang des OPV. Fertig ist der Offset.

von Der Andere (Gast)


Lesenswert?

markus schrieb:
> Das Problem mit minimal 0,01V ist, dass das in meinem Fall mindestens
> ca. 35mA Laststrom bedeutet. Das ist mir als minimaler Wert jedoch zu
> hoch.

Was ist dein maximaler Wert? 5A, 10A?
Das ist dann im mA Bereich eh nicht mehr genau wegen Offsets der Ops, 
incl temperaturabhängigkeit, der kleinen Spannungen am 
Temperatusmessshunt incl . den Thermospannungen im Aufbau etc. pp.
Insofern hast du da ganz andere Probleme.
Zur Lösung evt. darüber nachdenken, ob man den Bereich umschaltbar 
macht, denn dass deine KSQ über 3 oder mehr Dekaden genau ist ist eh 
Wunschdenken.

von Der Andere (Gast)


Lesenswert?

Der Andere schrieb:
> Temperatusmessshunt

Soll natürlich Strommessshunt heissen, sorry.

von m.n. (Gast)


Lesenswert?

WehOhWeh schrieb:
> "only under no load conditions" = praktisch nie

Das stimmt doch garnicht ;-)
Mit einem 1k Widerstand am Ausgang gegen GND kann ein R2R-OPV durchaus 
0,000x V liefern. Nur nicht gleichermaßen auch volle VCC-Spannung.

von Michael B. (laberkopp)


Lesenswert?

markus schrieb:
> Das Problem mit minimal 0,01V ist, dass das in meinem Fall mindestens
> ca. 35mA Laststrom bedeutet. Das ist mir als minimaler Wert jedoch zu
> hoch.

Also braucht du eine leicht negative Spannung an GND des DAC bezüglich 
GND des shunts.

von markus (Gast)


Lesenswert?

Leute vielen Dank für die Antworten! Ich kam gestern gar nicht dazu 
einem zu antworten, da kommt schon die nächste Antwort!

@ m.n.:
Heißt das, ich kann bereits ab 0V die Ausgangsspannung um 1 LSB 
schrittweise erhöhen?

Dann verstehe die Aussage im Datenblatt nicht ganz...

Kannst du mich bitte aufklären? :D

Vielen Dank im Voraus!

@ Noch einer:
Der LTC6246, welchen ich verwenden möchte hat einen Input Offset von 
typ. 50µV. Diesen wollte ich mit einer Split Supply betreiben. Laut 
Simulation reicht mir das so aus. Das funktioniert aber eben nur, wenn 
ich auch 0V aus dem DAC bekommen kann.
Ich werde jedoch sicherheitshalber eine Offsetkompensation für den OP 
eindesignen.

@ Georg:
Meinst du bipolare Versorgung nur für den OP oder auch andere 
Schaltungsteile?

@ WehOhWeh:
Genau, deshalb die Split Supply Variante!

@ Falk Brunner:
Ich könnte den Offset auch mit einem zweiten DAC Ausgang einstellen oder 
spricht etwas dagegen? Ich müsste vorher jedoch vorher noch genauer die 
Einwirkung der externen Spannung auf den Offset verstehen.

@ Der Andere:
Der Maximalstrom sollte ca. 8-10A betragen. Die Referenz für den ADC und 
DAC ist ADR380 (0,24%).
Denkst du das klappt so nicht mit  einer Genauigkeit von ±1%?
Ich werde mir das anschauen und wenn es nicht ausreicht, werde ich eine 
Umschaltung von 0-5A und 0-10A einplanen müssen.

@ Michael Bertrandt:
Theoretisch wäre es ja kein Problem diese zu erzeugen. Wenn es damit 
möglich wäre, dass der DAC tatsächlich auf 0V runter kommt, wäre das 
wahrscheinlich die einfachste Variante!
Geht das denn so?

Viele Grüße!

von m.n. (Gast)


Lesenswert?

m.n. schrieb:
> markus schrieb:
>> Im
>> Datenblatt steht ja minimal 0,01V.
>
> Davon würde ich mich nicht irritieren lassen, da diese Einschränkung für
> <= 1 LSB Genauigkeit gilt.

Das ist doch deutlich, obwohl Du das so interpretierst, als ob am 
DAC-Ausgang ein Offset von 10 mV stehen bleiben würde.
Der Ausgangsoffset ist laut Datenblatt "+/- 0,02% of FS Code = 0x000".

Noch einmal anders betrachtet: der 12-Bit DAC ist spezifiziert für Vref 
= 2,048 V, wobei ein LSB 0,5 mV entspricht. Mit dem angegebenen 
Offsetfehler mögen beim Code 0x000 1 mV am Ausgang anliegen, aber nicht 
mehr.

Ich hatte mal den MCP4822 verwendet, der im Gegensatz zum MCP4922 über 
eine interne Vref verfügt: keinerlei Probleme mit Nullpunkt oder FS!

von MaWin (Gast)


Lesenswert?

m.n. schrieb:
> WehOhWeh schrieb:
> "only under no load conditions" = praktisch nie
>
> Das stimmt doch garnicht ;-)
> Mit einem 1k Widerstand am Ausgang gegen GND kann ein R2R-OPV durchaus
> 0,000x V liefern. Nur nicht gleichermaßen auch volle VCC-Spannung.

0.01V an 1k sind 10uA, so viel Leckstrom muss der Ausgangstransistor 
nach VCC nicht haben, aber 1uA ist nicht unrealistisch. Mit 1k kommt man 
also nicht unter 0.001V. Vonwegen 0.000x, m.n. hat mal wieder nicht 
nachgedacht und nicht nachgerechnet aber behauptet munter
seine Schwurbeleien.

von m.n. (Gast)


Angehängte Dateien:

Lesenswert?

Bei einem fliegenden Aufbau mit Arduino + MCP4822 habe ich Spannungen im 
Bereich 0 - 20 mV in 5er Schritten ausgeben lassen. Vref = 2,048 V 
2-fache Verstärkung für Ausgangsbereich 0 - 4,095 V.

Zum Bild: die gestrichelte Linie ist der eff. Nullpunkt, der durch 
Masseschleifen etwas verschoben ist. Der Wert für 0 liegt etwas über dem 
Nullpunkt (ein Multimeter sagt 1,3 mV); ansonsten liegen die weiteren 
Stufen im 5 mV Raster.

Egal, wie man es anstellt, auch durch eine Offseteinstellung bekommt man 
den 'Knick' in der Kennlinie nicht weg. Wenn die Einstellzeit länger 
sein darf, der Endwert (abhängig von Vref) nicht so kritisch ist und die 
Werte um den Nullpunkt herum sehr genau sein sollen, wäre ein 
gefiltertes PWM-Signal eine gute Lösung.

Alternativ könnte man auch 0xfff als Nullpunkt festlegen und die 
Ausgangsspannung invertiert erzeugen. Bei Vcc = 5 V und U0 = 4,095 liegt 
der Ausgangspegel weit genug von der Versorgungsspannung weg.

von Der Andere (Gast)


Lesenswert?

markus schrieb:
> @ Der Andere:
> Der Maximalstrom sollte ca. 8-10A betragen. Die Referenz für den ADC und
> DAC ist ADR380 (0,24%).
> Denkst du das klappt so nicht mit  einer Genauigkeit von ±1%?
> Ich werde mir das anschauen und wenn es nicht ausreicht, werde ich eine
> Umschaltung von 0-5A und 0-10A einplanen müssen.

Und du hast Bedenken wegen 35mA?
ist deine analoge Schaltung denn auch so genau? 35mA bei 10A sind 0,4%. 
Du hast also überall 0,1% Widerstände und der Shunt ist auch 0,1% mit 
einem niedrigen Tk?

Wenn du eine Umschaltung einplanst, dann mach eine mit 2 Bereichen 1-10A 
und 0-1A. Dann hast du auch das Problem nicht mehr dass der kleine D/A 
Offset gleich so viel Strom bedeutet.

von Der Andere (Gast)


Lesenswert?

Der Andere schrieb:
> 1-10A

Soll natürlich 0-10A heissen

von Georg (Gast)


Lesenswert?

markus schrieb:
> @ Georg:
> Meinst du bipolare Versorgung nur für den OP oder auch andere
> Schaltungsteile?

Eine Spannung und rail-to-rail ist immer nur eine Notlösung, die eben 
nicht 100%ig funktioniert, sondern nur annähernd. Wenn +-5V oder mehr 
zur Verfügung stehen, besteht kein Grund diese Versorgung nicht generell 
zu benutzen. Auch für einen DAC ist das natürlich besser, wenn er 0V 
ausgeben soll.

Bei einem ADC ist das anders, denn man kann Eingänge ausserhalb der 
Versorgung betreiben, Ausgänge aber nicht, wenn sie Ströme > Null 
liefern sollen (und was kann man schon mit 0 Strom anfangen?).

Georg

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]
  • [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.