Open-source USB interface: Audio Widget

I2S and I2C (SPI) need galvanic isolation.
The remaining can as you indicate be moved to the USB power domain or a separate power domain.

I'm with Ray on this one.
A small board with I2S (e.g. IL715) and I2C (e.g. ADUM1250) isolation would be great and all that's needed.
Not to mention it'll be usable by all USB-I2S-DAC projects most of which nowadays feature an arduino or something.
 
Last edited:
Yes, after AB-1.12 the next prototype(s) could be an insulating go-between for the USB-I2S module.

I suggest optos on I2S (from module) and MCLK (to module). Note that this would require external power for the analog parts, and that IO functionality would be reduced to a minimum. Let me know if you have thoughts on this.[...]
Just a pointer on this subject here...from gmarsh
 
Hi Børge,

wow, great news that of the AB112+1.13 "Easter Egg"! :happy1:

Today the module supports I2C, SPI, display, UART, GPIO, buttons etc. Forwarding all those through galvanic isolators would take up a lot of board area and possibly power.
although it may be annoying to change that now, I believe that some of what currently is on the AB (such as buttons, display port, etc) actually belongs to the USB board.

IMHO, on the AB board(s) there should be only the DAC, the clocks and whatever else is strictly required to be on "the clean side" and/or may be required to control DAC (or digital output) operation such as I2C, etc. Anything else should be moved to the USB board.
 
Member
Joined 2004
Paid Member
Finding quality audio crystal oscillators is not easy. Most are custom (or surplus from someone's custom run). The Golledge oscillators Borge has seem pretty good. On my AB1.1 the 48K has less jitter and is pretty free of deterministic sidebands. The 44.1 chain is not as pretty. It may be the oscillator.

Crystek has very good oscillators that are now available from Digikey and Mouser in 22,24,44,48 MHz for audio. At $30 they are not cheap but very high performance. The next step in performance is much more and much longer lead times.

Phase noise gets worse as the frequency goes up. 100 MHz is near the highest for oscillators. Above that you use multipliers etc. The performance degradation come from the Q being less on higher frequency crystals. They get really thin at those higher frequencies. The lowest phase noise is 4-5 MHz.

The NDK oscillators look interesting but not available here easily. Tent Labs has an assortment but is missing the higher frequency oscillators.

I could make a simple doubler circuit to get 2X 44&48 with low phase noise. It will be analog/rf stuff plus digital stuff. It may be the best option, although multiplying the 22/24 up may be even better.
 
ahh sorry i figured you would know it, probably you have seen it. it will require very high quality layout and its not cheap, but would be tweakable for frequency output, in fact multiple frequency output should not be too difficult provided it can be gotten up to useful speed and you will know that better than I

Linear Tech Application Note 67. from Dale Eagar a composite opamp Wein Bridge type oscillator. i have all the opamps it needs funnily enough
 
I was hoping we could put isolated I2S a bit on the backburner and rather look at DACs and PSUs for a little while.... AB-1.12.13 boards are hopefully shipping out in 3-4 weeks. I'm crossing my fingers for this manufacturing run!

But we should't forget about isolators, so here are some thoughts. They are very much in line with Paolo's I belive.

although it may be annoying to change that now, I believe that some of what currently is on the AB (such as buttons, display port, etc) actually belongs to the USB board.

I like the idea. But I don't wish to change the module format too much now. There is a new module coming which adds 2.54mm (100mil) pin rows for the same IO. I have removed the 2.0mm pitch SMD half-moons.

In an isolated-I2S world I completely agree that buttons, display, RS232 debug etc should just be pinned out from the "dirty" side. And that only audio critical lines (I2S, MCLK, control I2C, minimal GPIO) be isolated and passed to the "clean" side. Keeping the present format of the analog board (2.0mm pin pitch) and the dual pitches available on the new module, it should be quite doable to make a go-between board which presents one pitch down on the AB and another up to the module. Such a thing would lift the module up and not be compatible with the AB-1.1 back plate. It might become too tall for the box. If this is a success I can move the isolators to the AB in future versions of it.

It is also important to know that a go-betwen would need external power which it would send to the AB, much like VBUS is passed to it today.


Børge
 
it should be quite doable to make a go-between board which presents one pitch down on the AB and another up to the module.
sure, at least for testing that may be a good idea. Making the "go-between" board larger than the other, you may also shift the connectors (shift the USB module toward the analog out) to ease trace routing... ;)

If this is a success I can move the isolators to the AB in future versions of it.
mmmh, maybe it could be better to put also the isolators on the USB module. :cannotbe:

Given that the AB modules are changing much more frequently than the USB one (and that isolation will be a welcome feature for all of them), having the isolators and all the other common ancillary parts on the USB board would avoid unneeded duplications (and in the long run also save experimenters's money).

Actually, if the USB board will be redesigned, for the same reason I'd put also the digital outputs (I2S and S/PDIF+Toslink) on that board (possibly those may be left optional, that is unpopulated, though I guess that given the little extra cost it may be well worth to add 'em by default).

Once there, one may think about moving the clocks as well. That would make the USB board usable also as a stand-alone module, similar to e.g. the "WaveIO" (check the thread: "XMOS-based Asynchronous USB to I2S interface").

Unfortunately, moving the clock further away from the DAC chip may (likely) have a negative impact on the performance so we should think more than twice before doing that... :(
 
Last edited:
The new USB module actually has room for the two oscillators. But the default assembly is like today's module. I had to pull some strange tricks to make room for the oscillators, though. Wait and see when the pictures are ready!

I know that moving the XOs away from the DAC is bad. But some people want it, so the option is there.

Børge
 
Finding quality audio crystal oscillators is not easy. Most are custom (or surplus from someone's custom run). The Golledge oscillators Borge has seem pretty good. On my AB1.1 the 48K has less jitter and is pretty free of deterministic sidebands. The 44.1 chain is not as pretty. It may be the oscillator.

Demian, could you check the logo of your 22MHz oscillator? On some AB-1.1s I had to use a different brand. I now have a new pile of Golledge 22MHz XOs.

At Golledge, the 24MHz XO is a standard product while the 22MHz XO is a custom part with the same spec.

Børge
 
The new USB module actually has room for the two oscillators. But the default assembly is like today's module.
is there an easy way (e.g. jumpers) to switch between on board clocks and "remote" ones? that would be a nice feature.

I had to pull some strange tricks to make room for the oscillators, though. Wait and see when the pictures are ready!
why not just making a larger board?

Actually, if you want to keep the current overall size, I'd rather swap the "motherboard" and the "daughter card". That is I'd let the controller/USB card be the "motherboard" and mount the DAC(s) as plug-in(s) on top of it...
 
is there an easy way (e.g. jumpers) to switch between on board clocks and "remote" ones? that would be a nice feature.

It can be done with 0603 selector resistors now.

why not just making a larger board?

Because it looks nice and symmetrical now with straight edges and no funny business sticking out anywhere :) I think you'll like it when you see it, plus most of us who care about building DACs wouldn't stick the clocks on the module anyway.

I know I'm playing the K2 defence her. Q:"Why did you climb the K2?" A:"Because it's there."


Børge
 
is there an easy way (e.g. jumpers) to switch between on board clocks and "remote" ones? that would be a nice feature.
I have heard from a few sources that even the routing of clock traces on a PCB can affect the quality, so my first concern is that running a clock through a jumper could potentially cause problems. Then again, I suppose it's more important to understand how and why trace routing can degrade clock signals before guessing whether a jumper could trigger the same issues.
 
Rsdio, I have placed the audio XOs on a ground island and put in all the passive VDD filtering I could. But there is no room for jumpers etc.

The higher-end applications of the module would use separate XOs anyway. In the default config which I have ordered, the XOs aren't mounted on the module.

Børge