在i.MX RT060项目(采用QSPI Flash)的实际应用中,有客户反馈,其在设计阶段并未预留DQS信号引脚,而是将该引脚作为GPIO用于控制关键外设的开关,这导致程序无法正常运行。在此背景下,本文将以MIMXRT060-EVKB开发板为例,详细演示如何在不启用DQS引脚的情况下,通过修改代码确保开发板的正常运行。
通常情况下,为了提升存储器访问速度,i.MXRT系列产品采用QSPIFlash会建议使用DQS信号,设置悬空模式(loopbackfrom DQS pad mode).
然而,当DQS引脚被占用时,就需要采用一些特殊的处理方法。本文所介绍的方法即为在此种情况下的一种可行方案。
DQS信号简介
首先我们需要了解什么是DSQ信号, DQS信号是数据采样信号,用于确保数据在高速传输过程中的正确性和稳定性。通过提供数据同步与时序控制、提高数据传输可靠性以及支持高速数据传输等功能。在IMXRT060RM参考手册中可知RXclock source有以下三种配置:
1. Internaldummy read strobe and loopbacked internally(MCR0[RXCLKSRC]==0)
2. Internaldummy read strobe and loopbacked from DQS pad(MCR0[RXCLKSRC]==1)
3. Flashprovided read strobe(MCR0[RXCLKSRC]==3)

其中设置Internaldummy read strobe and loopbacked Internally这个模式正是本文需要设置的,数据手册中描述了本模式下节省了一个DQS引脚。使用这个模式的设置限制条件在i.MX RT1060datasheet中有描述, 最大时钟频率是60MHz。

二、硬件与软件准备
1. 硬件:MIMXRT060-EVKB开发板
2. 软件:NXPSDK(version24.12.0)Demo“evkbmimxrt1060_flash_component_nor_flexspi”
三、代码修改点
本文使用i.MX RT1060开发板验证,不使用FlexSPIDQS信号,并将DQS引脚设置成GPIO输出使用。
我们主要修改xip文件夹下的evkbmimxrt1060_flexspi_nor_config.c文件中readSampleClkSrc和serialClkFreq这两个设置。

因导入的SDK例程关于演示如何使用NorFlash组件来擦除、编程和读取外部NorFlash设备。
因此我们还需要修改软件部分包括:
1. 设置N3引脚为GPIO输出

2. 修改hardware_init.c文件中代码.flexspiRootClk= 60000000

3.修改fsl_flexspi_nor_flash.c文件中代码为flexspiConfig.rxSampleClock=kFLEXSPI_ReadSampleClkLoopbackInternally

4. 修改app.h文件中代码为CLOCK_SetDiv(kCLOCK_FlexspiDiv,4)

此外,在main函数的最后添加相应代码。

完成上述修改后,将工程烧写进开发板,使用万用表测量N3(FlexSPI_DQS)引脚电压,可观察到N3引脚周期拉高拉低。串口终端显示Nor Flash组件的擦除、编程和读取外部Nor Flash设备均成功,表明程序运行正常。

总结
本文详细阐述了在 i.MX RT系列产品中使用外部QSPI Flash芯片且不使用DQS信号引脚的情况下,如何修改代码并进行验证的过程。在某些特定场景下,如DQS引脚被其他功能占用或存储器不需要高访问速度时,可参考本文介绍的方法修改代码,以确保工程正常运行。
-
FlaSh
+关注
关注
10文章
1715浏览量
154738 -
引脚
+关注
关注
16文章
2098浏览量
55175 -
开发板
+关注
关注
25文章
6140浏览量
113622 -
GPIO
+关注
关注
16文章
1313浏览量
55742
原文标题:i.MX RT系列中FlexSPI DQS信号引脚配置GPIO方法
文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
i.MX RT10xx系列外部晶振相关引脚的作用
求助,可以忽略FlexSPI DQS吗?
01:i.MX RT的市场应用和参考解决方案
恩智浦i.MX RT1170开创GHz MCU时代
恩智浦i.MX RT1170在将该系列带上了更高的层面
i.MX RT开发笔记-08 | i.MX RT1062嵌套中断向量控制器NVIC(按键中断检测)
RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架
适用于i.MX RT500和i.MX RT600 MCU的Xtensa音频框架介绍
探讨i.MX RT下FlexSPI driver实现Flash编程时对于中断支持问题
理解i.MX RT中FlexSPI外设lookupTable里配置访问行列混合寻址Memory的参数值

i.MX RT系列中FlexSPI DQS信号引脚配置GPIO方法
评论