IMX RT 1062 Multi-channel I2S / SAI input

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

IMX RT 1062 Multi-channel I2S / SAI input

Jump to solution
1,700 Views
SammyP
Contributor I

Hi, I'm hoping to get some things cleared up about multi-channel I2S input on the IMX RT 1062. The documentation and tools are not very clear about some of the details.

According to the reference manual (page 2067), SAI1 is capable of handling up to 4 inputs by assigning the correct number of channels and setting the right pins. However, the NXP pin config tool confusingly only refers to these pins as  TX_DATA0-3 and not RX_DATA0-3. Is there any particular limitation on the RX capabilities or is this just an oversight in the tool?

Also, to configure the number of channels I'm assuming it's just a matter of setting the correct value in RCE of RCR3? This would be similar to the process for Multi-channel tx as described in AN12090. Again however, the documentation is a bit confusing because TCE / RCE is shown as a single bit (16) in the register map. Further on in the description it says the width depends on the number of channels. This would mean the contents spill over in to the reserved fields 17-23. Is this correct?

Lastly I would like to confirm if it's possible to combine SAI1, 2 and 3 to get up to 6 synchronous inputs. Where all peripherals are configured as slave and receive the same MCLK, BCLK and LRCK but different (synchronous) DATA. According to the documentation it would seem this is possible, however I want to make sure I'm not overlooking some limitation of the processor.

Labels (1)
0 Kudos
1 Solution
1,672 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi SammyP,

   You mean, all your 3 SAI module(SAI1 4RX, SAI2 1RX, SAI3 1RX) work as the slave mode, and your MCLK, LRCLK, BCLK is controlled by your master side, right?

  If yes, your slave side, just need to configure the three sai modules, and wait the received signal, the synchronous function is mainly determined by your master.

  But please note, different SAI module, related MCLK, BCLK, LRCLK(SYNC) is not the same pin, you need to use the hardware to connect it externally. Then I think you can realize your mentioned function, as you use the hardware connection connect the different clock module, and your SAIs are the slave receive.

 

Wish it helps you!

If you still have questions about it, please kindly let me know.

Best Regards,

kerry

View solution in original post

0 Kudos
3 Replies
1,684 Views
SammyP
Contributor I

Hello Kerry,

Thanks for the information. About the synchronous mode, I think I didn't understand fully before so I read the documentation again. The term "synchronous mode" refers to the synchronous operation between receiver and transmitter.

What I need is for all 6 data lines to be received synchronously. Since they all receive the same clocks I would assume they are inherently in sync regardless of any mode setting in the IMX RT.

I don't use any SAI transmitter so "synchronous mode" as defined by NXP doesn't apply to this case and all receivers can be set to operate in "asynchronous mode".

A diagram of the connection is shown in the attached image. A limited amount of data processing would be done by the ARM such as combining the 6 data streams in to a single stream and applying gain control / scaling. The combined data would then be sent over USB.

Would this be possible?

0 Kudos
1,673 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi SammyP,

   You mean, all your 3 SAI module(SAI1 4RX, SAI2 1RX, SAI3 1RX) work as the slave mode, and your MCLK, LRCLK, BCLK is controlled by your master side, right?

  If yes, your slave side, just need to configure the three sai modules, and wait the received signal, the synchronous function is mainly determined by your master.

  But please note, different SAI module, related MCLK, BCLK, LRCLK(SYNC) is not the same pin, you need to use the hardware to connect it externally. Then I think you can realize your mentioned function, as you use the hardware connection connect the different clock module, and your SAIs are the slave receive.

 

Wish it helps you!

If you still have questions about it, please kindly let me know.

Best Regards,

kerry

0 Kudos
1,688 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi SammyP,

  Seems your reference manual is not the newest document, please download it from this link:https://www.nxp.com/webapp/Download?colCode=IMXRT1060RM

  As I check page 2067, not the SAI content.

  About SAI1, you need to refer to this table:

kerryzhou_0-1616479669024.png

And the pin table:

kerryzhou_1-1616479710623.png

What does it mean?

It means, you can't use the RX and TX 4 pin together.

As, SAI1 RX_DATA1-3 share with TX_DATA1-3.

This is the chip SAI1 hardware feature,. table 37-2 is very clear about it.

About your question:Lastly I would like to confirm if it's possible to combine SAI1, 2 and 3 to get up to 6 synchronous inputs. Where all peripherals are configured as slave and receive the same MCLK, BCLK and LRCK but different (synchronous) DATA.

Answer: If you want to get 6 SAI_RX_DATA pins, yes, you can, but your SAI1 TX just can use 1 data line.

But to the synchronous, please check the RM note:

NOTE
Number of TX and RX data lines for SAI1 and SAI2/SAI3 are 4, and 1 respectively.
NOTE
In this device, it does NOT support synchronous mode between different SAI peripherals.

 

Wish it helps you!

If you still have questions about it, please kindly let me know.

Best Regards,

Kerry

 

 

 

 

0 Kudos