The idea was to implement an asynchronous SPDIF interface for DACs.
Lots of soundcards out there have ability to lock on their SPDIF input recovered clock.
And SPDIF clock recovery at DAC side is horrible and is being affected by too many things... Although WM8804 is a nice receiver chip, it can be even better, as it is both receiver and (bingo!) transmitter.
How do you get the thing work in asynchronous mode? You need to configure the WM (=WM8804, Wolfson etc) in slave mode, as follows:
SDIN (3, HW/SW) = 0 (Hardware mode configuration)
SCLK (1, AIF_MS) = 0 (Slave mode, MCLK is INPUT)
CSB (5, TXSRC) = 1 (Transmit from Data_IN)
AIF_CONF[0..1] is up to you. I have used "00" mode for I2S@16BIT, but it ate the I2S@24BIT from DIR9001. I haven't noticed the DIR9001 output format, as everything worked flawlessly from the first touch.
I want to implement the following clocking scheme for TDA1541A DAC:
The idea has failed, because on WM we always have the BCLK, MCLK and LRCLK as either input OR output, and all of them are the same. Whether they are in or out is slave/master mode dependant.
Therefore, we'll need to introduce some MCLK divider circuit to split the 384Fs masterclock into BCLK, LRCLK with required frequencies, and then feed the WM and CXD with these clocks.
After we have connected the CLK signals to CXD and WM, we can take the DATA_OUT from WM and connect it to DATA_IN on CXD. Voila, our DAC is almost ready.
Then we'll need to get some descent souncard which is able to sync on incoming SPDIF signal. When it is in sync with SPDIF input, it means it's output is synced to input too.
I had to test the WM8804 to see whther it will let me do this trick. I've setup some test bench, with TDA1543+DIR9001 DAC from China, and WM8804 "dead bug" proto.
The connection diagram was as follows:
The "DATA" from DIR9001 to WM8804 is jut to check whether WM will transmit the data from DIR9001 to Infrasonic Quartet soundcard SPDIF-IN. Yes, it did.
As well as TDA1543 produced undistorted sound if i choose "SPDIF" as sync-source for Quartet sound card.
I choose "dead bug" proto layout, as i wanted to implement best ground/PSU layout/bypassing possible.