Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Digital Source Digital Players and Recorders: CD , SACD , Tape, Memory Card, etc.

Ultimate Open Source XMOS USB-I2S: The source to end all sources.
Ultimate Open Source XMOS USB-I2S: The source to end all sources.
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Thread Tools Search this Thread
Old 1st June 2013, 08:37 PM   #1
krfkeith is offline krfkeith  United States
diyAudio Member
krfkeith's Avatar
Join Date: Sep 2011
Default Ultimate Open Source XMOS USB-I2S: The source to end all sources.

There are a host of options on DIYaudio for I2S, but none of them seem to completely fit the bill, and most importantly, very few are open source! Therefore, I propose a group project to build the ultimate USB-I2S.

In terms of audio, it should have the following features:
16-bit, 24-bit, 32-bit
44.1Khz 48Khz 88.2Khz 96Khz 176.4Khz 192Khz 352.8Khz 384Khz
also, DSD64 and DSD128

I propose, as the chip, an XMOS.

Now the questions:
  • Asychronous or Sychronous? Which is better?
  • What about reclocking and/or FIFOs? I've heard about so-called "generic" FIFO chips from Cypress. What about the Potato Semiconductor mod for the Almanero?
  • Which isolators?
  • DSD can be run to the XMOS via DSD over PCM, but how is this converted to DSD output for the DAC?
  • What clocks? How many? Does there need to be a separate clock for each sampling rate?
  • I've heard about a clock from silicon labs where the frequency can be programmed, can that be used?
  • Is there anything else I'm missing?

I have to say, all of this is very overwhelming! There are just so many options!

  Reply With Quote
Old 13th June 2013, 11:35 AM   #2
blueskull is offline blueskull  China
diyAudio Member
Join Date: Jun 2013
Location: RTP Metropolitan, NC, USA
1. Async or Sync, if you have an ASRC, you won't care about the original jitter. Even if the PC give out a wrong frequency, i.e. 1000ppm higher, it won't affect you. You definitely can't tell 1kHz or 1.001kHz.
2. Reclocking is better preferred. Reclocking can reduce jitter and eliminate the need of sync USB, and it can guarantee the DAC operates at a much more higher sample rate than 20kHz. It's a common misunderstood that SRCs will improve details by interpolation, however, if you really did wrote an ASRC or SRC, you will know there is a digital LPF in it, so it can't really improve details. However, SRCs can elevate DAC's working frequency, that can effectively isolate conversion noise to audible frequency, thus simplifies the circuitry of analog LPF. Furthermore, an ASRC without input buffer will NOT reduce jitter, due to even if the jitter to DAC is reduced, the jitter to the SRC's decimation filter is NOT reduced, therefore it still degrades the SNR and DR. However, an ASRC with a buffer and a DPLL or a PLL, can actually mitigate the jitter issue. Independent ASRCs such as AD1896 will be prefered, while integrated ASRCs inside ADSP-21XX series was preferred as well. They can achieve 140dB DR, as AD1896 can. My currently approaching is not XMOS, but an Altera FPGA. XMOS products with ASRC seems not performing well. My Bladelius DAC performs with RMAA worse than my Asus Essence STX.
3. Isloators: If you are mentioning an isolator to isolate IIS or LJ or RJ or data that bypasses DAC's internal filters, I will recommend TI's ISO series, because they use 2 isolators, one for low freq and DC, while the other one for high freq, which is not modulated, which mean you can get high frequency signal pass the isolator without clocked by the isolator's internal PWM clock, that will result in a better phase matching.
4. DSD? If you don't want to get troubled in patent issues and you don't want to connect to a DSD system, don't use it. DSD is for external connection, just as AES/EBU, it is not intended to be used as an internal connection.
5. Clocks. As soon as you have a precise PLL or DDS with an ASRC, why bother on multiple clocks? Clocks could be generated by external PLL or DDS. Even generated by DDS, buffer it with a PLL is preferred, to get lower phase noise. After the PLL buffer, a digital logic buffer is preferred to distribute the clock into DACs and FPGAs. Do NOT EVER use the FPGA's internal PLL and IO as clock generator and buffer, that is very jittery, unless you use a PLL intended for SERDES, which shows in Vertex or Stratix or Lynx or Arria series of FPGAs, which are far too expensive for audio use.
6. Those programmable clocks are intended to generate high frequency clocks and they uses PLL as clock multiplier, they are designed and optimized for telecommunication, not audio. And, they are hard to obtain from distributors, and not quite easy to get sampled. Generally, a NON TCXO will perform well if a PLL buffer is used in the very backend of clock signal chain.
7. If you want to construct a 140dB ASRC, be sure to use FPGAs, because DSPs are designed to do tens of taps of FIR calculation, not hundreds. With a 0.4 roll-off raising cosine FIR filter, you need 500 taps to obtain 140dB DR at 100ksps, Fcut=30kHz. FPGAs can do actually any sort of calculation with highly optimized performance, of course, a little bit more expensive, but cheaper than high-end DSPs, and consumes lower power.
BTW, don't drive a DAC to its upper limit of sample rate, that may deteriorate its THD and IMD performance. I'm currently designing an external DF and THD reduction digital system, as well as a linear interpolation analog system, see if it's possible to transcend the performance of ES9018, using only cheap and massively available PCM1792A.
Currently I've no much time on it, because I'm facing my semester exam, and follows GRE and TOEFL test. I'll continue my super DAC project on approx. October 15th. If anybody have any suggection, pls PM me.

Last edited by blueskull; 13th June 2013 at 11:39 AM.
  Reply With Quote
Old 13th June 2013, 10:44 PM   #3
GTrenchev is offline GTrenchev  Bulgaria
diyAudio Member
GTrenchev's Avatar
Join Date: Feb 2011
I want I2S input for ADC
Perboards are fun
XMOS->PCM1794->LME49720->BUF634(x2)->KRK KNS08400
  Reply With Quote
Old 14th June 2013, 02:31 PM   #4
s3tup is online now s3tup
diyAudio Member
s3tup's Avatar
Join Date: Dec 2004
Location: Israel

Copying this design would be a great starting point, as it has the right flavors in right places.
xdxd.io - software audio analyzer, crossover studio
  Reply With Quote
Old 14th June 2013, 04:54 PM   #5
luxury54 is offline luxury54  Romania
diyAudio Member
Join Date: Dec 2008
there is a new design of xmos async interfcae on ebay, it is coming also boxed with I2S tap points inside the box

Commpleted 192K 24bit Xmos USB to Fiber Coaxial Output I2S Asynchronous WLX | eBay

item No. 151061728734
== There are no limitations to the self except those you believe in ==
  Reply With Quote


Ultimate Open Source XMOS USB-I2S: The source to end all sources.Hide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
XMOS-based Asynchronous USB to I2S interface Lorien Digital Line Level 3232 13th January 2020 05:51 PM
Open-source USB interface: Audio Widget borges Digital Source 2412 16th September 2018 11:32 AM
24 channels USB to I2S interface (with Source codes, ASIO/VHDL/Schematic) KOON3876 Digital Line Level 80 10th July 2018 01:02 PM
USB to I2S: M2Tech vs XMOS vs Open-source Qnktc audiodesign Digital Source 55 20th December 2012 07:27 AM

New To Site? Need Help?

All times are GMT. The time now is 06:57 AM.

Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 15.00%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Copyright ©1999-2020 diyAudio