i.MXRT1011: how to enable/use SAI1_RX_DATA1 on GPIO_05?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

i.MXRT1011: how to enable/use SAI1_RX_DATA1 on GPIO_05?

2,178 次查看
TheUncle
Contributor III

Hello,

we are using the RT1011 on a new design and we need a second RX channel on SAI1. The reference manual states that SAI1_RX_DATA1 is available for SAI1 as a second RX data line for multi-channel audio, but no muxing  configuration can be found in the manual - nor in the configuration tool. The line is supposed to use the pad GPIO_05 instead of SAI1_TX_DATA1 (as listed in the IOMUX table, RM page 196).

From the reference manual, (IMXRT1010RM Rev. 0, 09/2019) page 1035:

"SAI-1 is used for multi-channel audio interface, which supports up to 2-channels audio
input or 2-channels audio output at 384 kHz/32-bit"

So, how can SAI1_RX_DATA1 be used on pin GPIO_05 of RT1011?

Thanks in advance - and stay safe!
Stefano

标签 (1)
0 项奖励
回复
5 回复数

2,095 次查看
TheUncle
Contributor III

Hi Felipe,

thank you for the support.

Best regards,
Stefano

0 项奖励
回复

2,122 次查看
TheUncle
Contributor III

Hi Felipe,
thank you for the reply. It turns out that, yes, the path to / from GPIO_05  from / to SAI1.TX_DATA[1]  and SAI1.RX_DATA[1] is automatically selected depending on RCE and TCE settings. IOMUX setting is definitely not required as no daisy chain is involved.

However, in order for the data to actually reach and feed the SAI shift register, the following settings must be applied:

  • SION bit in SW_MUX_CTL_PAD_GPIO_05 must be set to '1' (force input path)
  • DSE bits in SW_PAD_CTL_PAD_GPIO_05 must be set to '000' (output driver disabled), otherwise the pin is driven stuck at zero.

Best regards,
Stefano

 

0 项奖励
回复

2,104 次查看
FelipeGarcia
NXP Employee
NXP Employee

Hi Stefano,

Thank you for your additional comments! I am glad to hear that you get it working.

Regards,

Felipe

0 项奖励
回复

2,133 次查看
FelipeGarcia
NXP Employee
NXP Employee

Hi Stefano,

I have received e a project on the RT1010 EVK for reference, please check the attachment and feedback below from internal team.

1. The default SDK uses SAI1.RX_DATA[0] (GPIO_03) as the input of SAI1, and now we change it to SAI1.RX_DATA[1] (GPIO_05) as the input of SAI1. It only should be noted that SAI1.RX_DATA[1] and SAI1.TX_DATA[1] share an IO pin(GPIO_05).

2. How to configure SAI1.TX_DATA[1] to connect to ipp_do_sai_txdata[1] or ipp_ind_sai_rxdata[1]?

This needs to ensure that the SAI1.TX_DATA[1] channel is disabled, and the SAI1.RX_DATA[1] channel is enabled. The specific registers are as follows. Set the RCE of SAI Receive Configuration 3 Register (RCR3) to 0x2, and set the TCE of SAI Transmit Configuration 3 Register (TCR3) to 0x1.

image.png

image.png

Hope it helps!

Best regards,

Felipe

-------------------------------------------------------------------------------

Note:

- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored. Please open a new thread and refer to the closed one, if you have a related question at a later point in time.

------------------------------------------------------------------------------ 

0 项奖励
回复

2,147 次查看
FelipeGarcia
NXP Employee
NXP Employee

Hi Stefano,

This seems to be a documentation issue as this is typically done by the daisy chain IOMUX registers as the image below for the RT1060. However, these registers are not included in the RT1010. I will check internally to confirm this and let you know when I receive some feedback.

image.png

Best regards,

Felipe

0 项奖励
回复