Igitt, ein Glitch

Da wegen Sommerferien diverser günstiger Leiterplattenfertiger weiterhin auf die Platine für meinen Funktionsgenerator gewartet werden muss, habe ich mal schnell einen Sinus-Generator mit einem Spartan3E und einem DAC7541 zusammengesteckt.

DSO Sinus komplettOkay, man könnte meinen, ein ganz netter Sinus mit einer Frequenz von 1 kHz. Aber wo kommen diese unschönen Ausreißer her?

DSO Sinus ZoomIn der Vergößerung sieht man es dank der im Screenshot des Oszis zusätzlich vorhandenen Logik-Analysator-Kanäle, die die 4 höchstwertigsten Bits des 12 Bit Ausgangswertes anzeigen: Wenn das höchstwertigste Bit (Kanal 0) auf 1 wechselt und alle anderen auf 0 (Kanal 1 bis 11, auch wenn man hier nur bis 3 sieht), gibt es kurze Zeit später (ca. 1,5 µs) einen knapp 400 mV hohen Glitch (in diesem Fall waren das 6,7% FSR!).

Ein höchst unschöner Effekt, der in der Inperfektion der realen Welt begründet liegt. Die „Schalter“ in dem Digital-Analog-Wandler schalten nicht gleichzeitig. Der hier gezeigte Worst-Case macht dies deutlich.

Was kann man dagegen tun? Ohne weitere Hardware nicht viel. Die übliche Lösung ist, dem DAC ein Sample&Hold-Glied nachzuschalten, das den neuen Ausgangswert nach dem „Einschwingvorgang“ übernimmt. Diverse Hersteller bieten allerdings auch DACs an, die direkt ein integriertes S&H-Glied besitzen.

Und die Moral von der Geschichte: Praxis macht die Theorie zu nichte.