Hallo zusammen, ich habe einen zu steuernden Controller, der 4 Kanäle mit einem Arbeitsbereich von -5...+5V hat. Es werden 45000 Zustände benötigt. Daher werden vier 16-Bit DACs nötig sein. Jeder Kanal zieht maximal 100mA. Ich habe nun eine Weile nach fertigen DAC Platinen recherchiert. Bin bisher aber auf keine Lösung gestoßen, die auch negative Spannungen bereitstellen würde. Also muss eine selbst gefertigt werden. Der Mikrocontroller wird der Raspberry PI 3 sein. Nun zum eigentlichen Konzept: So wie es für mich aussieht, scheint ein DAC mit einem Arbeitsbereich von 0...+10V die richtige Wahl zu sein. Dessen Ausgang müsste dann auf einen Differenzverstärker geführt werden, der das Ergebnis mit einer konstanten Spannung von -5V vergleicht. Die -5V würde ich dann mit einem Spannungsregler so erzeugen, dass ich die 10V der DAC-Referenzspannung nutze und diese auf +5V regle. Aber dann quasi Spannungsausgang und Ground vom Regler vertausche und somit Ground am Spannungseingang des OPV anschließe? Ich habe mit LTSpice etwas simuliert, eine Abbildung dessen ist im Anhang. Ein Problem das ich sehe ist, dass ich aber mit dem Differenzverstärker eventuell die Genauigkeit verlieren könnte, die ich eigentlich brauche. Gibt es eine alternative Lösung zum Differenzverstärker?
Z.B. der DAC8831 enthält die nötigen Widerstände für bipolaren Betrieb. Für 100mA muß man aber noch nen Leistungs-OPV dahinter schalten (z.B. OPA547).
Beim Einschalten oder während einem Reset liegen (wahrscheinlich) -5V an. Stört das nicht? Ein OP mit ausreichen hoher Schleifenverstärkung sollte eigentlich den Fehler gering halten. Vorausgesetzt, der Konstrukteur ist sich der allgemeinen Problematik von 16 Bit (Genauigkeit) bewusst. Übrigens setzt sich das beim Folgeverstärker (bei 100 mA hecheln die meisten OPs) fort.
@Robert W. (johnnychuo) >ich habe einen zu steuernden Controller, der 4 Kanäle mit einem >Arbeitsbereich von -5...+5V hat. Es werden 45000 Zustände benötigt. Was soll das denn werden? Mal wieder eine SuperDuperLED-Beleuchtung? >Daher werden vier 16-Bit DACs nötig sein. Jeder Kanal zieht maximal >100mA. >Mikrocontroller wird der Raspberry PI 3 sein. >So wie es für mich aussieht, scheint ein DAC mit einem Arbeitsbereich >von 0...+10V die richtige Wahl zu sein. Nicht zwangsweise. Da man so oder so einen OPV braucht, kann man fast jede bleibige Ausgangsspannung nutzen und entsprechend verstärken. > Dessen Ausgang müsste dann auf >einen Differenzverstärker geführt werden, der das Ergebnis mit einer >konstanten Spannung von -5V vergleicht. Nö, man nimmt einen einfachen Addierverstärker, wie er in jedem OPV-Buch drin ist. Und VERGLEICHEN tut ein OPV schon mal gar nicht, der verstärkt linear. >Die -5V würde ich dann mit einem Spannungsregler so erzeugen, dass ich >die 10V der DAC-Referenzspannung nutze und diese auf +5V regle. Braucht man so nicht. Du brauchst so oder so einen Poti pro Kanal, um den addierten Offset zu kalibrieren. Dazu braucht man zwar eine STABILE Referenzspannungsquelle, aber die muss keine -5V haben. Eher +Irgendwas. > Aber >dann quasi Spannungsausgang und Ground vom Regler vertausche und somit >Ground am Spannungseingang des OPV anschließe? AUA! Mach das nicht! > Ich habe mit LTSpice >etwas simuliert, eine Abbildung dessen ist im Anhang. LTSpice ersetzt kein Grundlagenwissen. >Ein Problem das ich sehe ist, dass ich aber mit dem Differenzverstärker >eventuell die Genauigkeit verlieren könnte, die ich eigentlich brauche. Kann passieren, wenn der OPV zuviel Offsetspannung und Temperaturdrift reinbringt. Dagegen hilft nur eine Arbeitsteilung. Sprich, man nimmt einen schwachen, aber genauen OPV mit kleinem Offset und wenig Drift und macht damit die Spannungsanpassung und dahinter einen Leistungs-OPV mit viel Strom und Spannungsverstärkung 1. Der darf ungenau sein, denn man nutzt die echte Ausgangsspannung für die Rückkopplung des genauen OPVs.
Ok, hier mal als Bild. Es ist eine PRINZIPSCHALTUNG, die ist nicht aufgebaut und getestet, ebensowenig hab ich im Detail über die Komponenten nachgedacht. Als Spannungsversorgung braucht man +/-6V ggf. mehr, je nach OPV-Typ. IC1 soll ein Präzisions-OPV mit wenigen uV Offsetspannung und 0,x uV/K Temperaturdrift sein. IC3 ein Leistungs-OPV, der beliebig viel Offsetspannung und Drift haben darf, denn das wird durch IC1 kompensiert, denn der mißt die echte Ausgangsspannung NACH IC3 und regelt entsprechend nach. IC2 muss nicht sonderlich genau sein, aber sehr temperaturstabil, also wenige ppm/K Drift aufweisen. Siehe https://www.mikrocontroller.net/articles/Standardbauelemente#Shuntregler.2FSpannungsreferenz Wie werden die Widerstände berechnet? Nach dem Superpositionsprinzip. DAC_IN ist eine Spannung von einem DAC, nehmen wir mal an, daß der 0-3,3V liefert. Diese 3,3V Spannungsänderung sollen am Ausgang DAC_OUT in 10V Spannungsänderung umgesetzt werden. Also braucht man eine Verstärkung von min. 10/3,3V = 3. Die wird mit R2 und R1 eingestellt, das ist ein einfacher, invertierender Verstärker. V = -R2/R1 = -33k/10k = -3,3 Also haben wir noch ein wenig Reserve. Dann muss mit dem Trimmer (10 Gang Spindeltrimmer) ein Offset eingestellt werden, damit bei 0V an DAC_IN +5V an DAC_OUT rauskommen. Genauer, es sollte die Hälfte der maximalen Spannungsänderung rauskommen, damit wird es symmetrisch. Die maximale Spannungsänderung ist 3,3V * 3,3 = 10,9V. Aus Sicht vom positiven OPV-Eingang ist es ein nichtinvertierender Verstärker, wenn man DAC_IN auf 0V legt (Superpositionsprinzip). V = 1+R2/R1 = 1 + 33k/10k = 4,3 Ue = Ua / V = 5,45V / 4,3 = 1,27V Damit hat man dann folgende Kennlinie DAC_IN DAC_OUT 0 +5,45 0,14 +5 1,65 0 3,17 -5 3,3 -5,45 Die Kennlinie ist also invertiert, aber das kann man problemlos in der Software ausgleichen. Das Ganze kann man leicht kalibrieren, indem man abwechselnd einen einsprechenden DAC-Wert ausgibt, der +5V und -5V am Ausgang ergeben sollte. Dann stellt man den Offset so ein, daß beide Werte betragsgleich sind. Da die Spannungsverstärkung von R1 und R2 abhängt, sollten die genau und temperaturstabil sein, 0,1% mit TK20 oder so. Wer es ganz exakt haben will, macht eine weitere Zweipunktkalibierung per Software. Dann ist die Toleranz der Widerstände egal, es bleibt aber die Temperaturdrift. Man kann aber auch einen 500 Ohm Trimmer in Reihe zu R2 schalten, dann kann man auch die Verstärkung analog kalibrieren. Alles in allem ist ein 16 Bit DAC, der auch WIRKLICH im Bereich von 16 Bit STABIL ist, nicht ganz trivial.
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.