Custom design XU208 from reference app(xk216) v8.1 Topic is solved

Discussions about USB Audio on XMOS devices
teemo
Junior Member
Posts: 4
Joined: Fri May 20, 2022 12:25 am

Custom design XU208 from reference app(xk216) v8.1

Post by teemo »

The device is detected on Windows and Linux but does not work.
windows.jpg

Linux..(dmesg)

Code: Select all

[   67.292828] usb 1-10: new high-speed USB device number 4 using xhci_hcd
[   67.507647] usb 1-10: New USB device found, idVendor=20b1, idProduct=000a, bcdDevice= 8.10
[   67.507652] usb 1-10: New USB device strings: Mfr=1, Product=3, SerialNumber=2
[   67.507654] usb 1-10: Product: XU208 DEV-TESTING
[   67.507656] usb 1-10: Manufacturer: XMOS
[   67.526343] mc: Linux media interface: v0.10
[   73.018293] usb 1-10: 1:1: cannot set freq 48000 (v2/v3): err -110
[   73.033245] usb 1-10: parse_audio_format_rates_v2v3(): unable to retrieve number of sample rates (clock 41)
[   73.044921] usb 1-10: 10:0: failed to get current value for ch 1 (-71)
[   73.077923] usb 1-10: 10:0: failed to get current value for ch 2 (-71)
[   73.116924] usb 1-10: 10:0: failed to get current value for ch 0 (-71)
[   73.155924] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.164925] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.171077] usbcore: registered new interface driver snd-usb-audio
[   73.181929] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.184925] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.187925] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.190928] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.193926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.196925] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.199926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.202926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.205929] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.208929] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.214926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.223926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.226928] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.229928] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.232927] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.235927] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.238926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.241926] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.244927] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.250927] usb 1-10: 10:0: cannot get min/max values for control 2 (id 10)
[   73.268931] usb 1-10: uac_clock_source_is_valid(): cannot get clock validity for id 41
[   73.268935] usb 1-10: clock source 41 is not valid, cannot use
[   73.274928] usb 1-10: 1:1: cannot get freq (v2/v3): err -71
[   73.277932] usb 1-10: 1:1: cannot set freq 48000 (v2/v3): err -71
[   73.280931] usb 1-10: uac_clock_source_is_valid(): cannot get clock validity for id 41
[   73.280934] usb 1-10: clock source 41 is not valid, cannot use
[   73.286929] usb 1-10: 1:1: cannot get freq (v2/v3): err -71
[   73.289930] usb 1-10: 1:1: cannot set freq 48000 (v2/v3): err -71
[   73.292931] usb 1-10: uac_clock_source_is_valid(): cannot get clock validity for id 41
[   73.292933] usb 1-10: clock source 41 is not valid, cannot use
[   73.298929] usb 1-10: 1:1: cannot get freq (v2/v3): err -71
[   73.301930] usb 1-10: 1:1: cannot set freq 48000 (v2/v3): err -71
[   73.304932] usb 1-10: uac_clock_source_is_valid(): cannot get clock validity for id 41
[   73.304934] usb 1-10: clock source 41 is not valid, cannot use
[   73.310930] usb 1-10: 1:1: cannot get freq (v2/v3): err -71
[   73.313931] usb 1-10: 1:1: cannot set freq 48000 (v2/v3): err -71
My design has only a 24Mhz oscillator for the CLK pin, and a 45/49Mhz oscillator for PORT_MCLK_IN.

Code: Select all

MCLK_441 (1024*44100)
MCLK_48  (1024*48000)
i'm missing something obvious?
*** with v6.15 it works fine.
Is the xu208 still supported in the current version? I saw some open threads with issues with it.
You do not have the required permissions to view the files attached to this post.
View Solution
User avatar
Ross
Verified
XCore Legend
Posts: 1150
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

208 will operate just fine

My initial guess would be the device is not properly receiving an mclk, and thus the sample rate change request cannot complete.

Check the mclk input is connected to the correct port/pin.

Failing that post the result of xrun --dumpstate <your_binary>.xe when its in the failing state and that should give us some clues as to the issue.
Technical Director @ XMOS. Opinions expressed are my own
teemo
Junior Member
Posts: 4
Joined: Fri May 20, 2022 12:25 am

Post by teemo »

Ross wrote: Thu Nov 14, 2024 5:44 pm 208 will operate just fine

My initial guess would be the device is not properly receiving an mclk, and thus the sample rate change request cannot complete.

Check the mclk input is connect to the correct port/pin.

Failing that post the result of xrun --dumpstate <your_binary>.xe when its in the failing state and that should give us some clues as to the issue.
Thanks for the reply.
Problem solved. I love XMOS.

Let me ask the expert one more question.

The Microsoft page says that Thesycon develops the Windows native UAC2 PnP drivers.
Is Thesycon also on Linux?
What currently delivers better quality/performance in terms of PnP drivers? Linux ALSA or Windows WASAPI?

best regards.
User avatar
Ross
Verified
XCore Legend
Posts: 1150
Joined: Thu Dec 10, 2009 9:20 pm
Location: Bristol, UK

Post by Ross »

teemo wrote: Fri Nov 15, 2024 11:36 pm
Problem solved. I love XMOS.
☺️
teemo wrote: Fri Nov 15, 2024 11:36 pm Let me ask the expert one more question.

The Microsoft page says that Thesycon develops the Windows native UAC2 PnP drivers.
Is Thesycon also on Linux?
What currently delivers better quality/performance in terms of PnP drivers? Linux ALSA or Windows WASAPI?

best regards.
Yes, usbaudio2.sys was authored by Thesycon, the original author of usbaudio.sys had left Microsoft some time ago. MS approached us and we pointed them straight to Thesycon.

I think it depends on what you mean by "quality/performance". Most people bean "bit perfect audio" in this case, I suppose - both are capable of providing this.
Technical Director @ XMOS. Opinions expressed are my own