HiFi-Vorverstärker

Der Vorverstärker hat zusammen mit dem EL34-Stereo-Röhrenverstärker das Herz meiner HiFi-Anlage gebildet. Der Röhrenverstärker ist eine reine Stereo-Endstufe, und der Vorverstärker beinhaltet alles, was fehlt um einen vollständigen Vollverstärker zu haben, sprich:

Röhrenendstufe und Vorverstärker

Hier ein Blockschaltbild des Vorverstärkers (Link klicken für hochauflösendes PDF):

Blockschaltbild des Vorverstärkers

Aufbau der 1. Version

Der Prototyp (1. Version) des Vorverstärkers, der wie sich später herausstellte noch einige Nachbesserungen (gelb) erfordern sollte, ist auf insgesamt 5 (!) Platinen aufgebaut, wie im oberen Blockschaltbild dargestellt (die grünen Kästchen). Hier gibt's die entsprechenden Pläne als Download:

Innenansicht des Vorverstärkers

Eingangsstufe

Die Eingangsstufe enthält die Relais zur Auswahl des Eingangskanals und zur Umschaltung des Aufnahmegerätes (ich hab's mal "Tape" genannt, falls jemand noch so ein Moped rumstehen hat) sowie die zwei Trennverstärker.

Trennverstärker?

Was ist das denn? Wer schon mal seinen Rechner an die Stereoanlage angeschlossen hat, wird vielleicht bemerkt haben, dass es wenn keine Musik läuft zu einem leisen Knistern, Pfeifen oder Brummen kommen kann. Das kommt daher, dass eventuell Ausgleichsströme über die Masse der Audioleitung fließen und sich als Störgeräusche bemerkbar machen (Masseschleife, beide Geräte sind geerdet). Was kann man dagegen tun? Entweder man trennt die Schleife auf (gute Idee) oder man entfernt den Schutzleiter von der HiFi-Anlage (sehr schlechte Idee).

Meinen Röhrenverstärker muss ich allein schon aus Sicherheitsgründen (ich sag nur 500V!) unbedingt lautsprecherseitig erden (der Masseanschluss jedes Lautsprechers ist auf Schutzleiterpotential), also muss ich beim Anschluss meines PCs an den Vorverstärker die Masseschleife über den PC unbedingt vermeiden. Die Lösung hierfür ist ein Trennverstärker, der das Audiosignal galvanisch trennt.

Wirft man Google an, findet man hauptsächlich zwei Varianten, wie man sowas lösen kann. Zum Einen induktiv, über einen kleinen Trenntrafo, der in die Audioleitung eingeschleift wird (Stichwort: Mantelstromfilter). Der Nachteil von solchen Trafos ist der Frequenzgang, da der Trafo zur Ubertragung tiefer Frequenzen sehr groß sein müsste.

Aus diesem Grund habe ich mich für die zweite Variante entschieden: die optische Trennung. Es gibt sogenannte "lineare Optokoppler", die Analogsignale übertragen können. Sie beinhalten eine Sende- und zwei Empfangsdioden, die es ermöglichen, die Nichtlinearität der optischen Strecke zu kompensieren und so analoge Signale zu übertragen. Eine entsprechende Schaltung gibt es bei ELV. Der Vorteil dieser Lösung ist ein Frequenzgang bis in den DC-Bereich, jedoch handelt man sich unter Umständen ein Rauschen oder einen höheren Klirrfaktor ein (konnte ich jedoch beim Probehören über Kopfhörer nicht merklich feststellen).

Schaltung der Eingangsstufe

Das folgende Bild zeigt die Eingangsstufe: links unten die Relais zur Kanalauswahl, rechts die beiden Stereo-Trennverstärker und oben links die zugehörigen DC/DC-Wandler. Hier gibt es den Schaltplan dazu.

Eingangsstufe

Auf der ersten Seite des Schaltplans ist eine Ubersicht der gesamten Eingangsstufe. Vier der 6 Eingangskanäle gehen direkt auf die Relaismatrix, zwei Kanäle laufen über jeweils einen Trennverstärker. Rechts an der Relaismatrix sind die Anschlüsse für das Aufnahmegerät (Tape In und Out) sowie der Ausgang zur Ausgangsstufe (Out). Die Anschlüsse SEL1 bis SEL6 sowie TAPE_SEL gehen über einen Steckverbinder auf die Controllerplatine, die die Relais entsprechend der gewählten Konfiguration ansteuert. Über den Steckverbinder kommt auch die digitale Versorgungsspannung (+5VD für die DC/DC-Wandler der Trennverstärker und die Relaisspulen), während die analoge Versorgungsspannung (+/-5VA für die OpAmps) über Lötstifte angeschlossen ist.

Die nächste Seite zeigt die Relaismatrix. Die ersten vier Eingangskanäle erhalten einen Spannungsteiler, über den man die Eingangspegel der Audiogeräte aneinander anpassen kann (Rx entsprechend wählen). Ich habe das erstmal nicht getan, und alle Rx sind bei mir mit 12 Ohm bestückt. Uber die Relais K1 bis K6 wird der entsprechende Kanal selektiert und an TAPE_IN und das TAPE-Relais K7 weitergegeben. K7 wählt, ob das Ausgangssignal von K1 bis K6 oder von TAPE_OUT kommt. Unten rechts sind dann noch die Relaisspulen plus Freilaufdioden zu sehen.

Auf Seite 3 und 4 sind die (identisch aufgebauten) Trennverstärker zu sehen, jeweils für einen Stereokanal. Unten auf der Seite sieht man die DC/DC-Wandler, die aus den +5VD eine Spannung von +/-12V generieren und damit die Eingangsseite versorgen (OpAmp am Eingang und "Sendeseite" der Optokoppler). Die Eingänge sind somit vollständig galvanisch von allen anderen Betriebsspannung getrennt. U5B steuert über Q4 die Sendediode des Optokopplers U7 (Typ IL300), und zwar soweit, bis der Strom der Referenzdiode (an den Pins 3 und 4) den Eingangsstrom (über R22) kompensiert und der nichtinvertierende Eingang Pin 6 des OpAmps auf Masse liegt. Auf der Ausgangsseite wird der Strom durch die Empfangsdiode (Pins 5 und 6) auf den nichtinvertierenden Eingang von U6B gegeben, der diesen Strom wiederum versucht zu kompensieren - so wird das eingangsseitige Signal rekonstruiert, und steht nun am Ausgang des OpAmps zur Verfügung.

Über die Trimmer im Rückkopplungszweig kann die Verstärkung jedes einzelnen Trennverstärkers abgeglichen werden, so dass die Eingangsamplitude der Ausgangsamplitude entspricht (oder, falls gewünscht, das Signal verstärkt oder abgeschwächt wird; deshalb besitzen die beiden Trennverstärkerkanäle keinen Spannungsteiler an der Relaismatrix).

Für die Optokoppler IL300 gibt es verschiedene Klassen, gekennzeichnet durch ein Suffix in der Bauteilbezeichnung. Dabei handelt es sich um das Verhältnis des Koppelfaktors zwischen Referenz- und Empfangsdiode. Ein IL300-C hat beispielsweise einen Faktor zwischen 0,693 und 0,769, d.h. die Referenzdiode liefert um diesen Faktor mehr Strom als die Empfangsdiode, so dass das Ausgangssignal abgeschwächt ist. Uber den Trimmer und eventuell über eine Änderung des Rückkopplungswiderstands kann das ausgeglichen werden, so dass man nicht unbedingt die (teureren) Typen IL300-F oder IL300-G mit einem Faktor in der Nähe von 1,0 einsetzen muss (Nachteil: höhere Verstärkung bedeutet größeres Rauschen und größerer Klirrfaktor).

Ausgangsstufe

Das untere Bild zeigt die Ausgangsstufe mit dem Motorpoti (linke Platine). Rechts oben ist die Tasterplatine zu sehen, und rechts unten die nachträglich hinzugekommene Mute-Schaltung (siehe weiter unten). Hier wieder der Schaltplan dazu.

Ausgangsstufe

Der Schaltplan der Ausgangsstufe birgt eigentlich keine großen Uberraschungen; am Eingang sitzt der OpAmp U1A/B, der das Signal von der Eingangsstufe aufbereitet und am Line Out-Ausgang (unten rechts im Schaltplan) zur Verfügung stellt. Der Ausgangspegel kann mit den Potis RV1/RV2 justiert werden, um Unterschiede in den Zweigen auszugleichen (wer eine Gesamtvertstärkung größer 1 benötigt, kann hier ein 22k-Poti einsetzen). Gleichzeitig geht das Signal auf das ALPS-Motorpoti, und nach dem Poti folgt ein weiterer Impedanzwandler U2A/B und der Ausgang zur Endstufe. Das ist auch schon alles. Der Motoranschluss für das Motorpoti führt direkt auf die Controllerplatine (siehe Foto), an den Motoranschlüssen braucht es noch einen Entstörfilter, da sonst der Controller durch Störungen vom Motor durcheinandergebracht werden könnte (von den Motoranschlüssen jeweils 10nF auf das Motorgehäuse, 100nF zwischen den Anschlüssen, und dann jeweils mit einer 14µH-Drossel zur Ansteuerung).

Netzteil und Steuerung

Netzteil und Steuerung sind auf einer gemeinsamen Platine untergebracht. Das Bild zeigt die Platine, man erkennt im linken Teil den Controller (einen ATmega8) und die Halbbrücke zur Ansteuerung des Motors, im rechten Teil die beiden Netzteile, oben das Netzteil für den Digitalteil (+5VD) mit dem später hinzugekommenen neuen Schaltregler auf der separaten Lochrasterplatine und unten das Netzteil für den Analogteil (+/-5VA).

Die erste Schaltplanseite nach der Übersicht zeigt das Netzteil. Schalter und Netzsicherung sitzen nicht auf der Platine, sondern in Front- bzw. Rückplatte und sind von Hand verdrahtet. Am Netzeingang sitzt zunächst ein Entstörkondensator (100nF, X2-Typ), dann folgen gleich die beiden Trafos, die die Netzspannung für den Digital- und den Analogteil getrennt heruntertransformieren. Der größere 5W-Trafo generiert eine Spannung von 9V, die gleichgerichtet und mit einem 1000uF-Elko geglättet wird. Anschließend folgt ein Schaltregler, ursprünglich mit einem TPS5410 von Texas Instruments aufgebaut, der einen Ausgangsstrom von bis zu 1A bereitstellen kann. Die Schaltung entspricht größtenteils der Applikation aus dem Datenblatt, die Rückkopplung ist über R2 und R3 eingestellt und ergibt eine Ausgangsspannung von etwas unter 5V.

Hauptplatine

Der untere Teil ist zur Erzeugung der +/-5V für den Analogteil vorgesehen. Nach dem Trafo (2x6V, 1,5W) wird die Spannung gleichgerichtet und mit zwei Spannungsreglern auf +5VA und -5VA geregelt. Uber drei Lötstifte werden diese Spannungen auf die Eingangs- und Ausgangsstufe weiterverteilt. Der Widerstand R1 dient dazu, die Masse von Analog- und Digitalteil zu verbinden, bei mir ist er jedoch unbestückt geblieben.

Auf der nächsten Seite sieht man den Controllerteil. Herzstück des Vorverstärkers ist I1, der ATmega8-16, der die gesamte Steuerung übernimmt. An den Ports PD1 bis 6 sind die Relaistreiber (BSS138) angeschlossen, die die Relais auf der Eingangsstufe entsprechend dem ausgewählten Kanal schalten. An PD7 und Port B hängt das Display und der IR-Sensor, die beide auf der Frontplatine sitzen. Gleichzeitig ist an PB3 bis PB5 der ISP-Steckverbinder (bei mir eine 6polige Stiftleiste) über Schutzwiderstände angeschlossen, um den Controller in der Schaltung programmieren zu können. Getaktet wird der Controller über den internen RC-Oszillator, Platz für einen Quarz ist zwar vorgesehen, wird aber nicht genutzt; stattdessen geht PB7 an die später nachgerüstete Mute-Schaltung (siehe unten). Die beiden Taster sind schließlich an PC1 (Mute) und PC2 (Source) angeschlossen.

PC3 bis PC5 führen weiter auf den Motortreiber, den die nächste Seite zeigt. Er ist aufgebaut mit einem L293D, einer Halbbrücke mit integrierten Freilaufdioden. Vom Controller kommt ein Enable-Signal und zwei Signale für Links- und Rechtslauf, der Motor ist über Lötstifte direkt an den Pins 3 und 6 angeschlossen.

Front- und Tasterplatine

Hier gibt es Schaltplan und Layout der beiden Platinen. Im Schaltplan sieht man links das Display, das wieder genau wie im Datenblatt für den parallelen 4-Bit-Mode beschaltet ist. Die Hintergrundbeleuchtung (die man zum Display dazukaufen muss!) ist über zwei 15 Ohm-Widerstände an +5VD geschaltet und leuchtet, sobald der Vorverstärker eingeschaltet wird. Rechts oben sieht man den IR-Sensor vom Typ TSOP1736, der für eine Trägerfrequenz von 36kHz ausgelegt ist. Seine Versorgungsspannung wird über R3 und C1 gesiebt. Die Verbindung zur Controllerplatine wird über den 10poligen Steckverbinder P1 hergestellt.

Frontplatine (Vorderansicht)

Die anderen Bauteile incl. Drahtbrücken sind auf der Lötseite montiert, so dass sie von außen nicht sichtbar sind. Zur Montage der Platine an die Frontplatte habe ich vier M3-Schrauben mit Epoxyd-Kleber auf die Frontplatte geklebt und die Frontplatine zwischen je zwei Muttern plus Kunststoffscheibe geschraubt.

Frontplatine (Rückansicht)

Die Taster (im Schaltplan unten rechts) sitzen auf einer eigenen Platine. Sie ist auf die gleiche Weise montiert, nur sind hier statt der Schrauben Sechskantabstandsbolzen an die Frontplatte geklebt. Sie trägt nur die beiden Taster zur Quellenumschaltung (Source) und zum Stummschalten des Audiosignals (Mute).

Tasterplatine

Nachbesserungen

Bei den ersten Tests mit Vorverstärker und Endstufe haben sich einige Probleme gezeigt, die nachträglich noch eliminiert werden mussten:

Schaltregler

Der Schaltregler, ursprünglich mit dem TPS5410 von Texas Instruments aufgebaut, hatte so seine Probleme mit den beiden DC/DC-Wandlern auf der Eingangsstufe. Deren Einschaltstrom lag knapp über der Strombegrenzung des Chips (1,2A), so dass beim Einschalten oft nur ein Flackern der Display-Hintergrundbeleuchtung zu sehen war. Doch auch wenn es denn mal ging, konnte es sein dass sobald der Motor des Motorpotis angesteuert wurde der Controller resettet.

Ursprünglicher Schaltregler mit TPS5410

Zunächst wollte ich die Einschaltstromspitze der DC/DC-Wandler mit einer Drossel etwas glattbügeln (auf dem Foto der Eingangsstufe sieht man die noch eingebaut), außerdem habe ich noch mit den Elkos experimentiert und einen Trafo mit höherer Ausgangsspannung eingesetzt (ursprünglich war ein 6V-Trafo im Einsatz), aber wirklich geholfen hat nur der Austausch des Schaltreglers durch eine Variante mit höherem Ausgangsstrom.

Nachgerüsteter Schaltregler mit LM2676

Ich habe dafür den LM2676 von National Instruments verwendet und eine kleine Schaltung auf einer Lochrasterplatine aufgebaut, die den ursprünglichen Regler ersetzt. Was genau weggefallen ist, ist im Schaltplan der Hauptplatine markiert. Die Platine ist mit Heißkleber auf der Hauptplatine fixiert und mit ein paar Leitungen an diese angeschlossen.

Schaltplan des nachgerüsteten Schaltreglers

Mute-Schaltung

Immer dann, wenn ein Kanal umgeschaltet oder der Ausgang stummgeschaltet werden sollte (ursprünglich wurden da einfach die Relais alle geöffnet), war ein deutliches Knacken in den Lautsprechern zu hören. Außerdem war der Ausgang im Mute-Betrieb nicht 100% stumm, es blieb ein kleines Brummen übrig, das im normalen Betrieb nicht zu hören war. Der Grund dafür war, dass der Ausgang mit offenen Relais hochohmig war und sich Störgeräusche eingefangen hat.

Mute-Stufe

Die Lösung für dieses Problem war das nachträgliche Einfügen einer zusätzlichen Mute-Schaltung, aufgebaut mit einem Vierfach- Analogschalter vom Typ CD4016.

Während dem Wechsel eines Kanals (incl. Tapeumschaltung) oder wenn Mute aktiviert wird, wird die Mute-Stufe vom Controller aktiviert. Uber den Optokoppler werden dann über eine Rampe (verzögert durch den 10µF-Elko) die Analogschalter aktiviert, die das Audiosignal langsam ein- und ausfaden (d.h. nach Masse kurzschließen). Das langsame Ein- und Ausfaden mit dem CD4016 habe ich über einen Tip aus dem Web (Seite leider inzwischen offline) herausgefunden. Beim Muten bleibt die Mute-Schaltung dauerhaft aktiv und verhindert so Störgeräusche.

Schaltplan der Mute-Stufe

Die Schaltung hängt an der Ausgangsstufe und bekommt von ihr die Versorgungsspannung (+/-5VA, GNDA). Die Audiosignale werden an den Eingängen der ersten OpAmp-Stufe angezapft (siehe Schaltplan Ausgangsstufe) und über die Analogschalter nach Masse gezogen. Uber den Optokoppler bleibt die Trennung von Analog- und Digitalteil erhalten, und der Controller steuert die Analogschalter über PB7; die digitale Masse kann an der Drahtbrücke neben dem ISP-Anschluss abgegriffen werden (siehe Platinenfoto).

Gehäuse

Das Gehäuse besteht wie bei der Röhrenendstufe aus einem Holzrahmen und einer Front- und Rückplatte, die bei Schaeffer in Berlin gefertigt worden sind. Die Design-Files dazu kann man sich hier runterladen.

Die Grundplatte, auf der Eingangsstufe, Ausgangsstufe und Hauptplatine mittels Sechskantabstandsbolzen befestigt sind, ist aus einer 4mm-Aluplatte selbst gefertigt. Da man die normalerweise nicht zu sehen bekommt, braucht die nicht ganz so schön sein :-)

Gehäusefüße und Abstandshalter

Das Gehäuse des Vorverstärkers besitzt vier Gehäusefüße, die ich aus Messing selbst gedreht habe. Um den Untergrund (sprich: die Glasplatte meines HiFi-Regals) nicht zu zerkratzen, sind vier kleine Korkscheiben untergeklebt, die aus einem Stück Korkplatte ausgeschnitten sind. Nach oben hin gibt es ebenfalls selbst gedrehte Abstandshalter aus Aluminium, die die Röhrenendstufe mit 5mm Abstand verrutschsicher halten. Für beide Elemente, Abstandshalter und Gehäusefüße, sind Löcher in die Holzrahmen gebohrt, in die dann die Zapfen der Füße und Abstandshalter eingeklopft werden.

Software

Hier gibts die Software für den ATmega (Quellcode, HEX-File und AVRStudio 4-Projekt) zum Download.

Die Software ist in 5 Files aufgeteilt:

Die Routinen für das LC-Display vom Typ DOGM162S-A sind nach dem Ablaufschema im Datenblatt programmiert, die Controllerports, an denen das Display hängt, sind über Defines frei einstellbar. Das Display wird im parallelen 4 Bit-Mode angesteuert.

Die RC5-Routinen sind übernommen von Peter Dannegger, der diese auf mikrocontroller.net in der Codesammlung veröffentlicht hat. Sie sind ein klein wenig angepasst und adaptiert (ich habe eine Struktur für die Variablen angelegt und den Algorithmus aus dem Interrupt rausgenommen und in eine eigene Routine gepackt).

Noch ein paar Worte zur Main-Routine in preamp.c. Nach dem Einschalten werden aus dem EEPROM die letzten Einstellungen (gewählter Kanal, Tape aktiv) geholt und wieder übernommen. Bleiben die Einstellungen später im Programm für mehr als 10 Sekunden gleich, werden diese ins EEPROM abgelegt. So merkt sich der Vorverstärker den Kanal und schaltet nach dem nächsten Einschalten wieder dorthin.

Die Kommandos von der Fernbedienung werden unterschiedlich behandelt. Bei Eintreffen eines Lautstärke-Kommandos (hoch oder runter) wird ein Zähler gesetzt, der dann im 10ms-Takt erniedrigt wird. Solange er größer 0 ist, wird der Motor des Motorpotis freigegeben und dreht. Dadurch hat man eine Mindestlaufzeit (hier: 150ms), und die Zeit zwischen zwei Fernbedienungskommandos (bei meiner Fernbedienung ca. 110-120 ms) wird überbrückt. Bei allen anderen Kommandos wird die Logik immer bei Eintreffen eines Kommandos für 200ms deaktiviert, so dass man beim wiederholten Empfang der Kommandos nur immer das erste auswertet.

Beim Test der Displayroutinen ...

In der 1ms-Routine werden die Taster abgefragt und entprellt. Bei einem langen Tastendruck auf den Source-Taster wird der Tape-Zustand getoggelt (Tape kann man nur am Verstärker selbst, nicht über die Fernbedienung schalten; alle anderen Befehle gehen überall).

Im 10ms-Takt wird die Quellenumschaltung, die Tape An/Aus- und die Mute-Umschaltung abgehandelt. Um Knacken am Ausgang zu vermeiden, wird 10ms vor dem Schalten der Relais die Mute-Zusatzschaltung aktiviert und 10ms nach dem Schalten wieder deaktiviert, nur wenn Mute aktiviert wurde bleibt die Schaltung an.

Zur Anzeige des Status im Display gibt es eine Zentrale Routine, die prüft, was gerade dargestellt ist und ob das noch aktuell ist. Wenn nicht, wird ein Refresh durchgeführt. Das spart ein ständiges Neuzeichnen des Displays und führt zu einer ruhigen, flackerfreien Anzeige.

Fernbedienung

Als Fernbedienung kommt eine kleine Universalfernbedienung zum Einsatz, die auf den Namen "TV Zapper" von One For All hört (gibt's unter anderem bei Reichelt). Damit der Vorverstärker auf sie hört, muss man einen RC5-konformen Code einstellen, den man unter anderem bei Geräten von Philips finden sollte. Bei meinem Zapper habe ich den Code 11233 verwendet.

TV Zapper

Fazit

Der Vorverstärker hat mit den Nachbesserungen einwandfrei funktioniert und seine Funktion bestens erfüllt. Die Reaktion auf die Fernbedienung ist super, sogar vom hintersten Winkel des Zimmers aus reagiert er noch auf Kommandos. Beim Umschalten der Kanäle hörte man kein Knacken, und in leisen Passagen keinerlei Brummen oder Rauschen.

Inzwischen ist der Röhrenamp verkauft, und somit auch der Vorverstärker arbeitslos, weswegen ich ihn außer Betrieb genommen und demontiert habe.