Porting USB Audio 2.0 to XU208 - problem with DSD Topic is solved

Sub forums for various specialist XMOS applications. e.g. USB audio, motor control and robotics.
AlexAdvice
XCore Addict
Posts: 141
Joined: Sun Feb 23, 2014 11:30 am

Porting USB Audio 2.0 to XU208 - problem with DSD

Post by AlexAdvice »

Hi, I've successfully ported the Reference Design to XU208, now PCM works fine, but I see the problem with DSD.
I got the right BCLK frequency and 2 bitstreams at LRCLK and SDATA. But the data if only at 1/8 of the time. See attach.
(Sorry, my Agilent scope failed and is at repairing now, so I use the old one w/o USB, and simply make a photo of the screen).
It doesn't matter DSD64 or 128, just the frequency changes.
Also the same thing in DoP or Native DSD.

Image
View Solution
AlexAdvice
XCore Addict
Posts: 141
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

I tried again, and had no success.
Except if data bits missing, I do not see something, hat looking as 0x96969696 - sometimes a see 001100 sequence, which is not possible "0x96".
User avatar
infiniteimprobability
Verified
XCore Legend
Posts: 1133
Joined: Thu May 27, 2010 10:08 am

Post by infiniteimprobability »

That is odd.. What changes have you made to audio.xc? We know that our DSD codebase is solid and works (multiple high quality dacs based on it eg https://www.xmos.com/news/press/17176) so there must be a change to this somehow..

You say that the DSD clock is the expected frequency for each case? 2.8224MHz/ 5.6448MHz ?

Is the proportion of time that DSD data is active the same for DSD64 and DSD128? If the proportion of time that data is active is greater at higher rates, I'm wondering if your DSD dac ports are not properly connected to p_dsd_clk and are being emptied too quickly.. Check that the right arguments are being passed to ConfigAudioPorts()
Engineer at XMOS
AlexAdvice
XCore Addict
Posts: 141
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

infiniteimprobability wrote:That is odd.. What changes have you made to audio.xc?
Nothing!
Just add:

Code: Select all

#ifdef U208_ONLY
        set_core_high_priority_on();
#endif
at the main.xc

All other chahnges were made in customdefines.h, .xn and Makefile
infiniteimprobability wrote: We know that our DSD codebase is solid and works (multiple high quality dacs based on it eg https://www.xmos.com/news/press/17176) so there must be a change to this somehow..
I know - with 6.6.0rc5 it works fine at XS1-L6A, but now I'm working with 6.16.2 and XUF208
infiniteimprobability wrote: You say that the DSD clock is the expected frequency for each case? 2.8224MHz/ 5.6448MHz ?

Is the proportion of time that DSD data is active the same for DSD64 and DSD128?
Yes, BCLK is 2.8 for DSD64, 5.6 for DSD128 and 11.2 for DSD256.
The proportion remains the same - 1/8
infiniteimprobability wrote:
If the proportion of time that data is active is greater at higher rates, I'm wondering if your DSD dac ports are not properly connected to p_dsd_clk and are being emptied too quickly.. Check that the right arguments are being passed to ConfigAudioPorts()
I connected the ports in .xn file, maybe i is not enough?
Can you check my files (in attach)?
You do not have the required permissions to view the files attached to this post.
AlexAdvice
XCore Addict
Posts: 141
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

The proportion remains the same - 1/8
I was not correct.
The proportion (duty cycle) changes.

Active packet is always 32*BCLK, but the duty cycle (packet time / packet period) are:
DSD64: 1/8
DSD128: 1/4
DSD256: 1/2 (i.e. - data is just half of the time)

I have no idea what to do.
User avatar
Ross
Verified
XCore Expert
Posts: 1016
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

I believe there is an issue in the latest release on xCORE-200 with regards to DSD clock generation. The code setups of the HW clock divider in xCORE-200 but the normal clock outputs also remain in place . I believe these outputs need removing for xCORE-200 (and the divide tweaked for DSD operation)
Technical Director @ XMOS. Opinions expressed are my own.
AlexAdvice
XCore Addict
Posts: 141
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

Hi Ross,

thank you very much for your answer, I do not think I will able to do this without your help :(
But, I will try.
Thank you again.

P.S. I do not believe that nobody used XU(F)208 with Audio Reference Design, including DSD and have no solution.
pasnew
Member
Posts: 15
Joined: Wed Jan 16, 2013 7:28 pm

Post by pasnew »

Hi,

I had this problem, here is the solution, however DSD256 and 512 still not work correctly.
http://www.xcore.com/viewtopic.php?f=26&t=5010

It's ridiculous that for over one year the latest software doesn't work correctly for 200 series !
AlexAdvice
XCore Addict
Posts: 141
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

[quote had this problem, here is the solution, however DSD256 and 512 still not work correctly.[/quote]

Hi pasnew, thanks for you reply and link to the topic, I will try.
Don''t know why I missed this topic.

[quote]It's ridiculous that for over one year the latest software doesn't work correctly for 200 series ! [ /quote]

Also why AN1027 does not have corresponding source - there were many problems after copy-paste from pdf and was not clear where are the mistakes - or typo in source on not.

We have some products, based on XS1-L6, which we want to make new versions, based on XU(F)208.
Because we have some problem - where to buy XS1-L6. We do not have mass production, just few dozen per year, so we use Digikey and Farnell, but they have very long lead time for this chip.
We do not in hurry, some our products does not required DSD were successfully transferred to XUF208, other waiting for the solution.
User avatar
mon2
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am

Post by mon2 »

Future Electronics is also a distributor of XMOS parts:

http://www.futureelectronics.com/en/Sea ... 4294890508

Which package of the XS1-L6 are you after ? Which speed grade ?

https://www.digikey.ca/product-detail/e ... ND/2647901
* 48 pin (L8 but should work fine to replace your L6)
* L8

https://www.digikey.ca/product-detail/e ... ND/3906757
* 64 pin C5 grade
* L6

https://www.digikey.ca/product-detail/e ... ND/2095035
* 64 pin C4 grade
* L8

https://www.digikey.ca/product-detail/e ... ND/2095037
* 128 pin C4 grade
* L8



Digikey has the XUF208 in stock:

https://www.digikey.ca/product-detail/e ... SD&lang=en