【NXP i.MX RT1170 技術手冊】- 如何開啟 QSPI Flash 的 QE bit

一、 前言

大部分 i.MX RT 系列 MCU 沒有內建 Flash,因此為其搭配 Serial NOR Flash 去啟動是必需的。而 Serial NOR Flash 的型號非常多,有些型號會遇到無法啟動或是使用容量不如預期的問題。

本文的目的,主要是透過 flexspi_nor_config.c 裡的設定,讓幾個無法在 i.MX RT 下正常使用的 Flash 的可能因素獲得解決。


二、 flexspi_nor_config 架構

下列為 evkmimxrt1170_flexspi_nor_config.c 的程式片段,這裡設定了 Flash 硬體的規格與 i.MX RT 啟動後如何對 Flash 進行讀取。

 



參考 i.MX RT1170 Processor Reference Manual,可以找到 evkmimxrt1170_flexspi_nor_config.c 的參數說明






其中,參數裡的 memcfg 決定 i.MX RT 用多快的 Clock 與多少 I/O 對 flash 進行讀取,配置的參數說明如下








memcfg 裡的 lookupTable,這裡添加的參數,決定了 SPI 的指令,對應說明如下 : 




再來介紹, i.MX RT 在 Flash 的使用上會遇到的一些問題與修改建議


三、 QE Enable


i.MX RT 系列 MCU 支援 QSPI 啟動,藉由 4bit 讀取,提升執行效率,可是部分 FLASH 出廠的預設值並不支援 4 bit 讀取,如果要啟用 QSPI Mode,需增加額外的 command,讓 MCU 啟動時先修改暫存器,開啟 QSPI 模式,再進行讀取。

以 MX25L51245G 為例,參考 Flash 的文件,如果要支援 4 bit 讀取,需要將 Status Register 的 bit6 (QE) 設定為 1




要將值寫入 Status Register,需要先開啟 Flash 的 WREN,再用 WRSR 指令寫入,指令行為如下






我們先將 WRSR 的寫入行為加入到 evkmimxrt1170_flexspi_nor_config.c 的 lookupTable,再把 memcfg 裡的configCmdEnable 開啟,讓 MCU 在啟動時,先送出 configCmdSeqs 裡指定的指令。




在 evkmimxrt1170_flexspi_nor_config.c 的 .lookupTable 加入 WRSR 指令




在 .memConfig 加入下述程式段,開啟 configCmdEnable




MCU 啟動時,會送出 WREN、WRSR 指令,並將 QE bit 已開啟,FLASH 已運作在 QSPI 模式。


四、 參考資料

1. i.MX RT1170 Processor Reference Manual
2. MX25L51245G - J Grade 

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能