Die Auswahl der beiden Bausteine PCM5122 (siehe Kasten “Audio-DAC PCM5122”) sowie WM8804 (siehe Kasten “IEC60958-Transceiver WM8804”) und deren Betriebsmodi inklusive Hardware-Konfiguration erfolgte nach eingehender Analyse des Quellcodes verschiedener Soundkartentreiber für den RasPi [1].
Audio-DAC PCM5122
Der Audio-DAC PCM5122 [3] von Texas Instruments ist ein HiFi-Stereo-Digital-Analog-Converter. Er empfängt das digitale Audiosignal über die I2S-Schnittstelle, die Steuerung des ICs erfolgt via I2C. Letzteres betrifft neben der Lautstärke insbesondere die Auswahl des Quarzoszillators (22,5792/24,576 MHz) und die Programmierung der PLL zum Erzeugen der Abtastraten. Neben vielen weiteren Funktionen zur Soundbearbeitung, wie etwa einem Equalizer oder einem dynamischen Signalkompressor, bringt der Chip auch einen Abtastratenwandler (Sample Rate Converter, SRC) zum Ausgleich von Abtastenratendifferenzen zur Audiodatenquelle mit.
IEC60958-Transceiver WM8804
Der Standard IEC60958-3 [4] definiert, wie digitale Audiodaten zwischen HiFi-Komponenten übertragen werden, und stellt das Pendant zu I2S für größere Distanzen (Meter-Bereich) dar. Der Baustein WM8804 [5] von Cirrus Logic dient als Umsetzer für digitale Audiodaten zwischen IEC- und I2S-Format. Die eigentlichen Audiodaten manipuliert er dabei nicht, er vermag noch nicht einmal die Lautstärke zu ändern. Auch eine Anpassung der Abtastrate unterbleibt, da es lediglich darum geht, das digitale Audiosignal robust über eine lange Leitung zu transportieren. Allfällige Anpassungen müssen im Endgerät stattfindet. Die Übertragung kann sowohl elektrisch via Koaxialkabel (S/PDIF) oder optisch über einen TOSLINK-Lichtwellenleiter erfolgen. In beiden Fällen lassen sich Distanzen bis zu 10 Meter oder mehr zwischen Quelle und Empfänger ohne Qualitätseinbußen überbrücken, da die Umwandlung ins störempfindlichere analoge Format erst im Empfänger erfolgt.
Für den Audio-DAC fiel die Wahl auf den Treiber hifiberry_dacplus.c, vor allem, weil er die laut PCM5122-Datenblatt zu den beiden Grundabtastraten passenden Quarzoszillatoren unterstützt. Beim IEC60958-Transceiver passte der Treiber hifiberry_digi.c gut ins Konzept, allerdings in seiner Standardauslegung mit 27-MHz-Quarzoszillator, und nicht in der “Pro”-Variante mit Auswahl zwischen zwei Referenzfrequenzwerten.
Die Anbindung der beiden Haupt-ICs an den I2S- beziehungsweise I2C-Bus lässt sich in Abbildung 1 gut erkennen. Anders als der PCM5122 benötigt der WM8804 eine externe Power-On-Reset-Schaltung durch den U2. Damit die 3,3-V-Versorgung nicht allzu krass auf den Analogteil des Audio-DAC durchschlägt, wird dieser durch den U1 bedient.
Das IEC60958-Signal des WM8804 läuft zum optischen TOSLINK-Transmitter (Cliff Electronics OTJ-8), der mit seinem oberen Limit bei 12,5 Mbit/s gerade noch den Betrieb bis zur höchstmöglichen Abtastrate des WM8804 von 192 kHz erlaubt. Dasselbe Signal wird über den Teiler R3 und R6 auf den konformen Signalpegel von 1 Vpp und 75 Ohm Leitungsimpendanz angepasst und über C19 gleichstromfrei an den 1:1-Impulsübertrager geleitet. Der sollte dann schon mindestens ein Übertragungsband aufweisen (beginnend bei 500 kHz bis über 185 MHz), entsprechend der 1. Harmonischen für die unterste Abtastrate von 8 kHz bis zur sicher ausreichenden 15. Harmonischen für die höchste Abtastrate. Faustregel: Abtastrate mal 64 ergibt die IEC60958-Bitrate, mal 2 für die Leitungskodierung; das Ganze geteilt durch 2 ergibt wiederum die 1. Harmonische.
Vom PCM5122 laufen die Daten je Stereokanal über den RC-Filter zur Unterdrückung der harmonischen Spiegelbilder entweder auf die 3,5mm-Klinkenbuchse oder, falls die nicht besteckt ist, auf die RCA/Cinch-Buchsen. Beide Anschlussmöglichkeiten sollten aber immer zu einem Endverstärker führen, denn für einen direkten Betrieb selbst eines Kopfhörers fällt die Treiberleistung zu gering aus.
Eine Übersicht über alle Ansteckmöglichkeiten an der Eigenbau-Soundkarte zeigt Abbildung 2.

Abbildung 2: Verbindungsfreudig – von links nach rechts: Klinke, RCA rechts/links (rot/weiß), S/PDIF (gelb), TOSLINK.
Inbetriebnahme
Als Betriebssystem-Basis für das Projekt diente Raspbian 8 “Jessie” mit Stand vom Juni 2017. Es kommt letztlich aber nur darauf an, einen Kernel der 4.x-Serie zu verwenden, der den Device-Tree unterstützt. Gegebenenfalls müssen Sie die beiden Schnittstellen I2C und I2S noch aktivieren.
Allerdings lassen sich die beiden oben genannten Treiber für den analogen beziehungsweise digitalen Teil der Soundkarte nur abwechselnd in den Kernel laden. Das klingt zwar im ersten Moment vernünftig, teilen sich doch beide dieselbe I2S-Anbindung. Ein möglicher vereinheitlichter Treiber sollte aber in der Lage sein, für das gemeinsame Audiosignal eine jeweils passende Konfiguration für beide ICs zu finden beziehungsweise den nicht verwendeten Teil abzuschalten. So ließe sich ein Dolby-Digital- oder DTS-Signal im Pass-Through-Mode nur über den WM8804 ausgeben, bei einer Abtastrate über 192 kHz käme nur der PCM5122 zum Einsatz.
In der aktuellen Konfiguration legen Sie über die Datei /boot/config.txt fest, welchen der Treiber der RasPi beim nächsten Neustart lädt. Listing 1 zeigt deren Inhalt für die analoge Soundausgabe über den PCM5122, Listing 2 das Pendant für den digitalen Einsatz via WM8804. Legen Sie außerdem noch, wie in Listing 3 gezeigt, eine passende Alsa-Konfiguration an und speichern sie unter /etc/asound.conf, können Sie mittels des Kommandos aplay -l den geraden aktiven Soundkartenteil auslesen.
Listing 1
#dtparam=audio=on dtoverlay=hifiberry-dacplus #dtoverlay=hifiberry-digi
Listing 2
#dtparam=audio=on #dtoverlay=hifiberry-dacplus dtoverlay=hifiberry-digi
Listing 3
pcm.!default {
type hw card 0
}
ctl.!default {
type hw card 0
}
Fazit
Der Digitalteil der DIY-Soundkarte funktioniert einwandfrei, selbst beim Betrieb einer Dolby-Digital-Anlage im 5.1-Surround-Betrieb jeweils an 10 Metern optischem oder Koaxkabel. Der Sound fällt dabei so perfekt aus, wie ihn die HiFi-Anlage zu produzieren vermag.






