ich brauche einen hochauflösenden DAC und wollte das mal mit einem PWM DAC ausprobieren. Ich habe die Idee bei einem kommerziellen GPSDO abgeschaut, ich weiss aber nicht, welche Auflösung der DAC dort hat. Aber ich habe die Schaltung mal mehr oder weniger aus dem Oscilloquartz STAR4+ übernommen.
Ich möchte mal schauen, wie hoch man mit der Auflösung des DACs gehen kann, bzw wie hoch man die Dynamik treiben kann.
In der Beilage mal als erstes die Schaltung. Der ADR441 stellt eine gemaue Referenzspannung von 2.5V bereit. Der ADG779 dient als Mux, der entweder 0V oder 2.5V auf den aktiven Filter gibt.
Der Frequenzgang des aktiven Filters ist in activefilter.png ersichtlich. Ich habe mir jetzt folgendes überlegt. Wenn man eine Auflösung von N Bits erzielen möchte, dann muss die PWM-Frequenz so gross sein, dass bei dieser Frequenz die Dämpfung des aktiven Filters mindestens 6dB*N Beträgt. Also Beispielsweise müsste man für 16 Bits eine Dämpfung von mindestens 96 dB haben, anhand des Frequenzgangs sieht man, dass dies ab einer Frequenz von ca. 110 Hz der Fall ist. Also müsste für 96 dB Dynamik die PWM-Frequenz mindestens 110 Hz sein.
Ich habe noch ein weiteres Bild angeängt, fpwm.png. Dort gibt die blaue Kurve die mindestens nötige PWM-Frequenz für die gewünschte Dynamik an. Die rote Kurve ist die höchste PWM-Frequenz, die sich mit einem STM32F407 Timer gerade noch realisieren lässt mit der angegebenen Anzahl Bits. Aus diesem Graph kann man meiner Meinung nach entnehmen, dass man eine Dynamik von allerhöchstens 19 Bits bzw. 114 dB erzielen kann. Mit einer Timer-Auflösung von 19 Bits wäre die PWM-Frequenz rund 305 Hz, bei dieser Frequenz hätte das Filter eine Dämpfung von 130 dB. Das müsste theoretisch also funktionieren.
Würde man die Timer-Auflösung auf 20 Bits setzen, dann liesse sich allerhöchstens eine PWM-Frequenz von 152 Hz erzielen; für 20 Bits bräuchte man eine Dämpfung von mindestens 120 dB, die das Filter aber erst bei ca. 220 Hz erreicht, d.h. 20 Bits sind nicht mehr realisierbar.
Meine Frage wäre nun, wie realisitisch Aufösungen von 16, 17, 18 oder gar 19 Bits mit diesem PWM DAC wären.
Meine Frage waere nun: Fuer was braucht man so ein lahmarschiges, aber
superdupergenaues Signal?
ich will einen neuen GPSDO bauen und meinen bestehenden noch verbessern.
Mit dem lahmarschigen Signal wird der Oszillator gesteuert. Da man den nur sehr langsam und nur sehr wenig variieren muss, genügt es, wenn man das Signal mit einer Taktrate von ca. 1 Hz ändern kann. Die Änderungen werden eh winzig sein, aber der Oszillator nimmt eine Abstimmspannung von 0..10 Volt an, und man möchte die Frequenz möglichst fein einstellen können, also will man viele Bits. Geschwindigkeit ist völlig sekundär. Wenn das innerhalb einer Sekunde einschwingt, reicht das.
Hm - ok. Ich bin nicht so der supergenau-Analogschaltungsbauer, fuer eine hier veroeffentlichte Schaltung sind ja immerhin schon mal Block-Cs drinnen :-)
Irgendwas hab' ich noch im Hinterkopf, dass OpAmps es gerne sehen, wenn sie aus ihren beiden Eingaengen rausglotzen, dass dann der Widerstand, den sie sehen gleich gross ist. Ist hier eher nicht so, weiss aber nicht, ob das dann kratzt.
Irgendwas hab' ich noch im Hinterkopf, dass OpAmps es gerne sehen, wenn
sie aus ihren beiden Eingaengen rausglotzen, dass dann der Widerstand,
den sie sehen gleich gross ist. Ist hier eher nicht so, weiss aber
nicht, ob das dann kratzt.
das hängt damit zusammen, dass der Bias Current von den Eingängen dann an der Impedanz jeweils denselben Spannungsabfall hervorruft. Aber das ist hier prinzipbedingt nicht möglich, weil beim Sallen Key am + Input ja der Kondensator sitzt. In dem Fall hier ist das aber auch nicht so tragisch, weil der Bias Current einfach einen zusätzlichen Offsetfehler hervorruft. Das wären 1pA * 100k = 100nV, das würde dann noch mit Faktor 4 verstärkt d.h. 400 nV Offsetfehler aufgrund der nicht identischen Beschaltung der Eingänge. Das ist in dieser Anwendung wohl vernachlässigbar, die Offsetspannung vom OpAmp alleine ist schon 750 Mikrovolt.
16 oder mehr bits braucht man nur, wenn der Stellbereich unangemessen
gross ist. Sonst nimmt man naemlich einfach einen 12 bit DAC mit einem
Latch davor. Das hat den entscheidenden Vorteil, dass "ungeregelt"
der O/VCXO auf seiner letzten Frequenz weiterlaueft.
Und das will man ueblicherweise.
Man koennte sogar einen spottbilligen PT8211 (2 x 16 bit) benutzen.
Der speichert dann selber, will aber per (Spezial-)SPI gesteuert werden.
hmm ok aber irgendwie beantwortet das meine Frage nicht so ganz, ob
dieser DAC 16, 17, oder 18 Bits erreichen kann.....
Theoretisch ja, praktisch ist das eher zweifelhaft. Denn dazu muss VIEL richtig gemacht werden. Angefangen von der Referenzspannungsquelle, Gatter für die PWM, Filter, Offsets der OPVs. ECHTE 130dB Dämpfung muss man erstmal umsetzen.
Und zu guter Letzt muss man Auflösung und Genauigkeit unterscheiden, hier vielleicht auch noch die Drift bzw. Temperaturstabilität.
Solche hohen Auflösungen macht man heute sicher NICHT mit einer einfache PWM und einem irrsinnig schmalbandigen Filter, sondern nimmt Sigma-Delta DACs und andere Konzepte.
Die Auflösung schafft er natürlich, aber das 19. Bit verschwindet schon im Rauschen vom AD8626. Die Offset-Drift ist ähnlich groß, und zwar pro Grad. Na gut, die ganze Mimik sitzt im Ofen, aber wie gut ist die Temperaturregelung?
Dank Ofen ist aber der Biasstrom viel größer als 1pA und von der Biasstrom-Drift weiß man garnichts. Dazu kommen noch so 50pA Leckstrom vom ADG7798. Und noch viel mehr von der Platine, wenn die nicht 100% sauber ist.
Der MUX hat zwar im Signalpfad 200MHz Bandbreite, kann aber nicht so schnell umschalten. Ein Diagramm geht bis 10MHz; wenn man die Schaltzeiten zusammenzählt wären evt. 40MHz drin. Das reicht natürlich für 110 oder 300 Hz, verfälscht aber die LSBs, vor allem, weil die Schaltzeiten sehr unsymmetrisch sind.
Wie reagiert eigentlich so ein Filter auf die höchsten Frequenzanteile? Ist ein 100K-Widerstand bei 70MHz noch ein Widerstand? Was macht der 1uF damit? Der OP ist ab 1MHz oder so am Ende.
Mit höherer Bitzahl wird die Filterung bei PWM immer aufwendiger.
Man kann aber auch 2 PWMs addieren, anbei eine einfache Schaltung.
Oder man nimmt PCM (Addition mit Überlauf).
Man kann aber auch 2 PWMs addieren, anbei eine einfache Schaltung.
Bevor ich mir so einen Quark antu', nehm' ich doch lieber so einen Billig-Audio-DAC wie von motopick vorgeschlagen. ROHM hatte frueher auch so'n Ding, koennte sogar Pinkompatibel gewesen sein.
Der frisst dann 3 GPIOs (Wenn's eh so langsam sein kann, braucht's ja keinen HW-I2S Master) und wenn ich immer noch feiner aufloesen will, kann ich noch per SW lustige Sigma-Delta Geschichten rechnen und ausgeben lassen.
hmm ok aber irgendwie beantwortet das meine Frage nicht so ganz, ob
dieser DAC 16, 17, oder 18 Bits erreichen kann.....
Ich denke mal das wird stark von den OPVs und der Qualitaet der
Widerstaende abhaengen. Grundsaetzlich machbar ist das aber schon.
Der TO wird auf geringstes Rauschen im Bereich vom 1/1000 Hz Wert legen müssen -- das Rauschen taucht als ungewollte Phasenmodulation seines GPSDO auf...
Die Ref ADR441 ist in diesem Frequenzbereich wohl nicht spezifiziert, konnte kein Rauschspektrum im Datanblatt finden) -- und rauscht auf jeden Fall schon mit 1.2uVpp oberhalb von 0.1Hz. Ich würde mir doch was deutlich besseres raus suchen.
Die OPAs AD2826 rauschen mit 16nV/sqrt(Hz), und bei 1kHz ist man schon im 1/f-Bereich. So wird das IMHO nie was...
Ich würde da mal bei den bipolaren OPAs suchen, wie LT1028 (1nV/sqrt(Hz) // 1/f corner = 14Hz). Das geht schon mal in die richtige Richtung... Aber dann schlägt das Stromrauschen (1.6pA // 1/f corner = 800Hz) zu! Drum müsste dann die Schaltung DEUTLICH niederohmiger werden!
PS: Ein 100kOhm rauscht schon mit 40nV/sqrt(Hz) ...
Literatur: vgl. z.B. PMI (Precision Monolithics Inc. - heute Analog Devices), AN-15
Ein 74ruelps125 ist da natuerlich Groessenordungen besser.
Was den Temperaturgang betrifft, natürlich. Er arbeitet hier als analog Umschalter von GND nach 5V Referenz. Damit sind Störungen von DVCC des MC eleminiert.
Unsinn. Audio-DAC haben keine sonderlich gute DC Kennline. Wozu auch?
Ja eben. Wozu auch?
Der DAC sitzt in einer Regelschleife. Der PT8211 ist zumindest
monoton. Ein wenig Linearitaetsfehler stoert da ueberhaupt nicht.
Der TO sollte seinen VCXO vllt einmal ausmessen um den noetigen
Stellbereich sinnvoll eingrenzen zu koennen.
Also z.B. +/- 2 ppm.
Mit einem Signal von 0 - 10 V zu steuern, ist ja auch kaum sinnvoll.
Und eine "jammernde" PWM wuerde ich da jedenfalls nicht haben wollen.
Sinnvollerweise baut man einen GPSDO mit einem OCXO, der hat schon eine Grundstabilitaet von 10^-8, den kann man dann schoen mit einem 16bit DAC zwischen 1..3V ansteuern.
Ich anerkenne den Versuch, das Ganze mit weniger Strom laufen zu lassen, also einen TCVCXO zu verwenden. Dort macht man die Temperaturkorrektur also mit dem DAC. Die Temperaturaenderung sollte langsamer wie die Integrationszeit sein. Bei eingeschraenktem Aussteuerbereich sollten 16 bit genuegen, die sind auch noch zahlbar. Die ueblichen OCXO haben auch nur einen Aussteuerbereich von ppm.
Immer dran denken, bei VCXO und PLL Geschichten sollten die Spannungsregler schon rauscharm sein.
Alternativ gibt es Chips, welche das Ganze machen. zB den ADF9548.