如何将 GPIO_EMC_B2_18 配置为 FLEXSPI1_A_DQS 并将时钟频率设置为 133 MHz?你好,
我想将 i.MX RT1175 上的 GPIO_EMC_B2_18 配置为 FLEXSPI1_A_DQS,并将时钟频率设置为 133 MHz。
我知道在启动过程中不能将 GPIO_EMC_B2_18 设置为 FLEXSPI1_A_DQS。
因此,我尝试在启动时以 60 MHz 的频率运行,然后在应用程序中将其更改为 133 MHz,但这不起作用。
我正在使用 evkbmimxrt1170_flexspi_nor_polling_transfer 项目,并修改了 `flexspi_nor_flash_ops.c` 中 `flexspi_nor_flash_init()` 的相关部分。
```
IOMUXC_SetPinMux(IOMUXC_GPIO_EMC_B2_18_FLEXSPI1_A_DQS, 1U);
IOMUXC_SetPinConfig(IOMUXC_GPIO_EMC_B2_18_FLEXSPI1_A_DQS, 0x0AU);
CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi1, 4);
CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi1, 5);
config.rxSampleClock= kFLEXSPI_ReadSampleClkLoopbackFromDqsPad;
```
当时钟频率设置为 133MHz 时,系统会死机。
```
CLOCK_SetRootClockDiv(kCLOCK_Root_Flexspi1, 5);
CLOCK_SetRootClockMux(kCLOCK_Root_Flexspi1, 5);
```
当时钟频率设置为 105MHz 时,它可以正常工作。
如何将 GPIO_EMC_B2_18 配置为 FLEXSPI1_A_DQS 并将时钟频率设置为 133 MHz?
Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz?嗨@mayliu1 ,
谢谢你的回复。
辅助 ping 组确实只能以 100 MHz 的频率运行,但我计划使用主 ping 组,并将 DQS 更改为 GPIO_EMC_B2_18。原因是,我使用了 GPIO_SD_B2_05 来执行 USDHC2_CMD 命令。
引脚配置
FLEXSPI1_A_SS0_B GPIO_SD_B2_06
FLEXSPI1_A_SCLK GPIO_SD_B2_07
FLEXSPI1_A_DATA0 GPIO_SD_B2_08
FLEXSPI1_A_DATA1 GPIO_SD_B2_09
FLEXSPI1_A_DATA2 GPIO_SD_B2_10
FLEXSPI1_A_DATA3 GPIO_SD_B2_11
FLEXSPI1_A_DQS GPIO_SD_B2_05(启动)
在应用程序中,只有 FLEXSPI1_A_DQS 被更改为 GPIO_EMC_B2_18。
FLEXSPI1_A_DQS GPIO_EMC_B2_18
作为测试,我将 EVK 上的时钟频率从 60 MHz(启动)更改为 133 MHz,而没有更改 FLEXSPI1_A_DQS(将其设置为 GPIO_SD_B2_05),结果它以同样的方式卡住了。
由于 xip 配置设置为 .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally,我将其更改为 kFlexSPIReadSampleClk_LoopbackFromDqsPad,并且能够在 133 MHz 下运行。
接下来,我尝试将 DQS 更改为 GPIO_EMC_B2_18,并能够以 133 MHz 的频率运行。
这种做法可以接受吗?
此外,在启动过程中,GPIO_SD_B2_05 不是浮空状态。将其设置为 `kFlexSPIReadSampleClk_LoopbackFromDqsPad` 并以 60 MHz 运行可以吗?Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz?嗨@Shuhei_D ,
非常感谢您对我们产品的关注以及对我们社区的使用。
更多详情请参阅以下帖子:
https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT-1176-FlexSPI-RW-frequency-DQS/mp/1871808
根据 RT1170 参考手册,当使用辅助引脚组时,支持的最大 FlexSPI flash 频率为 100 MHz。
请您检查一下您的项目配置,并确认它是否与上面链接中描述的情况相符?
希望对你有帮助
顺祝商祺!
5月
Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz?感谢你的回复。
查看原理图后,我发现 GPIO_EMC_B2_18 处于浮空状态。Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz?看来您想将 SPI 时钟频率从 60MHz 切换到 133MHz 来驱动 NOR 闪存外部驱动器。但是 105MHz 似乎还可以,所以您可能需要根据 SPI 高频信号完整性检查布局方面的问题。你会查看原理图吗?
Re: How can I configure GPIO_EMC_B2_18 as FLEXSPI1_A_DQS and set the clock frequency to 133 MHz?嗨@Shuhei_D ,
感谢您的耐心等待。
我已经仔细核对您的问题。
请使用主 DQS 引脚,不要使用辅助 DQS 选项。
mayliu1_0-1782368272303.png
对于您的情况,如果主 DQS 引脚已被用于其他功能,您可以应用以下配置。但是请注意,此设置仅支持最高 60 MHz 的频率:
mayliu1_1-1782368409020.png
希望对你有帮助
顺祝商祺!
5月