[Infinitas]: USB Audio Class 2 Interface, 32 in, 32 out, DSP

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Do you mean that when you set the FSYNC_OFFSET to zero in xcore app it does't honor that setting? There is no LRCK in TDM, just the FSYNC. You can combine somehow I2S and TDM if you need to use both at the same time but I guess you have to use left justified PCM mode instead of I2S then with the zero-offset TDM, or I2S with one-clock-offset TDM.
 
You are right, in TDM mode LRCK should be renamed FSYNC.
The main difference between TDM and I2S besides clock period offsets is that TDM syncs on rising edge of FSYNC while I2S syncs on falling edge of FSNYC (=LRCK), but that wasn't the problem.
It was simply that I could not found a working combination and hey, the additional shift register inside the MachXO2 solves the problem.  ;)

I am currently busy with testing the second AD/DA-Board connected.  :)
 
Looked at some XMOS TDM examples (xmos/lib_i2s on Github) where they have used CS4384 DAC, and the CS4384 datasheet says:

Code:
The TDM serial audio interface format operates in Single-, Double-, or Quad-Speed Mode and will slave
to SCLK at 256 Fs. Data is received most significant bit first on the first SCLK after an LRCK transition
and is valid on the rising edge of SCLK. LRCK identifies the start of a new frame and is equal to the sample
rate, Fs. LRCK is sampled as valid on the rising SCLK edge preceding the most significant bit of the first
data sample and must be held valid for one SCLK period.

So they are using LRCK and SCLK signal names, and let us know that the LRCK must be valid one SCLK period before first data bit. Maybe they haven't just tested their software with other TDM input DAC's which don't have that one sample period offset.
Seems they have also changed the architecture of I2S/TDM lib from sample based to frame based at some point to save processing time.
 
I am definitely interested in this project and will take a board when available.  I also may be able to contribute to the code if needed -- My day job is a firmware developer  :) 
 
Good news. I made progress and I am now busy with making everything ready for a first release with a basic configuration. Currently I need to check a license issue of some source code parts before uploading it all to github.

I expect to have some boards available end of August.
 
I very much like this project and I will take a board when available. Thanks for your work and sharing.
 
Hi,

today I have a picture of the finished and working prototype for you. This is already the final layout. You can stack up to 8 expansion boards and use up to 32 input and 32 outputs channels.
On this prototype I have connected 2 analog IO expansion boards giving 16 analog input and 16 analog output channels. All audio channels are balanced, connectors are Sub-D 25 with Tascam pin layout.
Please note, to make prototyping a bit easier I have put the gerber files of the USB mainboard and of the two expansion boards on just one panel. They are still connected only by cables. Thus, there is no difference to the planned release. Expansion boards are connected by a flatband ribbon cable. You can make two stacks of 4 boards each. On each stack the expansion boards are daisy chained. Therefore, very easy to handle. That's why I have choosen this new layout.
With the given layout it is possible to make a 32in/32out interface with a 1U enclosure.
What I have not connected yet is the wordclock I/O. This is only a board with two BNCs that will be connected to the red MicroMatch header next to the USB connector by a flatband ribbon cable.

Raphael
 

Attachments

  • proto2.jpeg
    proto2.jpeg
    459.8 KB
"IO expansion boards giving 16 analog input and 16 analog output channels. All audio channels are balanced, connectors are Sub-D 25 with Tascam pin layout"

Can you add also simple connector for ribbon cable to board before Sub-D ? Another PCB (with XLR connectors, or something) can be connected via ribbon and no Sub-D. Just idea :)
 
Thank you so much. The thank you I am trying to give is not satisfactory with how thankful I am that you are creating this and sharing this with others.
 
JuanV said:
"IO expansion boards giving 16 analog input and 16 analog output channels. All audio channels are balanced, connectors are Sub-D 25 with Tascam pin layout"

Can you add also simple connector for ribbon cable to board before Sub-D ? Another PCB (with XLR connectors, or something) can be connected via ribbon and no Sub-D. Just idea :)

Take a closer look to the prototype, this connector is already there.  ;)
 
If there is someone who wants to write such a driver, I am not going to stop him or her. ;-)

ATM it depends on your system. I am working with macOS High Sierra.  The board runs without a driver installation because an UAC2 driver has been part of macOS for years now.
Microsoft never integrated a UAC2 driver until Win10. Although they have been a member of UAC2 specification group. But now they claim that Win10 comes with a UAC2 driver, finally.
For other Windows versions Thesyscon, CEntrance or Ploytec offer universal drivers.
 
Great, so an OSX user could have all 32 ins and outs (if using the expansion board) available in Pro Tools right away, without any special software?
 
The Windows 10 (from release 1703 on)  UAC2 driver has been developed by Thesycon and is supported by MS:

https://docs.microsoft.com/en-us/windows-hardware/drivers/audio/usb-2-0-audio-drivers

I can't see there's any limitation to the number of channels (expressed in bNbrChannels field in USB Audio devices format descriptor).
 
I have an XMOS-200 carrier board from DIYINHK that I have been working with in a similar configuration. It creates 24 channels of audio out to an ADAU1452 over 3x TDM-8 busses. I have been using the Thesycon demo driver for testing because the Microsoft 2.0 driver will not enumerate the device with the error 'This device cannot start (Code 10). The request is not supported'. It works properly with the Thesycon demo driver, but that driver has beeps every 30 seconds. The Windows USB Audio 2.0 may require additional work to be functional.
 

Latest posts

Back
Top