色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FDCB1/2 差異問題怎么解決

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2022-11-03 09:22 ? 次閱讀

對于以i.MX RT 這類沒有內部NVM (Non-Volatile Memory) 的 MCU 為主控的項目來說,為其選配一顆 NVM 作為代碼存儲器是頭等大事,而串行 NOR Flash 是最常見的 NVM 選擇。

串行 NOR Flash 要能被i.MX RT正常啟動,其固定偏移處(0x0/0x400)一般要求放置一個配套啟動頭(FDCB),系統上電 BootROM 會用 30MHz 1bit SPI SDR 時序模式去讀取這個啟動頭來獲取當前 Flash 的相關屬性(主要是用戶設定的時序模式)從而進一步配置片內 FlexSPI 模塊以指定的時序模式去啟動 Flash 里的固件應用程序。

到了項目量產階段,尤其是出貨量大的消費類產品,我們往往不會僅選擇某一 Flash 廠商產品(價格因素,供貨因素等),這時候就不得不考慮一個問題,如果選擇的是特性不完全一致的兩顆 Flash,那么下載進 Flash 的固件應用程序能不能保持一樣(其實主要就是下圖中的 FDCB1/2 差異問題怎么解決)?今天就跟大家討論一下這個問題:

7674f792-5b13-11ed-a3b6-dac502259ad0.png

注:本文主要針對的是普通四線 QuadSPI / 八線 OctalSPI 類型的串行 NOR Flash。

一、影響多Flash型號量產的因素

我們知道導致下載進不同 Flash 里的固件程序,有差異的主要原因是 i.MX RT 配套啟動頭(FDCB),這個 FDCB 描述了 Flash 的基本信息(Device 容量、速度、讀模式命令等),Flash 屬性不同,FDCB 也會跟著變化,所以我們先來介紹下有哪些可能的因素會影響 FDCB 內容:

1.1 QE bit位置

首先是 QE bit 使能操作的差異。

很多 Flash 出廠時 QE bit 并沒有被使能,量產過程中燒錄器有時候也未必去使能 QE bit(一線模式編程相比 Multi I/O 模式編程對量產時間影響不大),這種情況在 FDCB 里需要加上使能 QE bit 操作,而 QE bit 在 Flash 內部寄存器里的定義以及寫入命令有好幾種,詳見舊文《影響下載/啟動的常見因素之QE bit》。

1.2 READ命令中Dummy Cycles數

使能 QE bit 是為了能讓 Flash 工作在 Multi I/O Fast READ 模式,但這時候 READ 時序里會有 Dummy Cycles 周期(即 Flash 接收到主設備發來的讀命令從而準備相應數據的反應時間)。

Flash 的不同工作頻率對應的最小 Dummy Cycles 不同,不同廠商關于 Dummy Cycles 數要求也不同,此外如果 Flash 里的默認 Dummy Cycle 不是對應最高工作頻率的話,要想讓 Flash 工作在最高頻率還需要額外設置 Flash 相應寄存器來修改 Dummy Cycle(這里的設置方法也不同),這些 Dummy Cycle 設定都要體現在 FDCB 里,詳見舊文《調整Flash工作頻率也需同步設Dummy Cycle》。

1.3 地址3B/4B模式切換

對于不高于 16MB 容量的 Flash,在 READ 時序里一般使用三字節地址就行了,但是超過 16MB 的 Flash ,對其訪問就會涉及三字節地址以及四字節地址選擇問題,因此避不可免地要考慮 Flash 地址模式切換問題,不同廠商的地址模式設計以及切換操作也略有不同,FDCB 里同樣要考慮這些,詳見舊文 《16MB以上NOR Flash使用注意》。

1.4 QPI/OPI模式進入

如果為了追求極限執行性能,一般還會考慮將 Flash 從 SPI 模式切換到 QPI/OPI 模式,這里不同廠商的模式切換設計也可能略有不同,FDCB 也要負責這個工作,詳見舊文《使能串行NOR Flash的QPI/OPI模式》。

1.5 DTR/Continuous read性能模式

當然還有一些其它關于 Flash 性能模式考量,比如 DTR 模式、Continuous read 模式,要想使能這些模式也都需要在 FDCB 里做文章,詳見舊文 《使能串行NOR Flash的DTR模式》、《使能串行NOR Flash的Continuous read模式》。

二、多Flash型號量產的解決方案

上一節介紹了有很多因素會導致 FDCB 不同,這些因素都是多 Flash 型號量產路上的攔路虎,我們有什么方法能規避這些因素差異帶來的問題呢?主要有如下兩個方案:

2.1 BootROM自識別方案

第一個方案是利用 i.MXRT 芯片 BootROM 里的功能,詳見舊文 《自識別特性(Auto Probe)可以無需FDCB也能從NOR Flash啟動》。這個特性可以讓我們不用提供 FDCB,芯片也能正常從 Flash 里啟動固件應用程序,這樣也就自然不存在量產過程中不同 Flash 里固件差異問題。但是這個方案也有幾個明顯的缺點:

缺點一:Auto Probe 特性在 i.MXRT1010/1020/1050 上不可用,僅在 i.MXRT1060/1170/500/600 上可以用。

缺點二:Auto Probe 特性對于不同 Flash 的支持(尤其是 OctalSPI Flash)可能需要通過燒寫 i.MXRT 芯片 OTP 來實現,這樣實際上是把 FDCB 差異轉化到 OTP 差異上了。

缺點三:Auto Probe 特性僅能處理基本的 FDCB 差異(比如 QE,比如 Dummy Cycle),但是一些性能模式相關的差異不能很好地處理,拓展性不足。

2.2 一線模式FDCB啟動+二級Configurer程序

第二個方案主要是為了解決方案一里的全部缺點,即使用通用的一線低速模式的 FDCB 啟動頭給 BootROM 去讀取啟動,然后再設計一個二級的 Configurer 程序(被 BootROM 啟動的代碼),在這個 Configurer 程序里去做 Flash 差異化的相關事情并將 FlexSPI 模塊配置到指定時序模式,最后再由這個 Configurer 程序去啟動固件應用程序。

7689adcc-5b13-11ed-a3b6-dac502259ad0.png

這里的Configurer 程序設計是關鍵,而其中最核心的是如何識別當前 Flash 型號,這里要感謝 JEDEC 組織,目前幾乎全部主流 Flash 都支持一線模式下 Read JEDEC 命令(0x9F),返回的 Manufacturer ID 就是每個 Flash 廠商向 JEDEC 組織申請的識別碼,然后 Memory Type 是各廠商自己定義的型號系列分類。Configurer 程序結合這兩個參數就可以識別當前 Flash 具體型號,底下就是做不同的代碼分支去處理不同的 Flash 配置即可。

76a3adee-5b13-11ed-a3b6-dac502259ad0.png

二級Configurer 程序說起來很簡單,其實具體設計起來還是有很多細節要考量的(比如 FlexSPI 多次配置中系統時鐘切換問題、應用程序跳轉等),因此痞子衡開源了這個項目(RT-MFB),并且會長期維護下去,希望將來能支持盡可能多的 Flash 型號。第一版是以 MIMXRT595-EVK 上的兩顆 Flash 為原型(IS25WP064A / MX25UW51345G)來做的。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 存儲器
    +關注

    關注

    38

    文章

    7522

    瀏覽量

    164104
  • 編程
    +關注

    關注

    88

    文章

    3634

    瀏覽量

    93873
  • 應用程序
    +關注

    關注

    37

    文章

    3287

    瀏覽量

    57793
收藏 人收藏

    評論

    相關推薦

    HP 8568B有2個信號輸入,輸入12之間的電平有差異

    5.7 dB以補償MLP損失。我有一個當前面板校準器將N型輸入2設置為-10.0 dBm時,如果校準器(50歐姆?)連接到輸入1(75歐姆),是否會有很大差異?我估計可能是+1.6 dB。這個顯示
    發表于 09-20 11:16

    AD7865AS-2和ad7865ASZ-2有什么差異

    的情況采集回來的數據有大概4倍的差異,請問是正常的,還是有什么地方需要注意的?以下數據為對某4個通道采樣后的量化數據(二者工作的狀態相同,工作電壓和硬件電路相同):AD7865AS-2 AD7865ASZ-2 81962049
    發表于 10-25 15:57

    Flash下Dummy Cycle設置方法的差異

    今天痞子衡給大家介紹的是同一廠商不同系列Flash型號下Dummy Cycle設置方法的差異。  上一篇文章 《在i.MXRT啟動頭FDCB里調整Flash工作頻率也需同步設Dummy Cycle
    發表于 12-13 06:29

    介紹i.MXRT啟動頭FDCB里的lookupTable

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT啟動頭FDCB里的lookupTable。一個MCU內部通常有很多外設模塊,這些外設模塊是各MCU廠商做差異化產...
    發表于 02-17 07:47

    SPI和I2C的差異是什么?

    SPI具有哪些特點?有哪些工作模式?SPI和I2C的差異是什么?
    發表于 02-17 06:15

    CS1256,1/2 VS使用手動測量模式嗎? 其與 BIM內短 有差異嗎?

    1. 1/2 VS用于內短進行失調校正,此時TMODE[7:6]需要配置成手動測量模式嗎?2. 1/2
    發表于 04-18 11:35

    NUCLEO-WL55JC1和NUCLEO-WL55JC2開發板有什么物理上的差異

    NUCLEO-WL55JC1和NUCLEO-WL55JC2開發板之間的物理差異是什么?
    發表于 12-15 07:07

    AD7655可以獲取A1、B1、A2、B2的采樣值,但是數值存在差異的原因?

    AD7655可以獲取A1、B1、A2、B2的采樣值,但是數值存在差異; 四個通道同時采集0V時,A1
    發表于 12-07 06:26

    單片機GD32F1系列與GD32F2系列型號差異化對比分析

    本文檔對比了GD32F1與GD32F2相關型號,介紹了其內部模塊之間的差異化,如DMA、ADC、GPIO、IIC等。
    發表于 08-28 17:27 ?10次下載

    STEP 7 Safety V17 指令--EV1oo2DI:帶有差異分析的 1oo2 評估

    該指令將對兩個單通道傳感器進行 1oo2 評估和差異分析。 如果輸入 IN1 和 IN2 的信號狀態均為 1 并且未存儲
    的頭像 發表于 06-25 16:23 ?5648次閱讀

    從頭開始認識i.MXRT啟動頭FDCB里的lookupTable

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是i.MXRT啟動頭FDCB里的lookupTable。一個MCU內部通常有很多外設模塊,這些外設模塊是各MCU廠商做差異化產...
    發表于 12-20 19:46 ?8次下載
    從頭開始認識i.MXRT啟動頭<b class='flag-5'>FDCB</b>里的lookupTable

    AN031 GD32F1系列和GD32F2系列差異

    AN031 GD32F1系列和GD32F2系列差異
    發表于 02-27 18:26 ?0次下載
    AN031 GD32F<b class='flag-5'>1</b>系列和GD32F<b class='flag-5'>2</b>系列<b class='flag-5'>差異</b>

    AD400/AD4004/AD4004/AD4008: 16-Bit, 2 MSPSP/1 MSPSP/500 kSPS, 精密, Psedo差異, SAR ADCs數據表 ADI

    電子發燒友網為你提供ADI(ADI)AD400/AD4004/AD4004/AD4008: 16-Bit, 2 MSPSP/1 MSPSP/500 kSPS, 精密, Psedo差異, SAR
    發表于 10-09 19:07
    AD400/AD4004/AD4004/AD4008: 16-Bit, <b class='flag-5'>2</b> MSPSP/<b class='flag-5'>1</b> MSPSP/500 kSPS, 精密, Psedo<b class='flag-5'>差異</b>, SAR ADCs數據表 ADI

    陶瓷電容溫度系數淺析:1類和2類電容有何差異?如何標識?

    陶瓷電容溫度系數淺析:1類和2類電容有何差異?如何標識?
    的頭像 發表于 12-08 17:30 ?1292次閱讀
    陶瓷電容溫度系數淺析:<b class='flag-5'>1</b>類和<b class='flag-5'>2</b>類電容有何<b class='flag-5'>差異</b>?如何標識?

    Python2與Python3的差異

    Python2與Python3是兩個不同的版本,它們在語法、功能和性能等方面存在一些差異。下面是對Python2和Python3的詳盡、詳實、細致的比較,分為以下幾個方面: 語法差異
    的頭像 發表于 11-23 16:48 ?1059次閱讀
    主站蜘蛛池模板: 国产SUV精品一区二区69| 乱码午夜-极品国产内射| 666永久视频在线| 亚洲精品视频区| 四虎影院2022| 人人干人人插| 国产精品18久久久久久欧美 | 67194con免费福和视频| 野花香HD免费高清版6高清版| 亚洲 日本 中文字幕 制服| 我在厨房摸岳的乳HD在线观看| 久久草这在线观看免费| JAVASCRIPTJAVA水多多| 亚洲VA欧美VA天堂V国产综合| 无人视频在线观看免费播放影院| 色综合 亚洲 自拍 欧洲| 入禽太深免费视频10| 伸进同桌奶罩里摸她胸作文| 快播官方网站| 国产精品毛片AV久久97| 国产精品久久婷婷五月色 | 女生扒开尿口| 久就热视频精品免费99| 老阿姨才是最有味的一区二区| 美国z0069| 欧美另类一区| 久久久亚洲国产精品主播| 国产精品96久久久久久AV网址| 大胸美女裸身色诱网站| 国产成人无码精品久久久影院 | 狠狠插综合| 大胆国模一区二区三区伊人 | 欧美人与动牲交A精品| 青青草原亚洲| 爽a中文字幕一区| 亚洲国产AV精品一区二区蜜芽| 亚洲中文字幕乱码熟女在线| 2019午夜福利757视频第12集| 亚洲精品一二三| 在线电影一区二区| 99久久麻豆AV色婷婷综合|