DSD issue: Xcore 200 with USB Audio 2.0 Ref software

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Alex, I placed undef statement as described. I rebuilt and reran the same set of playback tests. Device performed the same, still played wav files up to 384Khz successfully but still doesn't play DSD 64/128 tone files.

(Note: It does sound like there is some low level noise when playing dsd files. I can't hear the tone, but something low level is there. I rebuilt without undef and verified that the low level noise is the same)
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Here is some feedback from monitoring Logic analyzer, during DSD playback:

Jriver player Setup: Jriver playing a 1khz tone, DSD1x/ DSD2x .dsf files. (results identical for native DSD or DoP formatted output)

Logic analyzer output
Data Line: appeared random didn't see any DSD markers. Same for both DSD1x and DSD2x.
Bit clock: DSD1x -- 2.8224Mbps DSD2x -- 5.6448Mbps
LR clock: DSD1x -- 2.8224Mbps DSD2x -- 5.6448Mbps (aligned with Bit clock)


Not sure if this information provides helpful clues or not. Here are some of my unknowns.
a: Is Xmos software written and configured to INPUT both native DSD and DoP?
b: Is Xmos software written and configured to OUTPUT to DAC I2S in DoP format?
c: Is Dac configured correctly to handle Xmos DSD formatted Data?

Notes:
1: when playing standard wav files, 1Khz tones, at 44.1Khz - 384Khz. Everything looked as expected on oscilloscope and Logic analyzer.
2: As captured on the Logic Analyzer. The DSD bit clock and LR clock rates are the same as their respective DSD oversampled one bit stream rate.
3: I have also attached an oscilloscope image captured while playing DSD2x. It was a bit random. Mostly just seemed to be noise that was uncorrelated to 1Khz tone.
You do not have the required permissions to view the files attached to this post.
AlexAdvice
XCore Addict
Posts: 147
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

shaw wrote:Here is some feedback from monitoring Logic analyzer, during DSD playback:

Jriver player Setup: Jriver playing a 1khz tone, DSD1x/ DSD2x .dsf files. (results identical for native DSD or DoP formatted output)

Logic analyzer output
Data Line: appeared random didn't see any DSD markers. Same for both DSD1x and DSD2x.
This is OK - DSD Markers are in PCM stream. XMOS, if it see the markers, turn I2S bus to DSD-signals, where no markers.
Bit clock: DSD1x -- 2.8224Mbps DSD2x -- 5.6448Mbps
LR clock: DSD1x -- 2.8224Mbps DSD2x -- 5.6448Mbps (aligned with Bit clock)
This is not clear.
BCLK is OK, but LRCLK used in DSD mode as data.

In DSD mode, BCLK remains BCLK.
I2S_SData -> DSDLeft
I2S_LRCLK -> DSDRight

So the signal at LRCLK should be similar to the signal at the data line.
Not sure if this information provides helpful clues or not. Here are some of my unknowns.
a: Is Xmos software written and configured to INPUT both native DSD and DoP?
b: Is Xmos software written and configured to OUTPUT to DAC I2S in DoP format?
c: Is Dac configured correctly to handle Xmos DSD formatted Data?
In reference design, DSD is only output, for native and DoP.

I think you need to get the right signal from XMOS, and only after this invwstigate your DAC.

To do this - you can use simple RC-circuit (Low Pass Filter) instead of DAC = put 3-5k from data lines and after resistor put 3-10nF cap to ground.
If DSD in XMOS works right, you can even listen a music :)
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Alex thank-you for the clarification. It is helpful to know that when sending either DSD native or DoP input, that Xmos will output the DSD clk/data format onto the I2S bus. I will look at the one working DSD data channel with an LPF on oscilloscope.
Given that I am sending a DSD 1Khz stereo tone, both the left and right DSD data lines should be identical. The fact that there is no DSD right channel data on the I2S LRCLK, suggests that I have not configured firmware incorrectly or the xCORE 200 board is not operating properly.

(I am using the xCORE 200 MC audio 2v0 platform, with the latest USB Audio 2.0 Reference software. Including basic modifications described earlier, to allow upto 384Khz Fs).
AlexAdvice
XCore Addict
Posts: 147
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

As I remember, it was a but in USB Audio 2.0 Reference software exactly related to DSD with xCore200 - mix of HW and SW divider or something similar.
shaw
Active Member
Posts: 60
Joined: Fri Mar 25, 2011 12:36 am

Post by shaw »

Xmos Technical Support advised a move back to USB Audio 2.0 Reference software, version 6.12.6. I have now moved to that version and have added the mods shown in first post on this thread. DSD 64/128 now works for both native and DoP.

I am not sure what differences in these two versions of reference software, account for the DSD performance issue. I will update this thread if I collect any useful information. Thank-you for the help.
User avatar
infiniteimprobability
Verified
XCore Legend
Posts: 1149
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

Re: DSD support in 6.15.2, you can also get it working by applying the file audio.xc from the XHRA migration file zip here:

http://www.xcore.com/download/file.php?id=1686
Engineer at XMOS