Nun, eine Differenz in der Zeitdauer L->H- bzw. H->L-Flanke spielt sehr wohl eine Rolle - beim MSB-Zweig. Zwischen zwei gleichen Flanken (z.B. L->H) wird sich höchstens der Jitter bemerkbar machen. Für PWM-DACs sind aber die H- und L-Zeiten bzw. das Verhältnis daraus essentiell. Differenzen von etwa 5ns entsprechen bei einer PWM-Periode von 12.8µs bereits 1/2560 MSB-Bitstufe. Für volle 16-Bit darf es aber höchstens 1/65536 MSB-Bitstufe sein. Dazu kommen noch die eigentlichen Anstiege und Abfälle auf den Flanken samt den Ein- und Ausschwingvorgängen.Zitat von Besserwessi
Wie schon angedeutet, habe ich versuchsweise die Oszillatorfrequenz (und damit die PWM-Frequenz) auf 1MHz und 0.5MHz heruntergesetzt. Die RC-Tiefpässe entsprechend umdimensioniert. Die Meßergebnisse sagen mir ganz klar, daß die erreichte Genauigkeit nun deutlich näher am ideal liegt als bei 20MHz.
Sicherlich gibt es bei der hohen Frequenz noch den ein oder anderen Verkopplungseffekt (oder er ist da stärker), aber ich bin mir sicher, daß die Schaltzeiten (incl. der wichtigen Differenz) sich nicht nennenswert geändert haben.
Simuliert habe ich die Verhältnisse auch noch (PWL-Signal mit den Daten aus den Atmel-IBIS-Files) und diese Ergebnisse bestätigen meine Abschätzungen und Messungen.
Also Quintessenz:
Für gewichtete PWM-DACs zur Erhöhung der Auflösung ist die PWM-Frequenz nicht beliebig hoch. Das Schaltverhalten der PWM-Ausgänge bestimmt diese.
Der Vorschlag die PWM-Signale mittels FFs nochmals zu synchronisieren oder mittels einzelner Gatter zu puffern bringt nichts. Diese Bausteine haben grundsätzlich alle auch das Problem mit den asymmetrischen Flanken (Differenz der Rise- und Fall-Time). Zumindest für meine Anwendung konnte ich nichts finden, was mir eine Differenz von höchstens 200ps garantieren kann. Die liegen alle deutlich darüber.
H.A.R.R.Y.
Lesezeichen