Go Back   Home > Forums > >

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

Master clock and isolator for the MiniDSP USBStreamer
Master clock and isolator for the MiniDSP USBStreamer
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
Old 12th October 2013, 09:33 PM   #1
JensH is offline JensH  Denmark
diyAudio Member
Join Date: Jul 2009
Master clock and isolator for the MiniDSP USBStreamer
Default Master clock and isolator for the MiniDSP USBStreamer

Some time ago, I bought a MiniDSP USBStreamer. It has a number of nice features. Compared to many of the other XMOS based USB interfaces (and other similar interfaces), the USBStreamer has the advantage that it has digital inputs in addition to the usual outputs. One of the projects I am planning to do is to make an audio analyzer, and for that the input is of course crucial. For normal playback to a DAC it is obviously not needed.

The most important features for my applications were:

1. Digital inputs
2. Up to 192kHz sample rate
3. ASIO driver, to get bit-true data in and out, with no resampling in the PC

Other nice features include
4. I2S interface
5. Up to 10 channels out and 10 channels in

Initially I intended to use the Toslink interfaces for the audio analyzer, since that would allow me to synchronize the PC to my external clock system for the ADC and DAC. I actually made a design for this, but before I got the PCB back from the manufacturer I got the idea to do it in a different way. This was also inspired by the fact that the Toslink receive performance seemed to be a bit critical at 192kHz.

So I decided to use the I2S bus instead of the Toslink. There are two issues when doing this:

1. The USBStreamer I2S bus is not isolated from the PC.
2. There is a relatively high level of jitter on the clocks from the USBStreamer.

So I needed to add isolators on the I2S bus and find a way to synchronize the sample clocks to external high quality clock oscillators.

I already mentioned here that I was looking at that possibility:

The design is now up and running. I have tested loopback from a PC generator to a PC FFT analyzer. I am using AudioTester. Initially I had a problem with that at 192kHz, since there was too much delay in the path, so the bits received were shifted one position. Using faster digital isolators solved the problem. So now I can make a loopback at 192kHz with no errors.
The timing on the output side is quite simple, since all the I2S signals are going in the same direction, just getting a certain delay though the isolators.
The timing on the input side is more critical, because the data is coming from an ADC (or other device) clocked by the delayed LRCK and SLCK. But with careful selection of isolators and interface formats this can be handled.
The interface board I have made contains the following functions:

1. Isolators.
2. Two crystal oscillators: 24.576MHz and 22.5792MHz. These can be disabled if an external clock is preferred.
3. A flip-flop to generate 1/2 the clock frequency on a separate output if needed for the converters attached. This is just for convenience and it can be disabled if not needed.
4. A detection circuit to detect the sample frequency set by the USBStreamer (PC application). This circuit determines if the active crystal oscillator should be the 24.576MHz or the 22.5792MHz.
5. An octal flip-flop to synchronize the LRCK, SCLK and output data to the MCLK.
6. Voltage regulators.

I decided to bypass the flip-flops synchronizing the outputs since in most cases it is not needed. And it can be a problem when doing a loopback test due to the additional delay introduced by the synchronization. Most converters just need a clean MCLK and don't care too much about the other clocks.

If an external clock is used, the interface board will signal to the external circuit whether it should input 24.576MHz or 22.5792MHz. Of course these may be derived from e.g. 49.152/45.1584MHz or 98.304/90.3168MHz. This could be useful in connection a synchronous ESS based design, e.g. for the ES9018 and ES9102.

The sample frequency detection circuit has two additional logic signals. These indicate whether the sample frequency is 44.1/48, 88.2/96 or 176.4/192. This can be useful with some converters to put them into Single-Speed, Double-Speed or Quad-Speed mode.

Until now I have mainly tested it with the PC based AudioTester and an oscilloscope. Today I finally got around to test it with a DAC board based on the CS4398 (also my own design). I ran it though my KGSS Headphone amplifier driving my Stax Headphones. I think it sounded fantastic. But I may of course be a little biased.

I have not tested all 8 outputs and inputs, but that should not be a problem, since the isolator design is the same for all data signals of the I2S bus.

I am in the process of making a new version of the board, where I will use faster isolators in some places and leave out one of the voltage regulators. I decided to use the 3.3V supply on the USBStreamer as the supply for the interface on the USBStreamer side, since the power consumption is very low and I don't think that the USBStreamer has any problems to deliver this small additional current.
I will probably also remove the flip-flops, which can be used to synchronize the output signals to the MCLK.

I may also make a simpler version with no on-board crystal oscillators. Ideally the crystal oscillators should be close to the converters. It is not terribly important that they are close to the USBStreamer interface.

So what has been achieved here? Well, I Now have an interface which is
1. Isolated from the PC, with 8 channels in/out (10 is possible with an add-on board interfacing to the Toslink channels).
2. Able to use a "perfect clock" for the converters (or as good as it is possible to get them ).

  Reply With Quote
Old 15th October 2013, 05:56 PM   #2
JensH is offline JensH  Denmark
diyAudio Member
Join Date: Jul 2009
Master clock and isolator for the MiniDSP USBStreamer
Here is a picture of the prototype, attached to the USBStreamer. The PCB is 5x5cm.

A couple of modifications were done on this to test the fast isolators. For a basic version, with just one I2S channel in and out, only two isolator devices are needed.
Attached Images
File Type: jpg USBStreamer2_131015_2.jpg (624.0 KB, 3109 views)
  Reply With Quote
Old 17th October 2013, 07:47 PM   #3
AR2 is offline AR2  United States
Master Burner
AR2's Avatar
Join Date: Dec 2002
Location: San Francisco, California
Jen this is awesome. If it is possible i would be interested for one board.
  Reply With Quote
Old 17th October 2013, 09:02 PM   #4
JensH is offline JensH  Denmark
diyAudio Member
Join Date: Jul 2009
Master clock and isolator for the MiniDSP USBStreamer
That can probably be arranged. I have just made a couple of new layouts. One is a slightly modified version, with footprints for the faster isolaters. They come in a different configuration than the ones I used for the first design.

The other one is a simplified version, with no on-board oscillators. So this one relies on having the oscillator on the ADC/DAC board (where they should ideally be placed anyway). It cleans up a large part of the area on the lower end of the PCB shown on the picture above. I have just submitted the simplified version to the PCB manufacturer yesterday.

An advantage of the simplified design is that it will be easier to mount. In this case the most difficult components will probably be the SC70 packages. The versions with on-board oscillators use a couple of US8 packages, which are not exactly DIY-friendly
  Reply With Quote
Old 23rd October 2013, 12:24 PM   #5
mwyss is offline mwyss  Switzerland
diyAudio Member
Join Date: Jan 2004
Location: Switzerland
Default Awsome

Hello Jens

Awesome, was looking everywhere to find something like this.

I would be very interested in the board without the crystal's mainly because formfactor.

But any of the two would be fine.

Again, very nice!

  Reply With Quote
Old 23rd October 2013, 12:45 PM   #6
JensH is offline JensH  Denmark
diyAudio Member
Join Date: Jul 2009
Master clock and isolator for the MiniDSP USBStreamer
Hi Martin

Thanks for your kind words.

Actually the form factor is the same, so the board is still 5x5cm. I could have chosen to make it smaller, but I didn't. I did add some mounting holes though. And I shifted the connectors to the side, so that the existing mounting hole in the upper left corner is easier to use, without getting a conflict between the screw and the USBStreamer below.

If only a 2 channel output or a 2out/2in is needed, it is of course not necessary to mount the 2x17pin IDC connector at the bottom. In this case e.g. a 2x10 pin connector (or smaller if some features are not needed) can be used. For every signal pin there is also a ground pin to get a good signal quality.
  Reply With Quote
Old 25th October 2013, 02:33 PM   #7
veloplex is offline veloplex  Germany
diyAudio Member
Join Date: Jul 2008
Hallo Jens,

im realy locking forward of your project. Please let us be posted.

Greatings from Germany
  Reply With Quote
Old 25th October 2013, 05:55 PM   #8
svon is offline svon  Israel
diyAudio Member
Join Date: Jul 2008
good job
  Reply With Quote
Old 29th October 2013, 11:37 PM   #9
alexmi is offline alexmi  United States
diyAudio Member
Join Date: Jul 2003
Location: Portland, OR, USA
Default great job

Hello Jens, I'm also very interested in your board (my application will need 6 I2S channels). Please keep us updated as when/how we could order the boards.

Thanks, alex
  Reply With Quote
Old 31st October 2013, 08:12 PM   #10
JensH is offline JensH  Denmark
diyAudio Member
Join Date: Jul 2009
Master clock and isolator for the MiniDSP USBStreamer
I hope to receive the new simplified version PCB within the next few days. This is the one, which use the faster isolators and has no on-board crystal oscillators.

I have made a block diagram of this version. The basic principle is the same as for the other versions. I just removed the on-board crystal oscillators. And used one redundant pin for the 3.3 supply, so that it can now be supplied via the same cable that carries the I2S signals etc. In fact I also have the option to mount a local 3.3V regulator, just in case. This is not shown in the block diagram.
Attached Files
File Type: pdf Visio-USBStreamer Interface 2 V3 Block Diagram 2.pdf (13.1 KB, 825 views)
  Reply With Quote


Master clock and isolator for the MiniDSP USBStreamerHide this!Advertise here!
Thread Tools

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
ES9023 DAC design for MiniDSP USBStreamer Neil_J Digital Source 27 27th February 2015 07:20 AM
WTB:Universal 1ppm CDCD clock + SPDIF isolator Sergelisses Swap Meet 2 17th September 2013 03:37 PM
clock + SPDIF isolator Bassivus Digital Source 6 14th July 2012 04:31 PM
Universal 1ppm CD clock + SPDIF isolator low jitter dublin78 Digital Line Level 10 30th April 2012 12:24 PM
clock, master/slave no clock? pforeman Digital Source 0 29th January 2011 06:17 PM

New To Site? Need Help?

All times are GMT. The time now is 05:38 AM.

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