XU 208: Sometimes USB to I²S does not work for sample rates > 176400 Hz Topic is solved

Discussions about USB Audio on XMOS devices
user58291
New User
Posts: 2
Joined: Sun Jun 12, 2022 10:41 am

XU 208: Sometimes USB to I²S does not work for sample rates > 176400 Hz

Post by user58291 »

Hi,

I use a custom hardware with the XU208-128-QF48 for USB to I²S/DSD conversion. DSD works fine, but PCM with sample rates > 176400 Hz (192000 Hz, 352800 Hz, 384000 Hz) it produces a wrong signal. I attached an oscilloscope signal measured at an symmetrical DAC output and the I²S data sent from the XU208 to the DAC. I played a 1 kHz sine at 384 kHz via USB. The same signal at a sample rate of 192 kHz and 352,8 kHz looks similar. This happens not every time and is random. Changing the sample rate and changing back resolves the issue till changing once again. I tested it with foobar2000 on Windows and with MPD (Cantata frontend) on Linux. On both systems its the same behaviour. Thats the reason I guess the problem is with the XU208.

On another custom hardware with the XE216-512-TQ128 it worked fine without the described behaviour. The hardware is not available anymore. I ported the software from this hardware with AN01027 to the current hardware with the XU208-128-QF48. No other changes were made when porting. I use version 6.15.2 of the USB audio 2.0 software. I attached all files that were changed for my application in comparison to the standard software. The changes in audio.xc were made according to https://www.xcore.com/viewtopic.php?f=8 ... b82#p34291 to get DSD working.

Has anybody also noticed this issue?
You do not have the required permissions to view the files attached to this post.


View Solution
user58291
New User
Posts: 2
Joined: Sun Jun 12, 2022 10:41 am

Post by user58291 »

Solution:

The Problem was, that I use two oscillators on my custom board which are enabled and disabled via GPIO. The delay of 10 µs in audiohw.xc was to long and is now set to 1 µs. Additionally the 10 µs delay after enabling the right oscillator is to short, because my oscillator has a startup time of 1 ms. By setting the delay to several milliseconds, the problem is solved.
User avatar
Ross
XCore Expert
Posts: 820
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

Thanks for the update and congrats on the fix!