De opzet is als volgt: een SRC4392 dient als SPDIF en I2S-receiver en voert een upsampling uit naar 96kHz of 192kHz, dat moet ik in de praktijk nog bepalen. 24 bit audio wordt hierbij geconverteerd naar 16 bit, de TDA1541 is immers een 16 bit dac. De aldus verkregen uitvoer wordt geconverteerd door een CPLD (een ispMACH4128V van Lattice) van I2S naar simultaneous dataformaat, het tweede formaat dat wordt ondersteund door de TDA1541 naast I2S. Voor simultaneous data is een conversie nodig van het dataformaat van two's-complement naar offset binary hetgeen ook door de CPLD wordt gedaan. Door de interne werking van de TDA1541 produceert dit lagere jitter dan I2S. Verder wordt een differentiele uitvoer gegenereerd voor 2 TDA1541's. Een TDA1541 verzorgt het linkerkanaal plus en min, de ander het rechterkanaal plus en min. Verder levert de CPLD nog de DEM clock signalen. Ik heb de CPLD geprogrammeerd in VHDL, leuk om daar ook eens ervaring mee op te doen.
De nu differentiele analoge stroomuitgangen van beide TDA1541's worden door een differentiele opamp (OPA1632) geconverteerd naar een uitgangsspanning en door een tweede opamp (LME49720) in combinatie met een lowpass filter omgezet naar single ended analoge uitgangen.
Voor de benodigde spanningen van de dac's en de opamps gebruik ik de TPS7A30 en TPSA79 spanningregelaars. Verder heb ik de controller van de SRC4392 op de hoofdprint ondergebracht.
Ik laat op dit moment een print maken en ben benieuwd naar het verdere verloop.

Linksonder is de ATMega88 te herkennen. Links in het midden zit in een TQFP48 behuizing de SRC4392, verder naar rechts in TQFP100 de CPLD. Verder beide TDA1541's in DIP28 met daaronder de IV-converters en de conversie naar single ended. Aan de bovenzijde bevinden zich de componenten voor de voedingsspanningen.