痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU啟動那些事(10.A)- FlexSPI NAND啟動時間(RT1170)

来源:https://www.cnblogs.com/henjay724/archive/2023/07/29/17589695.html
-Advertisement-
Play Games

大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是**恩智浦i.MX RT1170 FlexSPI NAND啟動時間**。 本篇是 i.MXRT1170 啟動時間評測第四彈,前三篇分別給大家評測了 [Raw NAND 啟動時間](https://www.cnblogs.com/henj ...



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1170 FlexSPI NAND啟動時間

  本篇是 i.MXRT1170 啟動時間評測第四彈,前三篇分別給大家評測了 Raw NAND 啟動時間(基於 MIMXRT1170-EVK_Rev.B)、Serial NOR 啟動時間(基於 MIMXRT1170-EVB_Rev.A2)、1bit SPI NOR 恢復啟動時間(基於 MIMXRT1170-EVK_Rev.C)。最近痞子衡剛寫了篇 《i.MXRT從Serial NAND啟動》,趁熱打鐵,索性在新板卡 MIMXRT1170-EVKB_Rev.B 上再測一下 Serial NAND 的啟動時間(這裡指在 ITCM 執行,暫不考慮在 SDRAM 執行)。

一、準備工作

1.1 知識儲備

  除了依賴的底層外設類型不同之外,Serial NAND 啟動流程與 Raw NAND 啟動流程幾乎是一致的,因為存儲介質角度而言兩者都是 NAND。我們知道 NAND 中僅能放置 Non-XIP Application,其不支持原地執行,所以需要 BootROM 來完成 Application 拷貝工作(從 NAND 到 ITCM),為了輔助 BootROM 完成工作,我們需要在 NAND 中放一些特殊數據(即下麵的 FCB, DBBT, IVT)。

  BootROM 首先從 NAND 中讀取 FCB(此時是利用 eFuse 0x940 和 0xC80 里的簡化時序配置選項),FCB 中含有三類信息:用戶設置的完整時序配置數據(可選的)、DBBT 位置,IVT 位置。BootROM 首先會檢查是否存在完整時序配置數據,如果有,則使用這個數據重新配置 NAND 訪問時序。然後 BootROM 會繼續獲取 DBBT 數據,獲知當前 NAND 的壞塊信息,接下來便是根據 IVT 信息獲取 Application 數據完成拷貝(拷貝過程中需要避開壞塊)。

1.2 時間界定

  關於時間起點和終點,參考《FlexSPI NOR啟動時間》 里的1.2節,方法保持一致。EVKB_Rev.B 上時間起點位置 POR 直接引到了 J92-2,無需額外飛線了,不過這個點位有很多電容,會導致電壓上升時間緩慢,影響起點選擇,後面會特別備註。

1.3 製作應用程式

  關於應用程式製作,參考《SEMC NAND啟動時間》 里的1.3節。這次測試對長度方面做一些優化,代碼改動後的測試工程編出來大小是 21516 bytes,我們可以用二進位編輯器打開 .bin 文件在後面直接插入一些數據將其湊整成 24KB,按此方法可以多做幾個不同長度的 image。

1.4 下載應用程式

  應用程式的下載需藉助痞子衡開發的 NXP-MCUBootUtility 工具(v5.2.1版本及以上),我們需要對 EVKB 板卡做一些改動,將原 U23 - NOR Flash 改為 GigaDevice GD5F1GQ5UEYIG。

  翻看 GD5F1GQ5UEYIG 的數據手冊,它的總容量是 1Gb,Page Size 是 2KB,最高速度可達 133MHz,因此使用 NXP-MCUBootUtility 下載時做如下配置(不同測試,我們僅需調整 Max Frequency 選項即可):

1.5 示波器抓取信號

  一切準備就緒,可以用示波器抓 NAND 啟動時間了。這次痞子衡偷了個懶,就測量兩路信號,通道一監測主晶元 POR 信號,通道二監測 LED GPIO 信號。

二、開始測試

2.1 測試結果

  在公佈結果之前,痞子衡先帶大家分析一下示波器抓取的啟動時間波形,方便大家理解後續表格裡的各項組成。POR 信號電壓上升時間比較緩慢,其供電來自於 VDD_1V8,我們時間起點暫取其標準有效值 70% - 1.2V 處。

  現在讓我們看結果吧,痞子衡基於 Flash 速度和 App 長度組合做了很多測試,結果如下表所示(註:表中結果都是在 50M 次/秒的採樣率下所得):

Flash型號 App長度 Flash Timing模式 測量啟動時間 修正啟動時間
GD5F1GQ5UEYIG 24KB 30MHz 11.66 ms 10.88 ms
50MHz 10.26 ms 9.48 ms
60MHz 9.86 ms 9.08 ms
72MHz 9.46 ms 8.68 ms
80MHz 9.32 ms 8.54 ms
100MHz 9.1 ms 8.32 ms
133MHz 8.86 ms 8.08 ms
240KB 30MHz 48.06 ms 47.28 ms
50MHz 34.66 ms 33.88 ms
60MHz 29.46 ms 28.68 ms
72MHz 26.66 ms 25.88 ms
80MHz 24.26 ms 23.48 ms
100MHz 22.46 ms 21.68 ms
133MHz 21.76 ms 20.98 ms

2.2 結果修正

  啟動時間包含 BootROM 和 BootFlash 時間,因為這次測試痞子衡沒有拉出 NAND CS# 信號,所以無法直接測量出 BootROM 時間,但是可以根據結果推算,選取 24KB 和 240KB 在 30MHz 下測試的兩組結果:

BootROM_time + 24KB_60MHz_BootFlash_time  = 9.86ms
BootROM_time + 240KB_60MHz_BootFlash_time = 29.46ms
24KB_60MHz_BootFlash_time * 10 = 240KB_60MHz_BootFlash_time(假定)

得出 BootROM_time = 7.68ms

  前幾篇測試痞子衡得到的 BootROM 時間都是 6.9ms,看來時間起點 POR 按 70% VDD_1V8 的選擇偏早,應該要往後再移一些,如果修正結果的話,那上表裡的所有結果全部要再減去 (7.68-6.9)ms 才是更精確的啟動時間結果。

  至此,恩智浦 i.MX RT1170 FlexSPI NAND 啟動時間痞子衡便介紹完畢了,掌聲在哪裡~~~

歡迎訂閱

文章會同時發佈到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

微信搜索"痞子衡嵌入式"或者掃描下麵二維碼,就可以在手機上第一時間看了哦。

  最後歡迎關註痞子衡個人微信公眾號【痞子衡嵌入式】,一個專註嵌入式技術的公眾號,跟著痞子衡一起玩轉嵌入式。

痞子衡嵌入式-微信二維碼 痞子衡嵌入式-微信收款二維碼 痞子衡嵌入式-支付寶收款二維碼

  衡傑(痞子衡),目前就職於某知名外企半導體公司MCU系統部門,擔任嵌入式系統應用工程師。

  專欄內所有文章的轉載請註明出處:http://www.cnblogs.com/henjay724/

  與痞子衡進一步交流或咨詢業務合作請發郵件至 [email protected]

  可以關註痞子衡的Github主頁 https://github.com/JayHeng,有很多好玩的嵌入式項目。

  關於專欄文章有任何疑問請直接在博客下麵留言,痞子衡會及時回覆免費(劃重點)答疑。

  痞子衡郵箱已被私信擠爆,技術問題不推薦私信,堅持私信請先掃碼付款(5元起步)再發。



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ## 圖示 ![image](https://img2023.cnblogs.com/blog/1866596/202307/1866596-20230728101801138-171904977.png) ## 1. 現狀 > 場景: 假設設備上報不同類型的消息,我們要對不同類型的消息做不同的處理 ...
  • # python 單例模式 單例模式是一種設計模式,目的是確保一個類只有一個實例,並提供一個全局訪問點來獲取該實例。 有些類只需要一個全局唯一的實例,例如資料庫連接池、線程池、日誌記錄器等。使用單例模式可以確保這些類只有一個實例存在,從而避免了資源的浪費和不一致的狀態。 單例模式通常包含以下幾個要素 ...
  • 經過一段時間的準備,新的一期【ASP.NET Core MVC開發實戰之商城系統】已經開始,在之前的文章中,講解了商城系統的整體功能設計,頁面佈局設計,環境搭建,系統配置,及首頁【商品類型,banner條,友情鏈接,降價促銷,新品爆款】等功能的開發,今天繼續講解商品列表頁面功能開發,僅供學習分享使用... ...
  • 在 C# 中,IConfiguration 是一個介面,用於在應用程式中管理配置數據。它是 .NET Core(現在稱為 .NET 5+)和 ASP.NET Core 的一部分,用於輕鬆地讀取和使用配置信息,例如資料庫連接字元串、API密鑰、日誌設置等。 IConfiguration 介面是依賴註入 ...
  • 在C# WebAPI中,參數是用於接收和處理HTTP請求中傳遞的數據的方式。WebAPI支持不同類型的參數,包括路由參數、查詢字元串參數、請求體參數和標頭參數。以下是一些常用的WebAPI參數類型: 路由參數(Route Parameters): 路由參數從URL的路徑中提取值。在WebAPI中,通 ...
  • 調用方法體 public void OpenBrowser() { string url = "http://localhost:8055/api"; bool openRes = OpenBrowserHelper.OpenChromeBrowserUrl(url); if (!openRes) ...
  • # Unity UGUI的PhysicsRaycaster (物理射線檢測)組件的介紹及使用 ## 1. 什麼是PhysicsRaycaster組件? PhysicsRaycaster是Unity UGUI中的一個組件,用於在UI元素上進行物理射線檢測。它可以檢測滑鼠或觸摸事件是否發生在UI元素上, ...
  • zTree樹官網:https://www.treejs.cn/v3/main.php#_zTreeInfo 首先來到首頁點擊右上角下載 可以選擇使用Git拉取也可以下載ZIP壓縮包,兩者選其一即可 下載打開文件夾以後是下麵這些文件 然後將這些文件放你所使用的入項目當中,如下圖 將文件放入項目當中以後 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...