Using Existing XMOS Controller with added AK ADC

Sorry for an off topic post, but this thread is closest to my question I could find.
I have an AK4495 DAC with XMOS U8 usb controller that I bought on AliExpress. It is really good after replacing all caps and an op-amp in LPF.
I am looking for a high quality USB ADC to record from a microphone. Since I already have an XMOS U8 USB controller I am wondering if there is an easy way to connect AK5572 or 5394A ADC to it over I2S. I could make the ADC board myself since Asahi Kasei gives reference design in their data sheets but I do not know if it will work with an XMOS controller. Xmos driver in Win is registered as a playback device. Does it mean that for recording with Xmos controller I will need some special driver? If somebody could give a simple answer It would greatly help.
 
Member
Joined 2009
Paid Member
I don't know the exact type of USB interface you mention here.
Many XMOS based interfaces are for DAC's only. This means that there is no digital input on the I2S bus. So, as a minimum, you would probably need a new firmware (if the HW even supports an input). And perhaps a new driver for the PC.

I started out by using the MiniDSP USBStreamer, because it supports both output and input on the I2S bus. For best performance it needs a better clock though.
Today I have my own XMOS design for the Audio Analyzer that I made. But I don't think that this interface will be made available as a separate item.
 
XMOS U8 is identified as XMOS XS1-U8 in Win Device Manager.
According to Xmos data sheet it is fully compliant with USB Audio 2.0.
In XMOS data sheets and design guides it is referred to as XMOS XS-1 U-series or XS-1 U8.
It definetly supports DACs, ADCs and CODECs via I2S as shown in XMOS USB Design Guide. It supports up to 4 input and 4 output channels with 2 stereo CODECs via i2S.
Since AK 4495 is directly connected to XMOS U8 chip over I2S on my DAC board, I though that maybe it will also work if I connect AK 5572 or AK5394A to XMOS U8 over I2S interface. Since it is supposed to be USB Audio 2.0 compliant, it should work with any OS that has support for USB Audio 2.0.
I use it with XMOS driver on Win 7 and it does not work with Win10 without a driver. In Win 10 it is recognized as a USB Audio 2.0 device, but does not work. It also works well with Android 7.1 tablet.
 
Member
Joined 2004
Paid Member
Some background on this (others will be looking as well). The Xmos chip is fully programmable and does nothing until it has firmware loaded. The firmware image can support various USB audio functions but a customized image will handle stuff that a "generic" image won't, like control of an ADC and a DAC. Those may need commands form I2C to switch modes and filters for example.

USB audio comes in two variations knon as USB audio Class 1 and USB audio Calss 2 (UAC1 and UAC2 for short). There are a lot of differences between them in how they manage audio data between the host and the device. There is overlap to make it more confusing.

Windows has support for UAC1 which can handle audio to 96K and usually is adaptive but async is supported. UAC2 brings higher sample rates, more channels async support for higher data rates etc. Its not native in Windows. There are several companies that have created drivers for UAC2 in Windows. They are all proprietary and cost money. The CMedia driver comes with their chips. Thesycon (and the other guy) are licensed on a per user base so they are costly.

You may be able to persuade someone like DIYinHK to supply and XMOS module with input support. Its worth asking. I have not seen a DIY USB audio record device from China yet.

Jen's has put a lot of effort into this box and I understand the need to keep it protected. The firmware was not free so I do understand not sharing it. Its not really his to share.
 
Member
Joined 2009
Paid Member
It looks like the "DXIO32ch USB to/from I2S/DSD SPDIF" from DIYinHK would be able to do what you are looking for. I haven't got personal experience with it though. It uses some good NDK crystal oscillators, so there seems to be a fair chance that the master clock will be clean.
 
In XMOS data sheets and design guides it is referred to as XMOS XS-1 U-series or XS-1 U8.
.

XMOS - is just a microcontroller,and it's behavior is fully determined of what firmware (also called "proshivka" :)) you put inside (at flash chip).

If some features (like I2S-Input) are missing in the current device, you can write you own firmware.
But - compete devices from most of manufacturers are protected with keycode in XMOS's OTP memory, so you cannot burn your own firmware without the knowledge of this keycode, only with replacing XMOS chip to the new, clear one.

In general, there is no problem to run XMOS with any ADC :)
 
XMOS - is just a microcontroller,and it's behavior is fully determined of what firmware (also called "proshivka" :)) you put inside (at flash chip).

If some features (like I2S-Input) are missing in the current device, you can write you own firmware.
But - compete devices from most of manufacturers are protected with keycode in XMOS's OTP memory, so you cannot burn your own firmware without the knowledge of this keycode, only with replacing XMOS chip to the new, clear one.

In general, there is no problem to run XMOS with any ADC :)
Sorry to dig up the topic, but I can't find a concrete explanation.

I have this board here working.
I removed unnecessary components to work, and briefly reverse-engineered the used pins.

flash memory is in accordance with the design guide.
xtal is attached schematic.

I can't generate new firmware and write it directly to SPI flash memory?:unsure:
Once the xCORE chip is used, is it useless to be used in any other project?:rolleyes:
So in the same way, a project that has this chip broken, can't be replaced? ie a disposable product?:sneaky:
 

Attachments

  • board.jpg
    board.jpg
    571.3 KB · Views: 69
  • flash.png
    flash.png
    12.9 KB · Views: 61
  • xtal.png
    xtal.png
    18.2 KB · Views: 65
I can't generate new firmware and write it directly to SPI flash memory?
Once the xCORE chip is used, is it useless to be used in any other project?

If original XMOS chip is protected - no, you cannot without the knowledge of 256-bit key.

So in the same way, a project that has this chip broken, can't be replaced?
No, if you want to use the original protected firmware.
And "yes", if you will use your own one.
 
If original XMOS chip is protected - no, you cannot without the knowledge of 256-bit key.


No, if you want to use the original protected firmware.
And "yes", if you will use your own one.
Thanks for your answer! (y)

So this board (image) is useless.
I need to buy a new, "unprotected"xCORE chip to replace, and then be able to flash my own firmware? :rolleyes:

is it mandatory to use the XTAG tool to protect the new chip? Or can I use it "unlocked"? :unsure:
 
Last edited:
I need to buy a new, "unprotected"xCORE chip to replace, and then be able to flash my own firmware?
Yes.
But the question - is it possible to buy it now...

is it mandatory to use the XTAG tool to protect the new chip? Or can I use it "unlocked"?
Of course you can use it unprotected. I set protection only at the end of the firmware development.
But in any case you need XTAG to debug and burn the firmware and bootloader.