Copyright: Hilfe  ® h#s 1997


LPT-DAC aus Widerständen

Obige Abbildung zeugt den einfachsten D/A-Wandler fürs Druckerport. Die Widerstände sollten 1% Toleranz haben. Wer es noch genauer mag, kann sie auch aus einem größeren Haufen heraus ausmessen. Da es nich so leicht möglich ist, genau halbe Widerstandswerte zu bekommen, ist die Parallelschaltung zweier R's für jedes R/2 sinnvoll. Das ergibt dann einen "Verbrauch" von 24 Widerständen. Zu beachten ist, daß im Interesse guter Linearität der anzuschließende Verstärker einen möglichst hohen Eingangswiderstand haben sollte; ansonsten ist der oberste Widerstand in der Schaltung zu erhöhen oder ganz wegzulassen. Der Einbau erfolgt am zweckmäßigsten in ein Donglegehäuse. Als Ausgang kann ein zum Verstärker reichendes Kabel mit Cinch- oder Diodenstecker verwendet werden.

An der anderen Seite kann eine durchgeschaltete SubD-Buchse angeordnet werden, an der der Drucker angeschlossen werden kann. Während des Druckens sollte der Lautstärkeregler zugedreht und die Wave-Ausgabe abgeschaltet werden.


LPT-DAC mit integriertem 8-bit-DAC

Diese Schaltung erreicht gegenüber dem Widerstandsnetzwerk echte 8-bit-Tonqualität, allerdings auf Kosten eines DACs sowie der Notwendigkeit einer Stromversorgung. Den DAC-Schaltkreis, der eigentlich für Videoanwendungen (Premiere-Dekoder) mit bis zu 100 MHz ausgelegt ist, bekommt man recht preiswert bei Reichelt Elektronik (http://www.reichelt.de).

Andere DAC-Schaltkreise sind natürlich auch einsetzbar. Der hier verwendete Typ hat den Nachteil eines recht hohen Stromverbrauchs. Die Stromversorgung kann über einen Festspannungsregler 7805 bzw. 78L05 von einem Steckernetzteil oder der 12V-Versorgung des Computers erfolgen. Die Verwendung der 5V des Computers ist ebenfalls möglich, jedoch sollte ein Siebgleid am Pin 16 des TDA8702 vorgesehen werden, da ansonsten jede CPU-Aktivität hörbar wird.


Noch ein integrierter LPT-DAC: mit A/D-Möglichkeit

Gegenüber der vorhergehenden Schaltung ist diese hier mit dem Schaltkreis ZN 425E-8 aufgebaut. (Schaltplan entworfen von Dr. O. Hochmuth / Lothar Heese, Institut für Informatik, Humbold-Universität Berlin.) Durch den Einsatz des (zusätzlichen) Komparators ist eine softwaregesteuerte Analog-Digital-Wandlung möglich. Entweder arbeitet die Software im Zähl- oder im Deltaverfahren mit bis zu 255 Zyklen pro Meßschritt, oder im Wägeverfahren mit 8 Zyklen pro Meßschritt; hierzu muß jedoch die Eingangsspannung konstant sein (Sample&Hold-Schaltung!)


LPT-DAC mit 10- oder 12-bit-DAC


Stereo-On-One: Originalschaltung
Stereo-On-1: Originalschaltung

Das Stereo-On-One ist eine von J. Cox vorgeschlagene Schaltung für die Ausgabe von Stereo-Samples auf das Druckerport. Zusätzlich verfügt es über die Möglichkeit der automatischen Hardware-Findung (Plug'n'Play sozusagen) aufgrund der Verbindung von D7 mit BUSY. Allerdings ist damit eine Kaskadierung mit einem Drucker ausgeschlossen.

Die obige Schaltung kommt mit minimalem Schaltungsaufwand aus. Es gibt zwar auch Doppel-DACs, aufgrund der Selektierung mit einer Adreßleitung kann damit keine "kompatible" Schaltung entworfen werden.


Stereo-On-One mit 10 Bits
Stereo-On-1 mit 10 Bits

Eine mögliche Erweiterung des Stereo-On-One stellt der Einsatz von 10-bit-Wandlern dar. Dazu wird die Leitung /INIT mit dem (neuen) Anschluß D0 (LSB) und /SELECT IN mit D1 verbunden. Alle anderen Leitungen rutschen entsprechend "nach oben" hin zu höherwertigen Bitpositionen. Die zwei Bits mehr machen sich in einer deutlichen Tonqualitäts-Verbesserung bemerkbar, sofern 16-bit-Samples nicht zu leise abgespielt werden.


Stereo-On-Display (8 bit)

Das Stereo-On-Display ist eine Variante des Stereo-On-One und befindet sich idealerweise im Innern des Computers, genauer: auf der Anzeigeplatine für die Taktfrequenz. Die Taktfrequenz-Anzeige ist softwaremäßig frei programmierbar. Man kann hier sinnvolleres ausgeben als immer nur die Taktfrequenz. Beispielsweise gibt hier G. Fiedler das Mittel der Systemauslastung (Inhalt von /proc/loadavg unter Linux) in Zehnteln aus, so kann man die "Arbeit" des Rechners auch bei ausgeschaltetem Monitor beobachten. Auch eine Laufschrift zur Fehlersignalisierung ist denkbar.

Die Verknüpfung der Anzeige mit dem D/A-Wandler ist nicht ohne Folgen. So bewirkt die Anzeige-Umstellung ein Knacken im Lautsprecher. Umgekehrt erscheinen während der Sample-Ausgabe zwei halbhell flimmernde Achten. Man kann eben nicht alles gleichzeitig haben. Wie auch beim einfachsten LPT-DAC ist auch hier ein möglichst hochohmiger Verstärker-Eingang zu wählen. Alternativ kann ein Auskoppelverstärker oder gleich eine integrierte Stereo-Endstufe (z.B. TDA 2005) nachgeschaltet werden. Die verfügbaren +12V im Rechner kommt dem Vorhaben entgegen.

Selbstverständlich ist auch eine Ausführung mit integrierten 8-bit-D/A-Wandlern denkbar.

Das Stereo-On-Display erlaubt das Drucken und die Sample-Ausgabe quasi gleichzeitig ohne Qualitätseinbußen. Voraussetzung ist nur, daß der Druckertreiber die Leitungen /AUTOFEED und /SELECT IN auf LOW beläßt und der Drucker diese Pegel akzeptiert (gilt für alle gängigen Drucker, Ausnahme: bidirektionales ECP- oder EPP-Interface).

Das Stereo-On-Display ist, sofern man Widerstandsnetzwerke verwendet, besonders billig. Im übrigen eignen sich als Treiberschaltkreise die Typen DS 8282 bzw. DS 8283 aus DDR-Produktion recht gut. Sie sind sehr stromergiebig, allerdings auch entsprechend "hungrig". Vorsicht - sie sind nicht ganz pinkompatibel!


Stereo-On-Display (10 oder 12 bit)

Diese recht umfangreiche Schaltung vereint die Vorteile des Stereo-On-One mit dem eines 12-bit-DAC am Druckerport.


16-bit DAC

Industriell hergestellte Laborkarten, bestückt mit A/D und/oder D/A-Wandlern gehören heute zum Alltag in Forschungseinrichtungen. Jedoch sind gerade dort Soundkarten im Rechner nicht erwünscht, und so bleibt es bei nichtssagenden Piepsern oder gerade mal beim Windows-Blockierer SPEAKER.DRV. Dabei genügt es oft, zwei analoge Ausgänge der Karte an einen Stereo-Verstärker zu schalten, und mit LPTDAC erfolgt seine Ansteuerung in bestmöglicher Qualität. (Vorausgesetzt, die beiden Kanäle sind "Überplanbestände" und nicht durch die Meßapparatur belegt:-) Aber auch ein "forschungsmäßiger" Einsatz von LPTDAC, etwa für einen Funktionsgenerator, ist gut denkbar. Dem entgegen kommt die niedrige untere Samplerate von 1 kHz. Übliche Soundkarten benötigen mindestens 8 kHz (Telefonqualität).


Benutzerdefiniertes Ausgabegerät

Der Treiber LPTDAC erlaubt die Ausgabe der Sampleinformation über ein beliebiges Ausgabegerät. Voraussetzung dafür ist ein kleines Code-Schnipsel, welches den 32-bit-Code für die Ausgabe enthält. Bedingung ist, daß der Code weniger als 128 Bytes lang ist. (Mehr ist reine Verschwendung von Rechenpower!)

Der Code wird mit folgenden Parametern angesprungen:

AX	vzb. Sample linker Kanal (16 bit)

CX	vzb. Sample rechter Kanal (16 bit)

EDX	Port-Adressen o.ä. zur beliebigen Verwendung; normalerweise enthält das LOW-Word die Portadresse des linken und das HIGH-Word die des rechten Kanals

Der Code darf nicht mit RET o.ä. beendet sein; er darf keine Variablen- oder sonstige Absolutbezüge beinhalten (Sprünge sind erlaubt), und alle Verzweigungen müssen hinter dem letzten Befehl "herauskommen". Das Schnipsel wird je nach Bedarf in den VxD-Interruptcode einkopiert.

Erstellt wird das Schnipsel am sichersten mit TASM. Da es jedoch hierfür keinen Linker gibt, müssen die Bytefolgen aus dem Listing abgeschrieben werden. Gewiefte Programmierer benutzen DOS DEBUG, und wissen dann, wo ggf. 66h hinzuzufügen sind. Doch Vorsicht: der kleinste Bug führt zum totalen Windows-Crash.