Misaligned TDM channels xCORE-200 Topic is solved

Technical discussions related to any XMOS development kit or reference design. Eg XK-1A, sliceKIT, etc.
Post Reply
daniel3550
Member
Posts: 8
Joined: Thu Dec 06, 2018 12:07 am

Misaligned TDM channels xCORE-200

Post by daniel3550 »

Hello,

I have xCore-200 MC Audio board. I am doing a simple test where I loop back XMOS SDOUT to SDIN and view the data using Audio Precision APx software. For some reason the 8 channels coming back to PC are not phase aligned.

Firmware config:
- 2i8o8xxxxx_tdm8 build configuration from sw_usb_audio-[sw]_6.15.2rc1 - Unmodified

Hardware config:
- xCore-200 MC Audio board
- J7 pin 2 (xDAC SD1) fly-wired to J8 pin 2 (iADC SD1). This is how I loop back XMOS SDOUT to SDIN
- No other jumpers installed

Test setup:
- Use APx to output 8 channels via ASIO, 48kHz, 24 bit
- Use APx to read 8 channels via ASIO

The PC sends 8 channels, time aligned. But it comes back to the PC with the channels offset by 1 sample. There are 3 groups of channels

Channels 1,2: "Center"
Channels 3,4,5,6: advanced 1 sample
Channels 7,8: delayed 1 sample

Debug:
I have attached USB analyzer to view bus traffic. I see the channel misalignment in the USB data coming into the PC. So this is not a PC driver related issue. It comes from the XMOS misaligned.

Is this expected? How can I send 8 channels upstream to host that are phase-aligned?
Attachments
tdm_channel_alignment.png
(144.03 KiB) Not downloaded yet
tdm_channel_alignment.png
(144.03 KiB) Not downloaded yet
tdm_channel_alignment_zoom.png
(247.97 KiB) Not downloaded yet
tdm_channel_alignment_zoom.png
(247.97 KiB) Not downloaded yet


View Solution
daniel3550
Member
Posts: 8
Joined: Thu Dec 06, 2018 12:07 am

Post by daniel3550 »

For anyone interested, this is due to buffering in audio.xc deliver(). I was able to fix it in DoSampleTransfer() with delay and repackaging so the channels are phase aligned.
pfitchen
Junior Member
Posts: 4
Joined: Mon Mar 25, 2019 8:42 pm

Post by pfitchen »

Hi,

I'm dealing with the same issue, just with the 2i16o16xxxxx_tdm8 build configuration instead, and I'm wondering if you could share some more details on how you fixed this. The pattern of misalignment is the same for the second set of 8 channels (i.e. channels 9-16).

Thanks!
Post Reply