Asynchronous I2S FIFO project, an ultimate weapon to fight the jitter

When doing boards, the clock is always the most critical signal, so placement is always done so that any clock traces are the shortest routes on the board. This is one of the major rules for digital PCB design, whotever the system. So you will always get the best results with the shortest clock. Remote clocks can be done but you have to be careful with the interface, ie how you get the clock signal from the xtal to the IC clock input pins.
Personaly I have never done a board where the main clock is remote from the main circtuitry, apart from some bus systems where you have system clocks running around, though these tend to be on motherboards.
 
Thanks Marce,

That is what I seem to recall from the reading I've done on Buff III. I know that Ian has some sort of adapter board for the Buff III built which no doubt will give the shortest leads but not sure how many he has or if he is still offering them. In any case at this point it is certainly not possible to achieve a shorter lead length than the Buff III's built in clock. So short lead length vs. your I2S source running on the same clock as the DAC with the FIFO. Wonder if anyone has done an jitter measurement on the two. It would seem that the FIFO route despite the lead length is more advantageous and thus I would suspect lower jitter than the alternative, judging from folks comments on the sonic improvements of the FIFO.

-TJ
 
How is it going with the L/R splitter board? If we aren't going to split the data into left and right via the software, what is the opinion of something like this added to the front of the reclocking board with jumpers and of course an extra reclocking of the extra data line? It would help those wanting to use good dac chips for NOS and or oversampling via computer:

splitter-shifter.png


Just a snapshot of what this would enable the use of:

DAC THD&N SNR
AD1865 - 88dB -110dB
AD1862 - 98dB -119dB
PCM56 - 94dB -110dB
PCM63K -1000dB -120dB
PCM1702K -100dB -110dB
PCM1704K -101dB -120dB
 
Last edited:
I prefer I2S which sounds better.

S/PDIF, as well as AES/EBU, transmits both clock and data signals at same time with bi-phase modulation, which will introduce more jitter during clock recovery on receiver side by a normal DIR chip. The recovery clock is generated and has to track the bi-phase signal to avoid un-locking. That's why you prefer I2S.

But it's no longer an issue if you put a FIFO between the DIR and DAC. I did a loop testing (big loop) on my DIX9211 S/PDIF board and confirmed that the S/PDIF transmiting is bit-perfect for I2S stream below 24bit. That meas there is no difference between I2S and S/PDIF as inputs for FIFO applications except you need real 32bit I2S. The MAX Fs would be a real limitation for a S/PDIF.

Different from S/PDIF, I2S is not an isolated transmiting, which obviously introducing EMI noise via ground or ground loop. Another problem is, TTL was not designed for distance transmiting. So, for I2S applications, I'm highly recommending using logic isolate chips, and making the cables as short as possible(or converting them into LVDS).

Is there anybody has ever tried NVE IL7XX digital isolators or other digital isolating solutions for I2S signals?

Have a nice weekend.

Ian
 
Last edited:
That meas there is no difference between I2S and S/PDIF as inputs for FIFO applications except you need real 32bit I2S. The MAX Fs would be a real limitation for a S/PDIF.

Ian

Thanks Ian, I will connect the WaveIO to the TTL SPDIF input of FIFO. One question about source selection, do I have to use a relay to short the selection header or just feed a TTL "Low" to the pin?
 
Thanks Ian, I will connect the WaveIO to the TTL SPDIF input of FIFO. One question about source selection, do I have to use a relay to short the selection header or just feed a TTL "Low" to the pin?

I don't see any problem if you keep TTL low for no-selected signals, except the souce ground is too noisy. But the FIFO board doesn't have a spdif input, you have to feed it into the ttl input of the spdif board.

Regards,

Ian
 
Member
Joined 2003
Paid Member
Another route?

one question...what is the best practise to get i2s from the pc ? usb or directly fro, the sound card like a julia ? or other method ?

USB, unless you can mount the juli@ right next to the dac somehow. using i2s over distances to connect boxes is nothing but hype, its not designed for long connections and anything that makes it able to adds jitter

*SNIP* Different from S/PDIF, I2S is not an isolated transmiting, which obviously introducing EMI noise via ground or ground loop. Another problem is, TTL was not designed for distance transmiting. So, for I2S applications, I'm highly recommending using logic isolate chips, and making the cables as short as possible(or converting them into LVDS).

Is there anybody has ever tried NVE IL7XX digital isolators or other digital isolating solutions for I2S signals? *SNIP*


This conversation is getting very interesting to me. I use a modified Juli@ on a music server based on the cMP/cPlay by cics. I'm currently feeding the I2S from the Juli@ to one of the ES9022 DAC cards from DIYAudio's EUVL… very nice sound. The ES9022 card is mounted directly on the Juli@'s digital section with very short I2S connections(shorter than the stock card's connections to its stock DAC).

But I've got a Buffalo-II I'd like to install and with the various output stage & power supply options, it's a challenge to package into the PC's case. Also, I'm sure that getting it outside of the case will get it into a lower RF/EMI environment, even with all the work I've done to lower that inside of the case (extreme SW minimization plus all linear supplies to the Mobo, next up is removing the chips for un-needed peripherals on the Mobo!).

My current plan is to use an LVDS transmitter-receiver pair (I currently have the Twisted Pear Teleporter) to lengthen the I2S connection to 2' or so to that remote DAC. I know that PS Audio's scheme to transmit these signals via LVDS over an HDMI cable seems to be sucessful… not only for them, but also K&K Audio, Wired4Sound, Sonore, Chiaki/Bunpei's MicroSD card player, & Fidelix among others. I don't know about all of them, but I do know that PS Audio, K&K, & Chiaki/Bunpei do an asynchronous reclock at the receive end (& Chiaki/Bunpei also can supply HW to do a synchronous reclock which they have said is better-sounding). Twisted Pear also seems to be very happy with how the Teleporter works for them.

That's where the Asych I2S FIFO comes in. I got one from the tail end of the first GB. My plan to set it up as follows: cMP/cPlay PC -> Modified Juli@ -> TP Teleporter transmitter -> CAT6 -> TP Teleporter receiver -> Ian's Asynch I2S FIFO w/dual clock board (setup synchronous with the DAC) -> BuffII -> output stage (current top picks are TP's Legato, OPC's D1, & EUVL's Sen).

I know that the LVDS does add some jitter… theoretically less than an isolator like the NVE IL7XX. And according to who you ask, the LVDS seems to impart some amount of isolation (but Fidelix & K&K still have galvanic isolation at their receive end). Hopefully the Asynch I2S FIFO will minimize the impact of this added jitter, but I'm guessing that you still want to keep the jitter as low as possible, which is why I'm not currently planning to add NVE IL7XX or other isolators into the stream.

Why all this instead of the Asynch USB everyone else is going with? With the latest refinements of the cMP/cPlay setup, one lays into Windows XP with a machete and cuts out EVERYTHING not needed for basic playback (resulting in a OpSys + player of under 15Mb!). For those using a PCI-connected sound card like the Juli@, this includes fully disabling the USB functionality, both in the Mobo's BIOS & in WinXP. To us practitioners, this does appear to make a significant sonic difference (no trolling on this please… if you must, start another thread). Plus I have an investment in making the Juli@ digital section work well (with very good sonic results so far). And also, because not a lot of people are doing it this way (gotta be an individual, right?)

My question is, does this sound like a plan? Or have I missed something terribly important?

Greg in Mississippi

P.S. for those getting up to speed on this, here's some useful links:

EXAU21 (uses NVE IL7XX GMR Isolators & has been connected via the Fidelix LVDS interface…. Worth searching through the thread for these & jitter discussions): http://www.diyaudio.com/forums/exad...i-channel-asynchronous-usb-i2s-interface.html

XMOS USB->I2S (also uses GMR Isolators & worth searching through): http://www.diyaudio.com/forums/digital-source/188902-xmos-based-asynchronous-usb-i2s-interface.html

TP Teleporter LVDS Jitter: http://www.diyaudio.com/forums/twisted-pear/201106-introducing-bit-teleporter.html#post2793811

Chiaki/Bunpei's MicroSD Player & Fidelix's LVDS / IL7XX setup: http://www.diyaudio.com/forums/digi...ory-card-transport-project-4.html#post2214403

Search the K&K Audio forum on the Audio Asylum for info on their I2S-connecting LVDS Setup (too many useful threads to post here)

GLT's experiment with a GMR isolator on I2S: Experiments with NVE IL715 Isolator H i F i D U I N O

Info on Juli@ card mods: Audio Asylum Thread Printer & Audio Asylum Thread Printer
 

Attachments

  • IMAG2134 (Large).jpg
    IMAG2134 (Large).jpg
    126.4 KB · Views: 676
Last edited:
i'm aware of all that reading material, seems a massively long way around to me, I gather the juli@ isnt capable of super high speed, nor multichannel, so I dont see any benefit over just using spdif into the fifo, as mclk is decoupled and the rest is buffered and reclocked

theres a different rulebook with this device. going to great lengths to use i2s when you arent using speeds higher than spdif can do doesnt make a lot of sense IMO. want isolation? use toslink. since you have it already sure I guess so, but I wouldnt bother if you havent bought everything. all of your psu tweaks and messing around with the mobo may have been quite meaningful before, but since none of the error sources you are decoupling are passed through the fifo..well =) or didnt you get the spdif input board?

of course this should be equally so for the i2s and teleporter, any jitter should be wiped out, but is it worth the trouble? I would have thought the fifo in the signal was individual enough, too much else becomes bad engineering, well past overkill IMO
 
Last edited:
This conversation is getting very interesting to me. I use a modified Juli@ on a music server based on the cMP/cPlay by cics. I'm currently feeding the I2S from the Juli@ to one of the ES9022 DAC cards from DIYAudio's EUVL… very nice sound. The ES9022 card is mounted directly on the Juli@'s digital section with very short I2S connections(shorter than the stock card's connections to its stock DAC).

Greg in Mississippi

Your project sounds great!

If it is possible, using the logic isolation receiver like IL7XX for a PC based hifi application. That amount of additive jitter is not a big deal. FIFO could tolerance with them without any problem if you don't have anything wrong with the data.

Ian
 
Last edited:
Member
Joined 2003
Paid Member
Qusp,

I knew you were aware of most of these links seeing that you were a contributor in most of the DIYAudio ones (dude, I follow your posts… If I want to know what's the hottest tech in the DIY audio world, I look to see where you are posting!). And I figure that IanCanada knows most of these too… I just didn't expect everyone who'd respond to or be interested in this would have seen all of them.

Then as far as applicabiity, I'm not looking for anything above 192 & stereo with standard WAV/FLAC files. I know you're into multichannel & high-rate, but I'm pretty old-school.

As far why I'm going to these lengths, to start I'm doubly berift of SPDIF… I not only didn't get Ian's SPDIF card, but also remove the SPDIF capability in my modifications to the Juli@. Luckily, the two TP Teleporter modules didn't cost me any more than Ian's SPDIF card.

Second, several manufacturers who I trust (PS Audio & K&K) seem to suggest that the I2S via LVDS is a good idea. 100,000 flies and all that.

Third, I have an aversion to adding data format conversions. I know Ian's SPDIF board with his reclocker fixes this, but I still would prefer to keep the signal in the I2S domain once it's there as long as I can use it without badly corrupting it. The LVDS transmission seems to do a pretty good job of this.

And finally, I'm not convinced that even with a device like Ian's Asynch Reclocker that the source doesn't matter. After getting this all setup, I will try different computer source setups & unmodified Juli@ to see if there is an audible difference. Hopefully there won't be and I can use a less 'hair-shirt' player setup than the severely lobotomized cMP/cPlay setup I currently use. But I'm still a bit skeptical on this.

Of course, all of this is philosophy and un-provable. Sorry I don't have any good data to back this up!

Later!

Greg in Mississippi

P.S.
ahh but i2s comes with ground if you are going directly in. hmm so really its clean ground on the i2s, or just use spdif.

My understanding of the LVDS connection is that the differential pair provides a connection that doesn't require a ground connection between the sender and receiver and that the I2S ground at the receiving side is the local ground (hopefully cleaner). Please, if I'm not understanding this right, help me do so.
 
Member
Joined 2003
Paid Member
Your project sounds great!

If it is possible, using the logic isolation receiver like IL7XX for a PC based hifi application. That amount of additive jitter is not a big deal. FIFO could tolerance with them without any problem if you don't have anything wrong with the data.

Ian

Thanks Ian.

I'd already considered adding a GMR isolator and have even gone as far as getting the devices on-hand.

So it will likely be an alternative I try after the initial implementation.

Does it make more sense to put it at the sending or receiving end? I'm inclined to do it at the sending end before the LVDS & power it via a power supply that is separate from the computer supplies.

TIA for your answer... and really, really, thanks for providing this great device to the DIY'er.

Greg in Mississippi
 
Last edited:
Thanks Ian.

I'd already considered adding a GMR isolator and have even gone as far as getting the devices on-hand.

So it will likely be an alternative I try after the initial implementation.

Does it make more sense to put it at the sending or receiving end? I'm inclined to do it at the sending end before the LVDS & power it via a power supply that is separate from the computer supplies.

TIA for your answer... and really, really, thanks for providing this great device to the DIY'er.

Greg in Mississippi

You welcome, Greg.

Ian
 
Qusp,

I knew you were aware of most of these links seeing that you were a contributor in most of the DIYAudio ones (dude, I follow your posts… If I want to know what's the hottest tech in the DIY audio world, I look to see where you are posting!). And I figure that IanCanada knows most of these too… I just didn't expect everyone who'd respond to or be interested in this would have seen all of them.

:eek:... stalker ha... nah i'm just a bit more ermm..vocal about it than most. there are people like Ian tinkering away that put me and my efforts to shame. though perhaps as i'm very much hunter-gatherer I may cover a more diverse range of technologies than someone with the head-down creation mode going on.

One of these days I might actually get creative, but for now i'm happy to just let those who really know what they are doing do their thing.

Then as far as applicabiity, I'm not looking for anything above 192 & stereo with standard WAV/FLAC files. I know you're into multichannel & high-rate, but I'm pretty old-school.
all good then, well yeah if you hadnt already started down this road I would just be saying forget it, go with the fifo spdif, but since you are most of the way down this road your solution seems sound; a bit convoluted and theres a bit of redundancy, but sound.

As far why I'm going to these lengths, to start I'm doubly berift of SPDIF… I not only didn't get Ian's SPDIF card, but also remove the SPDIF capability in my modifications to the Juli@. Luckily, the two TP Teleporter modules didn't cost me any more than Ian's SPDIF card.
yeah they are neat little units, I guess i'm just not totally sold on RJ45, the HDMI connector is much better suited. this may not have any basis in reality of course.

Second, several manufacturers who I trust (PS Audio & K&K) seem to suggest that the I2S via LVDS is a good idea. 100,000 flies and all that.
absolutely its a good idea if you must have i2s over any distance, but it doesnt beat just having the thing close, i'm not convinced of converting to i2s so early in the signal path, I think usb with its full error correction and buffering is a more natural solution. I know its all rather topical/fashionable, but it seems counter-intuitive to me.
Third, I have an aversion to adding data format conversions. I know Ian's SPDIF board with his reclocker fixes this, but I still would prefer to keep the signal in the I2S domain once it's there as long as I can use it without badly corrupting it. The LVDS transmission seems to do a pretty good job of this.
the spdif suggestion was instead of, not on top of your i2s transport, making for less conversions not more. we only suggested going back to spdif on the previous pages to solve the problem of needing multiple inputs

And finally, I'm not convinced that even with a device like Ian's Asynch Reclocker that the source doesn't matter. After getting this all setup, I will try different computer source setups & unmodified Juli@ to see if there is an audible difference. Hopefully there won't be and I can use a less 'hair-shirt' player setup than the severely lobotomized cMP/cPlay setup I currently use. But I'm still a bit skeptical on this.
I understand the skepticism, but this is more than a reclocker, in fact the input clock bares no relation to the output clock, if I wasnt working on multichannel I would probably just go back to bnc or toslink on Ians spdif board and draw a line under it.
Of course, all of this is philosophy and un-provable. Sorry I don't have any good data to back this up!
haha all good, if we had to do that any time we made plans, many things wouldnt get done

My understanding of the LVDS connection is that the differential pair provides a connection that doesn't require a ground connection between the sender and receiver and that the I2S ground at the receiving side is the local ground (hopefully cleaner). Please, if I'm not understanding this right, help me do so.
that was my point, I was just going through that in my mind, that direct i2s without isolation would be counter productive, so your LVDS or Spdif are needed if you dont have a clean ground. convoluted or not thats what youve got to do
 
Last edited:
The real speed of Toslink optic transmitter/receiver working together with DIX9211

the optical input isnt limited to 96khz, your optical output is, haha I just noticed there is no tx on the input (i've only used optical or i2s) so ya I get your point.


I like I2S, it could go higher Fs and more than 24bit word length, as well as no need doing bi-phase encode and decode. Especially the USB, it’s kind of tendency of HD music output devide, I use it for most of the time.

But I still couldn’t help doing some research on the optical s/pdif to see what the speed limitation is.

I use a pair of TOTX147 and TORX147 on my S/PDIF interface board as the optic transmitter and receiver. The max rated speed was 15Mb/s. I don’t know what the testing condition was.

Using a 5 feet normal optic cable, I did a loop testing with a 192 KHz/24bit digital audio signal on my DIX9211 S/PDIF interface board. The testing last two hours, within that time, I didn’t catch any bit error. It was kind of bit-perfect transmitting.

However, by comparing, I did same loop testing under same condition on a couple of other DIT and DIR chips. The results were not as good as DIX9211. Some of them couldn’t lock stably at 192 KHz even with coaxial cable connected (I’m sorry I don’t want to tell what the P/N it was)

After that, I try to increase the Fs to 384KHz, none of them can get locked, of course they couldn't! J

So, I suspect, the real maximum Fs speed of an optical s/pdif is partly connected to the performance and ability DIX chip and not 100% limited to the rated speed of that opt transmitter/receiver, especially for a FIFO based application, which is not care much about the jitter from the input clock.

Just a sharing of my research experience with you guys for reference. J
 
Last edited: