Simple USB Audio design taking more than 8 cores on XU208

New to XMOS and XCore? Get started here.
User avatar
Posts: 8
Joined: Mon Sep 10, 2018 4:23 pm

Simple USB Audio design taking more than 8 cores on XU208

Post by Yanava »

Hello everyone, this is my first post.

I'm designing a DAC based on the XU208, which I'd like to have:
  • USB Audio Class 2
    2 Channels Out
    DSD Support up to DSD128 (perhaps DSD256 in the future)
    SPDI RX In
    Control for the DAC Chip
    Volume controls (which control the DAC gain directly)
    (Future) I2C control of a LED PWM control for some fancy volume indication
Right now, I've got the whole thing working by using the several threads available here and the guides available from XMOS. Very straightforward and simple, however I needed a bit of gymnastics to get there, as I had to port lib_i2c to make the volume control work. Also had to hack audio.xc with a version available here on the forums to make DSD work properly.

Problem with the current state of things: if I turn on the SPDIF RX in this design I get the compiler error that I'm using 9 cores. From all documents I've seen the resources should be 6 for the whole of USB audio, which would give me 2 cores for my other uses. Can someone take a look at my attached project (which works fine on my current board if I turn SPDIF RX off) and point me to what optimizations can be done? I tried putting my modifications as distributable / combinable tasks to avoid using extra cores, but failed to see any results.

PS: I would hate to migrate to XU216 at this point of the project, so, if adding an extra MCU will help in any way, it would be much preferable.


User avatar
XCore Legend
Posts: 1913
Joined: Thu Jun 10, 2010 11:43 am

Post by mon2 »

XU208 is the XS2 architecture. The max of 6 core use for USB projects is a limitation on the older XS1 series only.

Respectively, XU208 does not have this restriction: