i.MX53 SSI problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

i.MX53 SSI problem

Jump to solution
2,293 Views
alexeryomenko
Contributor I

Hello!

I am developing driver for the TDM network of 8 DSPs now. That's why I configured SSI with 8 timeslots. I have problem with synchronizing DMA with SSI: start of the DMA chunk occupies random slot of SSI.

My sequence of configuration:

1. Configure DMA transfers (MXC_DMA_SSI2_8BIT_TX0 and MXC_DMA_SSI2_8BIT_RX0).

2. Configure SSI in network mode (8 timeslots, 8 bits, single bit FSYNC from external clock) for both RX and TX paths.

3. Enable SSI, because I need to produce FSYNC from external clock to initialize DSPs correctly.

4. Enable DMA transfers.

5. Enable RX and TX paths of SSI.

In spite of this sequecnce, I have no synchronization between DMA and SSI.

Can any one help me with my problem? May be someone have experience with same problem?

Thank you in advance!


Labels (1)
Tags (3)
0 Kudos
1 Solution
1,120 Views
adrian_alonso
NXP Employee
NXP Employee

Hi Alexey,

AFAIK none of the codec drivers that use SSI interface enables TDM mode.

The SGTL5000 Linux driver is configured in Network mode; so is posible that this TDM mode has not been validated.

CS42888 codec uses ESAI interface, and the driver enabled TDM, and could serve you as reference for your needs, iMX6 Sabre Auto platforms supports CS42800 which has a 8 channel playback capability.

Can you explain a little more about the topology connection that you whant to acheive?

Regards

Adrian Alonso

View solution in original post

0 Kudos
8 Replies
1,120 Views
alexeryomenko
Contributor I

Seems, my problem is very specific...

Does anyone encounter such problem with SGTL5000 driver (or other sound codec)? I think this problem can produce random channel mapping of stereo sound at system start: left channel can be right (and vise versa).

Unforunately, I can't reproduce this experiment on my custom board. Can anyone reproduce this situation or share experiences?

0 Kudos
1,121 Views
adrian_alonso
NXP Employee
NXP Employee

Hi Alexey,

AFAIK none of the codec drivers that use SSI interface enables TDM mode.

The SGTL5000 Linux driver is configured in Network mode; so is posible that this TDM mode has not been validated.

CS42888 codec uses ESAI interface, and the driver enabled TDM, and could serve you as reference for your needs, iMX6 Sabre Auto platforms supports CS42800 which has a 8 channel playback capability.

Can you explain a little more about the topology connection that you whant to acheive?

Regards

Adrian Alonso

0 Kudos
1,120 Views
alexeryomenko
Contributor I

Hi, Adrian!

Thank's for your reply!

I have been solved my problem. There were no problem with DMA and SSI synchronization or SSI configuration. My problem was in short DMA periods (1ms) and further activity in the driver, which blocks interrupts. That's why I observed random offset in frame.

The most of activities were printk to serial console. I thought that printk must use DMA, and that's why can't block interrupts for a long time, but seems it is not so.

0 Kudos
1,120 Views
wirebrand
Contributor I

Hi Alexey,

I seem to have the same problem as you did with the random offset. For me however it does not seem to be connected to printk. Did you find any other problems related to this?

Thanks,

Marcus

0 Kudos
1,120 Views
calebcrome
Contributor I

Hi there Alexey,

  did you ever get multi-channels working in linux with the SSI in network mode?  any chance you can share what you did to make it all work?

Thanks,

-Caleb

0 Kudos
1,120 Views
nagendrasarma
Contributor III

hi all,

i am trying to use imx-ssi in network mode to capture 6 channel audio

1. ssi is slave

2. no TX using only RX

3. using single FIFO

4. input is 8 channel 32bits per channel 48khz constant (bclk is 32*8*48khz = 12.228MHz)

5. need to capture/store 6 channels out of it (16 bit per sample)

the register settings for above requirement is (using ssi2)

scr 408

srcr 280

srccr e80

srmsk ffffffc0

sfcsr 660066

but my arecord throwing error as below

arecord: pcm_read:2039:

read error: Input/output error

please help me in solving, what is wrong in my settings ?

did anybody tested ssi in network mode  for capture ?

regards

Nagendra

0 Kudos
1,120 Views
calebcrome
Contributor I

Hi there Alexey,

  did you ever get multi-channels working in linux with the SSI in network mode?  any chance you can share what you did to make it all work?

Thanks,

-Caleb

0 Kudos
1,120 Views
uolli
Contributor III

Hi Alexey,

I am working on to writing codes to make SSI working on Network mode, but as Adrian said, there is no sample codes for the reference, could you please share parts of your codes for how to program SSI to network mode :smileyhappy:

Thank you very much.

0 Kudos