SAI module for TDM communication using eDMA

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

SAI module for TDM communication using eDMA

Jump to solution
1,812 Views
RValls
Contributor III

Hello everybody,

 

I have an application where we need to receive 8 audio channels via TDM format. For this purpose, I am using the SAI module. For improving the performance, I want also to use the eDMA of the device.

 

The problem is that with the SDK I have not been able to receive anything, it always stops after the first transfer.

What I have tried is to follow the example in the SDK's API, but it is using DMA (not eDMA), and I haven't managed to get it working.

 

Does somebody have some working example?

 

I am using a Kinetis K64 device.

 

Thank you in advance,

Ruben

Labels (1)
0 Kudos
1 Solution
1,176 Views
RValls
Contributor III
0 Kudos
3 Replies
1,176 Views
xiangjun_rong
NXP TechSupport
NXP TechSupport

Hi, Ruben,

Regarding your question, I need more details. For example, what is TDM?  does TDM mode mean that you have 8 slot for each frame for the audio stream? or TDM mode means that the data stream just has 2 slot for each frame and you need 4 input I2S pins(SAI_RX_DATA) to receive the data stream, this is I2S mode.

Furthermore, are the bit clock and frame clock source are input or output? which tools are you using.

I have an normal mode example based on K70 and CodeWarrior for mcu tools and PE, "normal mode" mode means that just the first slot of multiple slots frame is valid, you can modify based on the example. I think PE is a good tools to develop code.

I attach the example, hope it can help you.

BR

Xiangjun Rong

0 Kudos
1,177 Views
RValls
Contributor III

Hi Xiangjun,

The mentioned thread is here:

Implementing audio delay using SSI and DMA

0 Kudos
1,176 Views
RValls
Contributor III

Hi Xiangjun,

Sorry for the long delay.

What I need is transmit and receive TDM. By TDM I mean an audio stream consisting of 8 slots in each frame, thus using only one pin as RX and one pin as TX.

The K64 is acting as slave, so all clocks are input.

About the tools, I am using the SDK v2.0.

After some experimenting,  I have been able to set up the SDK, and now I am able to receive and transmit the audio data using the DMA.

Now I am facing another problem, but since it is different than my original question, I am going to open a new question. If you want to follow it up, I will post the link here

0 Kudos