Forum: Analoge Elektronik und Schaltungstechnik Was denkt ihr von meinem PWM DAC?


von Tobias P. (hubertus)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

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.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Meine Frage waere nun: Fuer was braucht man so ein lahmarschiges, aber 
superdupergenaues Signal?

Gruss
WK

von Tobias P. (hubertus)


Lesenswert?

Dergute W. schrieb:
> 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.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

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.

Gruss
WK

von Tobias P. (hubertus)


Lesenswert?

Dergute W. schrieb:
> 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.

von Gerhard O. (gerhard_)


Lesenswert?


von Motopick (motopick)


Lesenswert?

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.

von Manfred P. (pruckelfred)


Lesenswert?

Motopick schrieb:
> Sonst nimmt man naemlich einfach einen 12 bit DAC mit einem
> Latch davor.

MCP4725: Wert per I2C reinschreiben, der bleibt bis zur nächsten 
Änderung und kann sogar einen Stromausfall überstehen.

von Motopick (motopick)


Lesenswert?

> und kann sogar einen Stromausfall überstehen

Entscheidend ist, dass der VCXO weiterlaeuft. Natuerlich inklusive
seines "Oefchens". :)
Es wird sicher noch viele andere geeignete DACs geben.

> aber der Oszillator nimmt eine Abstimmspannung
> von 0..10 Volt an

und braucht davon fuer die Regelung nur einen Bruchteil des Bereichs.

von Tobias P. (hubertus)


Lesenswert?

hmm ok aber irgendwie beantwortet das meine Frage nicht so ganz, ob 
dieser DAC 16, 17, oder 18 Bits erreichen kann.....

von Vanye R. (vanye_rijan)


Lesenswert?

> 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.

> Meine Frage waere nun: Fuer was braucht man so ein lahmarschiges, aber
> superdupergenaues Signal?

Ist in der Messtechnik nicht ungewoehnlich weil genauer wie
ein bezahlbarer DAC und du auch noch sehr einfach Potentialtrennung
erreichen kannst.

Vanye

von Falk B. (falk)


Lesenswert?

Tobias P. schrieb:
> 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.

von Bauform B. (bauformb)


Lesenswert?

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.

Also, im Prinzip ja, aber...

von Falk B. (falk)


Lesenswert?

Bauform B. schrieb:
> Also, im Prinzip ja, aber...

So wie man im Prinzip bemannt zum Mond oder Mars fliegen kann ;-)

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

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).

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Peter D. schrieb:
> 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.

Gruss
WK

von Falk B. (falk)


Lesenswert?

Dergute W. schrieb:
> Peter D. schrieb:
>> 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.

Unsinn. Audio-DAC haben keine sonderlich gute DC Kennline. Wozu auch?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Falk B. schrieb:
> Unsinn. Audio-DAC haben keine sonderlich gute DC Kennline.

Ein 74ruelps125 ist da natuerlich Groessenordungen besser.

scnr,
WK

von Falk B. (falk)


Lesenswert?

Dergute W. schrieb:
> Falk B. schrieb:
>> Unsinn. Audio-DAC haben keine sonderlich gute DC Kennline.
>
> Ein 74ruelps125 ist da natuerlich Groessenordungen besser.

Das war gar nicht die Frage und schon gar nicht meine Aussage. Dieses 
Gebastel ist so oder so im Jahr 2023 für die Katz.

von Joe L. (joelisa)


Lesenswert?

Vanye R. schrieb:
>> 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

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Dergute W. schrieb:
> 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.

von Motopick (motopick)


Lesenswert?

> 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.

von Purzel H. (hacky)


Lesenswert?

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.

: Bearbeitet durch User
von Tobias P. (hubertus)


Lesenswert?

Motopick schrieb:
> Also z.B. +/- 2 ppm.
> Mit einem Signal von 0 - 10 V zu steuern, ist ja auch kaum sinnvoll.

mein OCXO hat einen Stellbereich von 0.6ppm über den Spannungsbereich 
0..10V.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Tobias P. schrieb:
>> Also z.B. +/- 2 ppm.
>> Mit einem Signal von 0 - 10 V zu steuern, ist ja auch kaum sinnvoll.
>
> mein OCXO hat einen Stellbereich von 0.6ppm über den Spannungsbereich
> 0..10V.

Das sind 60e-9 / V oder 60e-12/mV. Was will man da mit unter 1mV 
Auflösung, außer sich selbst veralbern?

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
Noch kein Account? Hier anmelden.