XMOS-based Asynchronous USB to I2S interface - diyAudio
Go Back   Home > Forums > Source & Line > Digital Source

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

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
Reply
 
Thread Tools Search this Thread
Old 12th May 2011, 07:07 PM   #1
diyAudio Member
 
Join Date: Nov 2007
Default XMOS-based Asynchronous USB to I2S interface

Hello everyone,
below there are pictures of my latest version of XMOS based USB to I2S interface. I've been working on it for some time now... drivers are from Thesycon and firmware from XMOS with slight changes to adapt it to my PCB needs. It's 2 channel, 24 bit / 192 khz with some improvements over XMOS' reference design:
* 4 layer, gold plated PCB with 1/2/2/1 oz (or 35/70/70/35 um) copper thickness. There are a lot of vias to minimize the impedance.
* there are two USB inputs available: USB-B connector (mounted on the board) and 5-pin external header for something like this.
* isolated (using GMR isolators) or nonisolated (6GHz microBNC) I2S output signals.
* seven LINEAR voltage regulators are present on the card: every oscillator (and the ICs in the digital audio signal's paths) have its own dedicated LDO (the three chips soldered on the botom side of the board).
* Heavy decoupling all over the places, including OsCONs SVP electrolytics.
* USB OR external PSU. There's one green Power LED indicator on the board.
* SPDIF output signal at 1:1 trafo.
* Two LEDs can be wired to L7 and L8 pin header heaving the following functions: "Host Active" and "Audio Stream".

The oscillators are from Fox but I do have 7 pairs of ultra low phase noise NDKs available for assembling. I must admit, NDKs are very hard to aquire due to the long time of delivering (up to three months!)

May 2013 Updates:
The WaveIO's pictures are outdated as I now use oscillators only from japanese manufacturer NDK. I'll upload new pictures soon to reflect the changes.
--------
To update WaveIO's firmware to handle 32 bit @ 384 KHz audio streams, please follow my instructions listed below (valid for Windows OSes).
From the beginning I would like to say that there are two ways to upload the .bin file but only one to revert the changes to defaults.

The easiest upload way would be via "TUSB Audio Control Panel" app:
1. First thing to check is if your WaveIO card does have DFU (Device Firmware Upgrade) implemented in firmware.
All boards following September 2012 should have this feature enabled.
a) Plug in your WaveIO card and make sure that is detected by your computer (drivers are installed).
b) Open "TUSBAudio Control Panel" located in "Luckit" installation folder and click on the "Device 0" text on the left side of main window.
c) If the RevisionID value listed there is greater or equal with 0x0331 (Hex) then you can move on to the next step. If not, then you'll have to
wait to finish the daughter board and I'll make both the hardware and software changes in the same time.
Click the image to open in full size.
2. Download the file named "WaveIO_32Bit_384Fs.bin" on your computer.
3. To effectively upload the new firmware on your WaveIO you simply have to click on the "Firmware Upgrade" text on the left side, browse
for the file you have downloaded and hit the "Start Firmware Update" button.
4. The process should take up to 10 seconds after that you can easily check it by clicking again the "Device 0" text and see that the value for
"RevisionID" is changed to 0x0333 (Hex). You don't have to unplug your WaveIO board.
5. Done
Click the image to open in full size.

LEDs: Since WaveIO hardware does not support two additional signals to drive LEDs for 352.8 and 384 KHz sample rates I thought that a
simple approach will be to display these freqs. by driving two LEDs simultaneously so:
* 352.8 fs will enable 88.2 & 176.4 LEDs while
* for 384 fs, 96 & 192 LEDs will be on.
If anyone has a better and simple idea please let me know!

Power: @ USB enumeration, WaveIO will report to be external powered device so it should work okay in both configurations: USB and
external powered. This measure was taken especially to work with iPad, iPhone or other portable/battery-powered devices.

That's it for now! I'll be back soon with the second uploading/revert_to_defaults option.

Kind regards,
L
Attached Images
File Type: jpg USBtoI2S_top.jpg (155.8 KB, 19659 views)
File Type: jpg USBtoI2S_bot.jpg (125.9 KB, 17729 views)

Last edited by Lorien; 21st May 2013 at 04:22 PM.
  Reply With Quote
Old 14th May 2011, 06:31 AM   #2
Bunpei is offline Bunpei  Japan
diyAudio Member
 
Join Date: Aug 2008
Quote:
Originally Posted by Lorien View Post
The oscillators are from Fox but I do have 7 pairs of ultra low phase noise NDKs available for assembling.
Congratulation to the role-out of your new product!
I think your design considers very well various requirements DIY users would always have.

By the way, have you compared resulting sonic qualities between NDK and FOX oscillators?
  Reply With Quote
Old 14th May 2011, 03:44 PM   #3
diyAudio Member
 
Join Date: Nov 2007
A big "Thank you" Bunpei, mostly for your help related to NDK parts!
Quote:
I think your design considers very well various requirements DIY users would always have.
Perhaps you are right! Though, I've choosen the parts that fits my requirements and expectations (like LP5900 for oscillators). Even if there is room for improvements I think this board act as expected. For now, I'm working on the decoupling networks, trying hard to minimize the noise on the board. It's not crucial but every DIYer have a paranoia = mine is mostly PSU.
Meanwhile, a friend of mine (also an active member on this forum) will make some tests with dedicated HW to this card. I hope he will have enough free time to draw some graphics for the two versions: with FOX and NDK oscillators. My goal is to use only NDK parts and replace other alternatives but you know how hard is to do this, mainly in small quantities.
I did listen to the NDKs mostly and I kinda like it: in the time spent trying to squeeze the noise out of my board by moding the cap networks.

Kind wishes,
L

Last edited by Lorien; 14th May 2011 at 03:46 PM. Reason: speeling
  Reply With Quote
Old 17th May 2011, 11:13 PM   #4
diyAudio Member
 
Join Date: Jul 2010
Default wow

This looks like great work Lorien. A nice compact module. Are you going to support OSX with native USB2 on Mac?
This looks like what many DIYers have been looking for, cannot wait to hear more.
BTW, do you know the approximate current consumption at 5V? I am thinking a LiFePO4 supply for this might be nice.
  Reply With Quote
Old 17th May 2011, 11:50 PM   #5
diyAudio Member
 
abraxalito's Avatar
 
Join Date: Sep 2007
Location: Hangzhou - Marco Polo's 'most beautiful city'. 700yrs is a long time though...
Blog Entries: 103
Send a message via MSN to abraxalito Send a message via Yahoo to abraxalito Send a message via Skype™ to abraxalito
In case Lorien hasn't measured it, XMOS has a helpful guide to estimating power consumption.

https://www.xmos.com/download/public...s%281.2%29.pdf

Based on that document I'd estimate in the range 150 - 200mA from 5V.
__________________
I have the advantage of having found out how hard it is to get to really know something... how easy it is to make mistakes and fool yourself. - Richard Feynman
  Reply With Quote
Old 18th May 2011, 02:05 PM   #6
diyAudio Member
 
Join Date: Nov 2007
Quote:
Are you going to support OSX with native USB2 on Mac?
Thank you barrows! Since this board is entirely based on XMOS / Thesycon work (SW speaking) you can see details directly on XMOS web site: "USB Audio Class 2.0 is natively supported by Apple OS X version 10.6.3 and above. Support for Windows is provided via XMOS partners, Thesycon and Centrance. The drivers are configurable and provide support for WDM/Direct X and ASIO 2.1."
Power consumption: I've made few measurements and this board will need at least 5V / 430 mA @ 24 bit / 192KHz to work properly
Though, Fox oscillators are consuming up to 8 times more power than NDKs, there's NO switching Vreg there and speaking off... this board have plenty of them. I must confess that the "no compromise" ideology regarding PSUs must come to an end soon otherwise ordinary USB ports will start to complain about power requirements.
I like your LiFePO4 PSU suggestion and I'll definitely implement it. My real job has offered me few pleasant surprises like these rechargeable batteries pictured below (used in some sort of hybrid/electric cars - I don't recall manufacturer' name). I've mistakenly short circuit one of it and I saw what they are capable off
Kind regards,
L

Last edited by Lorien; 18th May 2011 at 02:06 PM. Reason: speeling
  Reply With Quote
Old 18th May 2011, 02:18 PM   #7
diyAudio Member
 
abraxalito's Avatar
 
Join Date: Sep 2007
Location: Hangzhou - Marco Polo's 'most beautiful city'. 700yrs is a long time though...
Blog Entries: 103
Send a message via MSN to abraxalito Send a message via Yahoo to abraxalito Send a message via Skype™ to abraxalito
Quote:
Originally Posted by Lorien View Post
Power consumption: I've made few measurements and this board will need at least 5V / 430 mA @ 24 bit / 192KHz to work properly
Wow! My estimate was a long way adrift. What current do the Fox oscillators take? That 430mA is getting really very close to the limit with USB (500mA).
__________________
I have the advantage of having found out how hard it is to get to really know something... how easy it is to make mistakes and fool yourself. - Richard Feynman
  Reply With Quote
Old 19th May 2011, 06:38 AM   #8
diyAudio Member
 
Join Date: Nov 2007
There's allways the external PSU option... though for all the tests I've used the USB 5V supply.
According to the specs, Idd for one oscillator is stated up to 35 mA for freq. between 20-50 MHz, please see here. There are two pcs. on that board: 22.5792 MHz and 24.576 MHz. One more reason to switch for NDKs.
BTW I forgot the picture:
Click the image to open in full size.

Last edited by Lorien; 19th May 2011 at 06:51 AM. Reason: speeling
  Reply With Quote
Old 19th May 2011, 07:07 AM   #9
diyAudio Member
 
abraxalito's Avatar
 
Join Date: Sep 2007
Location: Hangzhou - Marco Polo's 'most beautiful city'. 700yrs is a long time though...
Blog Entries: 103
Send a message via MSN to abraxalito Send a message via Yahoo to abraxalito Send a message via Skype™ to abraxalito
Quote:
Originally Posted by Lorien View Post
BTW I forgot the picture:
Haha is that the ultra-low impedance high-current PSU for your board in the background? Nice pic.

More seriously I'm really surprised that its taking so much current, given what's in that XMOS document. I must have overlooked something major to be more than 6dB adrift in my power consumption estimates. You're using the single core XMOS right ? (128 pin package, as opposed to the dual core which is 124pins ?) 35mA for two oscillators (presumably you disable the one that's not in use) doesn't account for such a difference.
__________________
I have the advantage of having found out how hard it is to get to really know something... how easy it is to make mistakes and fool yourself. - Richard Feynman
  Reply With Quote
Old 19th May 2011, 11:57 AM   #10
diyAudio Member
 
Join Date: Nov 2007
Quote:
Haha is that the ultra-low impedance high-current PSU for your board in the background?
Well, most of it... ~3.3V x 2 pcs. will be enough to blow away this card
Back to the power consumption, first thing to notice is that XMOS chip on my board is TH5 (500 MHz) variant. In addition, my ampermeter reads on 1.0V core PSU: 231 mA at full load (24/192) - though is not a precise one. Considering the fact that uP is warmer (even if the chip's thermal pad IS soldered on top and the board is a 4 layer one without thermal reliefs on vias underneath the chip)... I can only assume that it's working at its full capacity.
Though, I'll switch it with 400 Mhz variant or... better, I'll assembly another board around this chip.

Be back soon,
L

Last edited by Lorien; 19th May 2011 at 12:00 PM.
  Reply With Quote

Reply


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
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
exaU2I - Multi-Channel Asynchronous USB to I2S Interface exa065 exaDevices 1357 3rd March 2014 08:51 PM
Introducing miniStreamer: Native 24/96 USB to I2S / SPDIF interface minidsp miniDSP 39 5th January 2014 11:00 PM
Ultimate USB to I2S interface sampler Digital Source 206 30th January 2012 03:45 PM
Is it possible to develop a ASIO driver for PCM2900 based USB Audio interface? cxhawk Digital Source 7 3rd December 2010 02:30 PM
interface I2S with USB mermoz Digital Source 0 21st February 2003 10:34 AM


New To Site? Need Help?

All times are GMT. The time now is 08:15 AM.


vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright ©1999-2014 diyAudio

Content Relevant URLs by vBSEO 3.3.2