TDM Clocks if I2S_CHANS_PER_FRAME=4 on XU208

If you have a simple question and just want an answer.
Post Reply
AlexAdvice
XCore Addict
Posts: 138
Joined: Sun Feb 23, 2014 11:30 am

TDM Clocks if I2S_CHANS_PER_FRAME=4 on XU208

Post by AlexAdvice »

Hello friends.

I'm running my own board wit XU208 and trying to test with the reference software 6.15.2rc1
It works fine for 2CH with I2S, but now I want to try multichannel with TDM.

My 1st attempt was 8CH with one TDM Data Line (using I2S_CHANS_PER_FRAME=8) - also works fine.
But unfortunately, maximum sample rate is 96kHz with MCLK=512Fs.

For some reason I do not want to change mclk to 1024fs, so I decide to use 2 Data Lines (I2S_CHANS_PER_FRAME=4).
I can see all channels data, but I got FSync frequency 96kHZ and BCLK freq 12.288kHZ at Fs=48 and Fcyns=192kHZ + BCLK = 24.576kHz at Fs-96, so TDM works at double frequency.
This is a known issue or I'm doing something wrong?


P.S. I also want to play with more then 8 channels, but I don't know which PC software I can use for testing? Up to 8 channels I use WaveGene 1.50, are any suggestions?


User avatar
andrewxcav
Active Member
Posts: 62
Joined: Wed Feb 17, 2016 5:10 pm
Contact:

Post by andrewxcav »

I am not familiar with this application, but it does seem like you have some headroom in terms of clock frequency.

Can you get any number of channels got go about 96 kHz.? I'd also search the source code for any #defines setting a max sample frequency to rule out this being a known issue or limitation.
AlexAdvice
XCore Addict
Posts: 138
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

8 channels.

With I2S_CHANS_PER_FRAME=8 everything is fine, with Fs=48kHz I got:
Fsync = 48kHz
BCLK = 12.2144 MHz.

BUT:
With I2S_CHANS_PER_FRAME=4 and Fs=48kHz it should be:
Fsync = 48kHz
BCLK = 6.144 MHz.

and I got the double frequencies:
Fsync = 96kHz
BCLK = 12.288MHz
User avatar
andrewxcav
Active Member
Posts: 62
Joined: Wed Feb 17, 2016 5:10 pm
Contact:

Post by andrewxcav »

That certainly sounds like a bug. I would see if you can reproduce it in any of these examples:

https://github.com/xmos/lib_i2s/tree/master/examples

to see if the problem is in the library or in the reference software.

If the problem is with the library, then submit an issue on it's Github page, if it's the reference design, and there isn't a newer version published, then report back here.
AlexAdvice
XCore Addict
Posts: 138
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

I used the Reference Design, the latest available version (~1 year ago).
User avatar
andrewxcav
Active Member
Posts: 62
Joined: Wed Feb 17, 2016 5:10 pm
Contact:

Post by andrewxcav »

Right, I was asking if you could determine whether the library or the reference design was to blame. (the reference design probably also uses an older version of the library and may not be compatible with the latest, so the examples on Github are the best bet for testing the lib)
AlexAdvice
XCore Addict
Posts: 138
Joined: Sun Feb 23, 2014 11:30 am

Post by AlexAdvice »

As I remember, the Reference Design does not use this library.
I tried to find where is the problem, but I have to switch to another project, so this is temporary postponed.
Post Reply