XMOS-based Asynchronous USB to I2S interface

@ soundcheck: For now all that this card can offer is 2 channel @ 24 bit / 192 KHz (as per XMOS reference design). Yeah, I forgot: drivers for Windows (FULL versions) and native support for MACs 10.6.3 or later.

And speaking of that, I've been asked a lot if this card can be isolated from USB bus. Well, my answer is this: to date I don't know a chip that will isolate USB and work at high speed (480 Mbps) but there's an alternative: ADI's ADUM4160 but works only in USB low/full speed modes, so no more 24@192. From what I know the limit is 24@96... it's all that you can have using it.
I have another ideea which I guess it's an option for others too (TP? :):
AC-coupled differential signaling on I2S lines - including all the clocks and additional signals using LVDS, MLVDS, (?)ECL, or whatever buses you want (still - some induce a lot of jitter compared to others :D), perhaps realigned on the receiver's side using the master clock source (as regal wanted). This is what I'll implement in near future but for now I have to keep my promise to some of you and build a revision to this card with total costs of 99 Euro... while (trying to) enhance the I2S output signals and (maybe) my beloved SPDIF output as well.
Choosing the chips that I want for differential signaling will rise the costs considerably so it's not an alternative for now.
Cheers,
L
 
Last edited:
@soundcheck and Lorien
The card should work well with Linux as well since newer versions (since sometime 2010 I think) of ALSA fully supports USB audio class 2. I don't have an interface to test with, but worst case scenario AFAIK you're limited to USB audio class 1 which would limit the output to 24/96 (see for example here). Unless someone has tested and have evidence of the contrary, this is my belief.

Anyway, when the revision arrives it's very likely I'll order and build one to use with my linux pc, so if you can wait I can be the guinea pig ;)

EDIT: ALSA seems to have full USB Audio class 2 support since 1.0.24 according to the info I can find.
 
Last edited:
Lorien, are you selling this board? It looks rather expensive with double-sided SMD placements. I followed the links to the XMOS USB Audio 2.0 Reference Design at $149, but that does not look nearly as extensive as your design.

P.S. I reached this thread because someone suggested your board to someone interested in I2S output, which is what made me think that your board was available for purchase.
 
You will be surprised to know that in fact it's a little cheaper that XMOS version :)
Surprised? Well, yes and no. Your board is expensive to make, I'm sure, but I also realize that smart people can find a way to make even high quality electronics affordable.

P.S. Duh, I somehow missed the fact that this thread has more than one page. I feel like a newbie. As soon as I followed your link, I realized that I have four more pages to read to catch up. Thanks for your patience.
 
I do

not think that Lorien's USB board is overpriced in any way, in fact, I believe he is offering this board at a very, very reasonable price for what it is.
If you compare to any other XMOS based solutions, I think you will find Lorien's price to be a very good deal. Please Lorien, do not be discouraged by those wanting a "cheaper" board; and for your next revision, please go ahead and use more expensive parts where they will make a difference in performance, and raise the price accordingly. I see your work here as a premium solution, for those looking for the best possible performance.
There are plenty of average performance USB solutions available from China for those looking for a cheap computer audio interface.
 
@barrows

You are absolutely right. Even thinking about USB had in the past given me a case of the jitters. Lorien has done the heavy hardware lifting while I listened to music. I can hardly wait to ship money his way in exchange for an opportunity to enjoy future listening even more!

I had always thought isochronous firewire would be needed to get the kind of performance this board promises. I will be delighted to be proved wrong! Admittedly many changes in drivers and silicon have been required to make the insight possible for Lorien but he is delivering.

I remain convinced that 'intelligent upsampling' rather than mere interpolation for redbook music can be performed in software, possibly by preprocessing, but really needed the bandwidth Lorien is making possible to test my theories.
 
Lorien,

Looks like you are putting together a quality design & hardware.

Do you have a list of the updates for your next board revision and an ETA?

Also, regarding USB isolation, can't you use the same GMR solution that the exadevices board is using (which goes up to 384Khz)? Even if it adds a little to the cost, people will pay extra given the premium design you are putting together.
 
GMRs

Can be used, but only to isolate the I2S output, not the USB input. The problem with this approach is that the GMRs add jitter to the I2S output.
I am pretty sure Lorien's first version does have (optional) GMR isolated I2S outputs-that is the user has the choice to use the isolated outputs or the non isolated outputs.
 
Couldn't these be used on the USB input? They are pretty high speed and jitter on the USB line isn't a problem, and as USB is a differential bus (D+ and D-) we should be able to get away with not connecting the earth & power, and recreating the D+ and D- with local earth reference on the other side of the GMR? I'm no USB expert, just thinking out loud.
 
I remain convinced that 'intelligent upsampling' rather than mere interpolation for redbook music can be performed in software, possibly by preprocessing, but really needed the bandwidth Lorien is making possible to test my theories.
Mac OS X CoreAudio offers this intelligent upsampling. It would be equivalent to using an ideal DAC at the original sampling rate, followed by a noiseless analog connection to an ideal ADC at the higher sampling rate. In other words, CoreAudio does not use linear interpolation. You probably won't get this performance from iTunes, because that software is not geared towards audiophiles, but it rather tuned for low CPU usage in case music is just a background priority. But custom audio software could easily make use of the perfect upsampling technology by setting the CoreAudio SRC parameters to maximum quality. For upsampling, some of these parameters are less important than they are for downsampling, because downsampling requires the loss of frequency information.

If you're stuck on a PC and searching for the ultimate in Redbook playback over your own USB hardware DAC setup, I recommend looking into OSX and CoreAudio. You might have to learn a little programming, or find some playback software that handles this for you, but the ideal SRC is there.
 
Lorien,

Looks like you are putting together a quality design & hardware.

Do you have a list of the updates for your next board revision and an ETA?

Also, regarding USB isolation, can't you use the same GMR solution that the exadevices board is using (which goes up to 384Khz)? Even if it adds a little to the cost, people will pay extra given the premium design you are putting together.

The GMR "solution" is not much different than using spif. Differential signals is brilliant, what I use uses this technique to the tune of 3ps at the BNC of the receiving end (commercial and expensive).

Lorien,

How do you put the unit in "slow Mode" ie 24/96 to use the usb isolation ?
 
Last edited:
If you're stuck on a PC and searching for the ultimate in Redbook playback over your own USB hardware DAC setup, I recommend looking into OSX and CoreAudio. You might have to learn a little programming, or find some playback software that handles this for you, but the ideal SRC is there.

Can't you use software like Saracon or Izotope-Rx to upsample. Then you won't have to upsample on the fly? I thought any extra processing on the fly would cause more jitter?
 
Last edited:
Can't you use software like Saracon or Izotope-Rx to upsample. Then you won't have to upsample on the fly? I thought any processing would affect jitter.
Yes, you can certainly use software to upsample. It's just not always convenient to process your audio in advance, nor is it affordable to store 44.1 kHz recordings at 192 kHz. Keep in mind that upconversion does not (and cannot) add any meaningful information - it's merely a technique to improve the conversion.

Processing does not affect jitter at all, not unless something is wrong with your system.

Granted, if your CPU cannot handle realtime upconversion from 44k1 to 192k then you will be forced to do it in advance. But my Macs are very old - half a decade or more - and there's absolutely no problem handling the calculations in real time. Be warned, though, that some software which does real time SRC might be cutting corners, so you really need to be certain that the absolute maximum CoreAudio settings are being used. They have one quality mode called 'bats' which is named because of its ultrasonic performance.

EDIT: Hardware resampling can suffer from jitter because of SPDIF or other design issues where the clock is pushed forward from the media source to the DAC. However, CoreAudio allows the DAC to be the master clock and the data source to be the slave, such that upsampling is clocked by the DAC, not the other way around. It is this "pull model" that allows CoreAudio to be superior to SPDIF/AES3 or hardware SRC designs where the clock must be "pushed" through to the DAC.
 
Last edited:
Couldn't these be used on the USB input? They are pretty high speed and jitter on the USB line isn't a problem, and as USB is a differential bus (D+ and D-) we should be able to get away with not connecting the earth & power, and recreating the D+ and D- with local earth reference on the other side of the GMR? I'm no USB expert, just thinking out loud.
In my opinion, such isolation (particularly I2S) is missing the forest for the trees.

Ultimately, the DAC chip itself must combine digital input signals on one side and analog signals on the other side. If your DAC board does not properly isolate this unavoidable junction between digital and analog then all of your other digital-only isolation will be wasted expense.

As others have pointed out, some of the digital-to-digital isolation techniques introduce jitter on the conversion clock lines. That seems like a bad tradeoff when you still need additional isolation at the digital-to-analog barrier.

Granted, digital-to-digital isolation can sometimes improve the data transitions, but improvements to the power supply should be able to clean things up just as well as isolation. Also granted is that if you stop the noise at several places, then there will be less noise at the final digital-to-analog junction.

All in all, it does make a bit more sense to isolate the USB instead of isolating in the middle of the I2S link. USB isolation should not affect jitter at all, because the USB is asynchronous to the DAC clock. Thus, any tradeoffs between isolation and jitter will not be affecting important signals.

Bottom line: I think designers should be focused more on power supply filtering and proper design of ground. Isolation is ultimately required on the DAC board, so focus the best efforts and greatest expense on isolation at that point.
 
my...

Couldn't these be used on the USB input? They are pretty high speed and jitter on the USB line isn't a problem, and as USB is a differential bus (D+ and D-) we should be able to get away with not connecting the earth & power, and recreating the D+ and D- with local earth reference on the other side of the GMR? I'm no USB expert, just thinking out loud.

Understanding is that GMRs have insufficient bandwidth for USB2 HS.
 
Did a bit more digging on this subject, it looks like there is no easy solution to USB high speed (480Mbps) due to bandwidth as barrows notes.

Rsdio is on the right path - and the folks at TPA mention they have a "unique" solution to the isolation question....

So Exadevices adds jitter to his solution with using the I2S isolators, even though his web site says the isolators reduce jitter....
 
So Exadevices adds jitter to his solution with using the I2S isolators, even though his web site says the isolators reduce jitter....
Well, for all I know that's hearsay (adding jitter). I don't have the exaU2I, and I certainly haven't tested it. On the two sides of the fence there certainly seem to be many who go overboard on isolating everything, whether it needs it or not; while others are critical of specific component as if they add jitter no matter how they're utilized. Either side seems potentially extreme.

If anyone has measured jitter on the exaU2I, especially compared one side of the isolation versus the other, then I'd find the test results very informative.