Hi all,
I'm currently fleshing out a design for a USB headphone DAC. I've recently been hacking around with the XMOS USB Audio 2.0 reference board, which interfaces quite nicely (natively) with the linux kernel and ALSA drivers.
The goal of this design is bit-perfect 24/192 audio via asynchronous USB, generated through a delta-sigma DAC, and output through a low-distortion headphone amp chip. My current chip chain is the following:
USB3318 PHY <-> XMOS XS1-L1 (-> SRC4192) -> WM8740 -> TPA6120
My question is this: with the XMOS handling asynchronous packet transfer, does the added jitter attenuation of the ASRC still outweigh its sonic alterations? In other words, is the ASRC even necessary anymore? The purist in me says I should kick it to the curb before this design goes any further, but I'll admit a lower experience level than many in this forum.
Thoughts?
Thanks,
~ Brad.
I'm currently fleshing out a design for a USB headphone DAC. I've recently been hacking around with the XMOS USB Audio 2.0 reference board, which interfaces quite nicely (natively) with the linux kernel and ALSA drivers.
The goal of this design is bit-perfect 24/192 audio via asynchronous USB, generated through a delta-sigma DAC, and output through a low-distortion headphone amp chip. My current chip chain is the following:
USB3318 PHY <-> XMOS XS1-L1 (-> SRC4192) -> WM8740 -> TPA6120
My question is this: with the XMOS handling asynchronous packet transfer, does the added jitter attenuation of the ASRC still outweigh its sonic alterations? In other words, is the ASRC even necessary anymore? The purist in me says I should kick it to the curb before this design goes any further, but I'll admit a lower experience level than many in this forum.
Thoughts?
Thanks,
~ Brad.
Hi SoNic.
Correct me if i'm wrong, but given the fact that asynchronous usb allows the DAC itself to generate the master clock signal, doesn't the usefulness of an ASRC in this application reduce down to its ability to perform upsampling?
Either that or actually adding muxes to switch the ASRC in and out of the data path and controlling them from the XMOS. The USB Audio Class 2.0 exposes a Sampling Rate Converter Unit (RU) to the host; does anyone with more experience with this spec want to say whether or not the RU can be switched in and out of the chain in this manner? I'm still trying to decipher the spec...
Thanks,
~ Brad.
ASRC is definitely an option to consider.
Correct me if i'm wrong, but given the fact that asynchronous usb allows the DAC itself to generate the master clock signal, doesn't the usefulness of an ASRC in this application reduce down to its ability to perform upsampling?
Even if you do a separate miniboard that can be interposed in the data stream...
Either that or actually adding muxes to switch the ASRC in and out of the data path and controlling them from the XMOS. The USB Audio Class 2.0 exposes a Sampling Rate Converter Unit (RU) to the host; does anyone with more experience with this spec want to say whether or not the RU can be switched in and out of the chain in this manner? I'm still trying to decipher the spec...
Thanks,
~ Brad.
Last edited:
nevermind...
On second thought, even adding an ASRC into the design is a serious complication. One clock mux would be required to match the input sampling rate to the XMOS and another clock mux would be required to match the output sampling rate to the ASRC and DAC. At that point, at least in my mind, I might as well just skip the XMOS and go straight to an FPGA solution in which the asynchronous USB audio, clock muxing, data muxing and sample rate conversion are performed on the same chip...
... so to keep things simple, I'm kicking the ASRC to the curb for this run and saving the FPGA implementation for another day.
I plan on posting more information as the design progresses. Please feel free to chime in and offer advice, suggestions or criticisms.
~ Brad.
P.S.: does this thread need to be moved to the Digital Line Level forum??
On second thought, even adding an ASRC into the design is a serious complication. One clock mux would be required to match the input sampling rate to the XMOS and another clock mux would be required to match the output sampling rate to the ASRC and DAC. At that point, at least in my mind, I might as well just skip the XMOS and go straight to an FPGA solution in which the asynchronous USB audio, clock muxing, data muxing and sample rate conversion are performed on the same chip...
... so to keep things simple, I'm kicking the ASRC to the curb for this run and saving the FPGA implementation for another day.
I plan on posting more information as the design progresses. Please feel free to chime in and offer advice, suggestions or criticisms.
~ Brad.
P.S.: does this thread need to be moved to the Digital Line Level forum??
Last edited:
... so to keep things simple, I'm kicking the ASRC to the curb for this run and saving the FPGA implementation for another day.![]()
Long time, no see
All that being said, I'm currently listening through a CS8421 and haven't noticed any nasties yet.
Long time, no see![]()
Quite true.
~ Brad.
I'm not a believer in being able to hear a DAC chip in isolation, implementation is the main determiner of sound quality. That said, I'll always tend to veer towards current out DACs for the simple reason that I don't totally trust CMOS opamps (as found in voltage out DACs) vis-a-vis sound quality. So AD1955 or PCM179X for me it would have to be.
I agree that USB async makes it unnecessary to add an ASRC.
In my opinion though, it's much easier to go with a classical pcm2707-src4192 chain than to bother with async. Jitter is of no concern thanks to the src4192 (see this post by Bruno Putzeys: http://www.diyaudio.com/forums/digi...back-new-cs8421-high-res-asrc.html#post528312 ) and the upsampling provided by the ASRC is nice to facilitate the analog filtering. But of course, I've never been convinced of the advantages of 24/192 over the good old 16/44.1.
PS: I'm currently very, very happy with a pcm2707-SRC4192-PCM1798-OPA1632 dac (final output stage is discrete jfet stuff). If you're using differential opamps for I/V, beware of capacitive loads and of keeping the dac outputs at 0V.
In my opinion though, it's much easier to go with a classical pcm2707-src4192 chain than to bother with async. Jitter is of no concern thanks to the src4192 (see this post by Bruno Putzeys: http://www.diyaudio.com/forums/digi...back-new-cs8421-high-res-asrc.html#post528312 ) and the upsampling provided by the ASRC is nice to facilitate the analog filtering. But of course, I've never been convinced of the advantages of 24/192 over the good old 16/44.1.
PS: I'm currently very, very happy with a pcm2707-SRC4192-PCM1798-OPA1632 dac (final output stage is discrete jfet stuff). If you're using differential opamps for I/V, beware of capacitive loads and of keeping the dac outputs at 0V.
Still working!
Hi all,
Thanks for the input.
I've decided to stick with the WM8740 on this design, without an ASRC. My current work is on a small (2x)WM8740+(4x)AD797+(1x)TPA6120 board that will interface to the breakout pins of the XMOS UAC2 board. I'll post details when the design progresses a bit more.
~ Brad
Hi all,
Thanks for the input.
I've decided to stick with the WM8740 on this design, without an ASRC. My current work is on a small (2x)WM8740+(4x)AD797+(1x)TPA6120 board that will interface to the breakout pins of the XMOS UAC2 board. I'll post details when the design progresses a bit more.
~ Brad
Actually, as USB audio 2.0 supports up to 32-bit samples, I don't see any reason for not using the WM8741, but the daughterboard will still use the '40, since they're pin-compatible.
Here's what I've come up with for the daughterboard to the XMOS UAC2 board. The DAC is configured for normal stereo mode 24-bit I2S without de-emphasis and without muting.
~ Brad.
Here's what I've come up with for the daughterboard to the XMOS UAC2 board. The DAC is configured for normal stereo mode 24-bit I2S without de-emphasis and without muting.
~ Brad.
Attachments
- Status
- This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
- Home
- Source & Line
- Digital Source
- Async USB Headphone DAC