Hallo allerseits, in einer Schaltung benötige ich eine Ausgangsspannung von 0,00 bis 6,50 V, regelbar durch einen Mikrocontroller. Die Genauigkeit soll 10mV (+/- 5mV) betragen, die Strombelastbarkeit 100 mA. Frequenz ist unkritisch (1 Hz), Anstiegszeit ebenfalls (FullScale 500ms). Negative Versorgungsspannung wäre vorhanden. Ich hab mir die Lösung bisher so vorgestellt: Controller -> DA-Wandler -> OPV Der OPV dient als Ausgangstreiber und ggf. Verstärker. Als DA-Wandler hab ich mir den LTC1257 angeschaut. Hat im ersten Moment völlig ausreichende 12 Bit Auflösung und mit der internen V_Ref (2,048V) gute 500µV Genauigkeit (die natürlich durch den OPV, der dann mit Verstärkung=4 arbeiten muss, wieder verschlechtert wird). Das Problem bei dem IC ist aber, dass die interne V_Ref schon um 40mV schwanken kann! Damit liege ich ja jenseits von Gut und Böse, erst Recht nach der Verstärkung durch den OPV (-> 160mV)! Außerdem kann der Offsetfehler des DA-Wandlers bis zu 8 LSB (also 4mV) betragen. Das ist leider ebenfalls zu ungenau (4 x 4mV = 16mV). Gehe ich aber recht in der Annahme, dass ich diesen Fehler durch meinen OPV wieder ausbügeln kann? Indem ich eine Offset-Korrektur einbaue? Könnt ihr mir kurz Rückmeldung geben, ob meine Überlegungen soweit richtig sind? Oder gibt es einen anderen Ansatz, meine Vorgaben zu erfüllen? Wie würdet ihr an das Thema herangehen? Falls Ansatz und Überlegungen ok sind, würde ich mich freuen, wenn mir jemand einen passenden DA-Wandler nennen könnte! Er muss aber unbedingt bei Reichelt o.ä. beziehbar sein. Grüße Steffen
Karl, bin kein D/A-Wandler Spezialist aber eine Referenzspannungschwankung von von 40mV kliengt erstmal nicht viel. Das wären, wenn ich richtig rechne 2%. Vielleicht solltest Du eine externe Referenzspannung verwenden mit einer grösseren Genauigkeit. Es gibt dafür spezielle ICs. Zum Beispiel der TL431BID. Gruß, Karl
@ Steffen Hausinger (Gast) >in einer Schaltung benötige ich eine Ausgangsspannung von 0,00 bis 6,50 >V, regelbar durch einen Mikrocontroller. Die Genauigkeit soll 10mV (+/- >5mV) betragen, Hmm, das könnte ein 12 Bit DA-Wandler schaffen. > die Strombelastbarkeit 100 mA. Ist schon ganz ordentlich. >Controller -> DA-Wandler -> OPV >Der OPV dient als Ausgangstreiber und ggf. Verstärker. Geht einfacher. http://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM >bei dem IC ist aber, dass die interne V_Ref schon um 40mV schwanken >kann! Damit liege ich ja jenseits von Gut und Böse, erst Recht nach der >Verstärkung durch den OPV (-> 160mV)! Was meinst du mit schwanken? Herstellertoleranz? Temperaturdrift? >Außerdem kann der Offsetfehler des DA-Wandlers bis zu 8 LSB (also 4mV) >betragen. Das ist leider ebenfalls zu ungenau (4 x 4mV = 16mV). Gehe ich >aber recht in der Annahme, dass ich diesen Fehler durch meinen OPV >wieder ausbügeln kann? Indem ich eine Offset-Korrektur einbaue? Ja. MfG Falk
Hallo ihr beiden @Adam: 40mV klingen für mich auch erstmal nicht viel. Aber ich benötige eine Genauigkeit von 10mV und dann ist so eine Abweichung natürlich inakzeptabel. Ich habe mich heute Nachmittag auch schon in Referenzspannungsquellen eingelesen. Der LT1021C-5 scheint interessant zu sein. Er geht, sogar unkalibriert, bei 5V auf +/- 2,5mV genau. @Falk: Falls die 12Bit nicht ausreichen, würde es vom LTC1257 zur Not sogar noch eine pinkompatible 16Bit Version geben. Mit PWM werde ich aber bei meinen Vorgaben nicht weiter kommen. Denn ein einfacher Tiefpaß zur Glättung genügt da nicht (selbst mit f_grenz = einige Hz). Aber es spricht ja auch nichts gegen einen eigenen A/D-Wandler. Mit Schwanken meinte ich die Toleranz des LTC1257. Die Referenzspannung wird zwischen 2,028 und 2,068V angegeben. Oder ist das ein bauteilabhängiger Wert, der sich während des Betriebs nicht ändern wird? Wo Du jetzt nachfragst, scheint mir das fast so... @All: Wie ist das denn mit dem OPV - hat der keine Verzerrung? Oder kann ich die vernachlässigen? Also wenn ich meinen Spannungsteiler für v=4 dimensioniere, behält er diesen Faktor dann bei U_e=0,12V genauso wie bei U_e=3,45V (Phantasiewerte, aber entsprechend hohe Versorgunsspannung +/- vorausgesetzt)? In den Datenblättern ist leider nur die Verzerrung für höhere Frequenzen angegeben, bei meiner Schaltung gilt aber f~1Hz. Steffen
@ Steffen Hausinger (Gast) >noch eine pinkompatible 16Bit Version geben. Mit PWM werde ich aber bei >meinen Vorgaben nicht weiter kommen. Denn ein einfacher Tiefpaß zur >Glättung genügt da nicht (selbst mit f_grenz = einige Hz). Aber es Dann nimm einen doppelten oder dreifachen Tiefpass. >spricht ja auch nichts gegen einen eigenen A/D-Wandler. Doch. Kosten, Platz und Aufwand. >Mit Schwanken meinte ich die Toleranz des LTC1257. Die Referenzspannung >wird zwischen 2,028 und 2,068V angegeben. Oder ist das ein >bauteilabhängiger Wert, der sich während des Betriebs nicht ändern wird? >Wo Du jetzt nachfragst, scheint mir das fast so... Es ist so. http://www.linear.com/pc/productDetail.jsp?navId=H0,C1,C1155,C1005,C1156,P1425 >Wie ist das denn mit dem OPV - hat der keine Verzerrung? Oder kann ich ;-) Der OPV hat auch Fehler. Im wesentlichen Offset und Verstärkung, bestimmt durch die beiden Widerstände. Beides muss man letztendlich kalibrieren und kompensieren. Damit sind die Fehler des DAC auch kompensierbar. Bleibt nur naoch die Temperaturdrift. Für den DAc steht die im Datenblatt, bei den OPVs auch. Womit aber wider PWM sinnvoll ist, denn die muss auch kalibriert werden, kostet aber fast nix. >die vernachlässigen? Also wenn ich meinen Spannungsteiler für v=4 >dimensioniere, behält er diesen Faktor dann bei U_e=0,12V genauso wie >bei U_e=3,45V (Phantasiewerte, aber entsprechend hohe Versorgunsspannung Ja. >+/- vorausgesetzt)? In den Datenblättern ist leider nur die Verzerrung >für höhere Frequenzen angegeben, bei meiner Schaltung gilt aber f~1Hz. Das ist praktisch statischer Betrieb. MfG Falk
Hallo Falk, ok, ich hab's mal ausgerechnet. Schätzungsweise ab der 3. Ordnung eines idealen TP wirds interessant. Aber - wie genau kann ich meine PWM denn machen? Die Spannungsversorgung ist ungenau (Referenz nötig!) und damit auch der Ausgangspegel. Und über einen Temperaturdrift kann ich beim Mega auch nichts finden. Im Prinzip also die gleichen Themen wie beim D/A-Wandler - nur ist der in dieser Hinsicht optimiert. Also nochmal zum LTC1257. Ich habe mir folgenden maximalen Fehler ausgerechnet: DNL - 0,5 LSB INL - 3,5 LSB Offset TC - 0,066 LSB/K Gain TC - 0,02 LSB/K Macht bei einem angenommen Temperaturbereich von 10..40°C einen Fehler von maximal 6,58 LSB = 3,29 mV (@V_Ref = 2,048 V) => 13,16 mV hinterm OPV (v=4). Das ist leider ein bißchen viel. Gibt's da nicht einen genaueren ADC? Oder gibt's eine Möglichkeit, die INL auszugleichen? Wenn die DNL wie hier 0,5 LSB ist, dann müsste man sie doch über eine Tabelle im µC auch auf 0,5 LSB verringern können. Einzelne (Digital-)Werte werden dann eben doppelt verwendet/übersprungen. Oder? Steffen
@ Steffen Hausinger (Gast) >ok, ich hab's mal ausgerechnet. Schätzungsweise ab der 3. Ordnung eines >idealen TP wirds interessant. Na also, wir bewegen uns in die richtige Richtung. > Aber - wie genau kann ich meine PWM denn >machen? PWM ist prinzipiell sehr genau. > Die Spannungsversorgung ist ungenau (Referenz nötig!) und damit >auch der Ausgangspegel. Richtig, wird aber soweiso kalibriert. > Und über einen Temperaturdrift kann ich beim >Mega auch nichts finden. Hat der praktisch nicht. Der Ausgang ist digital, der schaltet immer die volle Spannung durch. Einzig die temperaturdrift der Spannungsversorgung speilt da eine Rolle. > Im Prinzip also die gleichen Themen wie beim >D/A-Wandler Nö. - nur ist der in dieser Hinsicht optimiert. Also nochmal zum LTC1257. Ich habe mir folgenden maximalen Fehler ausgerechnet: >DNL - 0,5 LSB >INL - 3,5 LSB >Offset TC - 0,066 LSB/K >Gain TC - 0,02 LSB/K >Macht bei einem angenommen Temperaturbereich von 10..40°C einen Fehler >von maximal 6,58 LSB = 3,29 mV (@V_Ref = 2,048 V) => 13,16 mV hinterm >OPV (v=4). 25C +/-15C -> Offset 1 LSB -> Gain 0,3LSB Macht in Summe 1,3 LSB = 0,65mV = 2,6mV am Ausgang.Passt doch. DNL ist statisch und wird durch die Kalibrierung eliminiert. >Das ist leider ein bißchen viel. Gibt's da nicht einen genaueren ADC? Die gibt es immer. Die Frage ist wo, zu welchem Preis und ob sie für Bastler verfügbar sind. >Oder gibt's eine Möglichkeit, die INL auszugleichen? Wenn die DNL wie Neuen DAC bauen ;-) >hier 0,5 LSB ist, dann müsste man sie doch über eine Tabelle im µC auch >auf 0,5 LSB verringern können. Einzelne (Digital-)Werte werden dann eben >doppelt verwendet/übersprungen. Oder? Im Prinzip ja. Das wird bei der Kalibrierung aber sowieso eliminiert. Mein Tip. Entweder PWM oder den LTC1257. Mit Kalibrierung erreichst du deine Werte sehr gut. MFG Falk
Hallo Falk, Zur PWM: Mein µC schafft eine 16Bit PWM, das ist wirklich mehr als ausreichend. Alternativ kann ich den Timer auch als 10Bit laufen, erhöhe dadurch die Frequenz und kann den nachgeschalteten Tiefpass besser aufbauen. Soweit ist noch alles in Butter. Aber wie soll ich denn die Spannungsversorgung kalibrieren? Dafür bleibt mir ja nichts anderes übrig, als eine Referenzspannungsquelle zur Versorgung zu nehmen. Denn der Standard 7805, den ich bis jetzt eingeplant habe, hat laut Datenblatt eine Schwankung von 50mV (Line/Load Regulation), vom Temperaturdrift einmal ganz zu schweigen. Bliebe also nur ein Sonder-IC wie der bereits erwähnte LT1021 übrig. Der schafft aber wiederum nur 10mA Last. Davon mal ganz abgesehen - ich mache mit dem µC ja auch noch andere Schaltvorgänge, so ganz sauber wird die Sache nie. Und vom Aufwand bin ich da sowieso schon mit dem externen D/A-Wandler gleichgezogen. Zum D/A-Wandler: Hier wollte ich gerade etwas fragen, hab's aber nach scharfem Hinsehen dann doch selbst rausgefunden ;-) Steffen
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.