在i.MX RT060項(xiàng)目(采用QSPI Flash)的實(shí)際應(yīng)用中,有客戶(hù)反饋,其在設(shè)計(jì)階段并未預(yù)留DQS信號(hào)引腳,而是將該引腳作為GPIO用于控制關(guān)鍵外設(shè)的開(kāi)關(guān),這導(dǎo)致程序無(wú)法正常運(yùn)行。在此背景下,本文將以MIMXRT060-EVKB開(kāi)發(fā)板為例,詳細(xì)演示如何在不啟用DQS引腳的情況下,通過(guò)修改代碼確保開(kāi)發(fā)板的正常運(yùn)行。
通常情況下,為了提升存儲(chǔ)器訪(fǎng)問(wèn)速度,i.MXRT系列產(chǎn)品采用QSPIFlash會(huì)建議使用DQS信號(hào),設(shè)置懸空模式(loopbackfrom DQS pad mode).
然而,當(dāng)DQS引腳被占用時(shí),就需要采用一些特殊的處理方法。本文所介紹的方法即為在此種情況下的一種可行方案。
DQS信號(hào)簡(jiǎn)介
首先我們需要了解什么是DSQ信號(hào), DQS信號(hào)是數(shù)據(jù)采樣信號(hào),用于確保數(shù)據(jù)在高速傳輸過(guò)程中的正確性和穩(wěn)定性。通過(guò)提供數(shù)據(jù)同步與時(shí)序控制、提高數(shù)據(jù)傳輸可靠性以及支持高速數(shù)據(jù)傳輸?shù)裙δ堋T贗MXRT060RM參考手冊(cè)中可知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)
其中設(shè)置Internaldummy read strobe and loopbacked Internally這個(gè)模式正是本文需要設(shè)置的,數(shù)據(jù)手冊(cè)中描述了本模式下節(jié)省了一個(gè)DQS引腳。使用這個(gè)模式的設(shè)置限制條件在i.MX RT1060datasheet中有描述, 最大時(shí)鐘頻率是60MHz。
二、硬件與軟件準(zhǔn)備
1. 硬件:MIMXRT060-EVKB開(kāi)發(fā)板
2. 軟件:NXPSDK(version24.12.0)Demo“evkbmimxrt1060_flash_component_nor_flexspi”
三、代碼修改點(diǎn)
本文使用i.MX RT1060開(kāi)發(fā)板驗(yàn)證,不使用FlexSPIDQS信號(hào),并將DQS引腳設(shè)置成GPIO輸出使用。
我們主要修改xip文件夾下的evkbmimxrt1060_flexspi_nor_config.c文件中readSampleClkSrc和serialClkFreq這兩個(gè)設(shè)置。
因?qū)氲腟DK例程關(guān)于演示如何使用NorFlash組件來(lái)擦除、編程和讀取外部NorFlash設(shè)備。
因此我們還需要修改軟件部分包括:
1. 設(shè)置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函數(shù)的最后添加相應(yīng)代碼。
完成上述修改后,將工程燒寫(xiě)進(jìn)開(kāi)發(fā)板,使用萬(wàn)用表測(cè)量N3(FlexSPI_DQS)引腳電壓,可觀(guān)察到N3引腳周期拉高拉低。串口終端顯示Nor Flash組件的擦除、編程和讀取外部Nor Flash設(shè)備均成功,表明程序運(yùn)行正常。
總結(jié)
本文詳細(xì)闡述了在 i.MX RT系列產(chǎn)品中使用外部QSPI Flash芯片且不使用DQS信號(hào)引腳的情況下,如何修改代碼并進(jìn)行驗(yàn)證的過(guò)程。在某些特定場(chǎng)景下,如DQS引腳被其他功能占用或存儲(chǔ)器不需要高訪(fǎng)問(wèn)速度時(shí),可參考本文介紹的方法修改代碼,以確保工程正常運(yùn)行。
-
FlaSh
+關(guān)注
關(guān)注
10文章
1672瀏覽量
151201 -
引腳
+關(guān)注
關(guān)注
16文章
1635瀏覽量
52508 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5589瀏覽量
103168 -
GPIO
+關(guān)注
關(guān)注
16文章
1279瀏覽量
53715
原文標(biāo)題:i.MX RT系列中FlexSPI DQS信號(hào)引腳配置GPIO方法
文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
i.MX RT10xx系列外部晶振相關(guān)引腳的作用
FlexSPI的DQS信號(hào)作用是什么?哪些FlexSPI引腳組不支持DQS?
求助,可以忽略FlexSPI DQS嗎?
01:i.MX RT系列產(chǎn)品的介紹與演示

01:i.MX RT的市場(chǎng)應(yīng)用和參考解決方案

02:i.MX RT系列產(chǎn)品的介紹與演示

恩智浦i.MX RT1170開(kāi)創(chuàng)GHz MCU時(shí)代
恩智浦i.MX RT1170在將該系列帶上了更高的層面
i.MX RT開(kāi)發(fā)筆記-08 | i.MX RT1062嵌套中斷向量控制器NVIC(按鍵中斷檢測(cè))

RT-Thread & NXP 發(fā)布 i.MX RT 系列 BSP 新框架

適用于i.MX RT500和i.MX RT600 MCU的Xtensa音頻框架介紹
探討i.MX RT下FlexSPI driver實(shí)現(xiàn)Flash編程時(shí)對(duì)于中斷支持問(wèn)題
理解i.MX RT中FlexSPI外設(shè)lookupTable里配置訪(fǎng)問(wèn)行列混合尋址Memory的參數(shù)值

評(píng)論