性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

痞子衡
認(rèn)證:普通會員
作者動態(tài)
有時候MCU片內(nèi)合封Flash就是個黑盒子!
3天前
有人說高性能MCU片內(nèi)合封Flash不可靠?
5天前
竟有可以從AP直接加載程序啟動的MCU!
2星期前
初識恩智浦MCU里最“浪漫”外設(shè)XBAR
04-15 09:24
MCU偵探社:更換大容量啟動Flash,二級App異常了?
03-21 14:13

有人說高性能MCU片內(nèi)合封Flash不可靠?

大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT1024/1064片內(nèi)4MB Flash的SFDP表易丟失導(dǎo)致的燒錄異常。

我們知道 i.MXRT 系列本身并沒有片內(nèi)非易失性存儲器作為啟動設(shè)備,所以硬件工程師第一件事便是為 i.MXRT 搭配一顆外置代碼存儲器,而串行 NOR Flash 往往是代碼存儲器的第一選擇。既然這是剛需,為何不直接合封一顆經(jīng)典的 NOR Flash 進(jìn)芯片內(nèi)部呢?是的,恩智浦也考慮到了這一點,這便有了 i.MXRT1024/1064 這兩顆內(nèi)置 Flash 的型號(至于沒有給 i.MXRT 全系列強制標(biāo)配 NOR Flash,也跟代碼存儲器類型以及容量、速度需求不一有關(guān))。

近期有一個 RT1064 客戶反饋,在給產(chǎn)品做量產(chǎn)時出現(xiàn)芯片無法正常使用 J-Link 或者恩智浦官方下載工具下載程序到片內(nèi) Flash 的現(xiàn)象,恰好痞子衡手頭有一塊官方 RT1064-EVK 板卡也無法燒錄程序,經(jīng)過痞子衡的一番摸索,發(fā)現(xiàn)片內(nèi) Flash 竟然沒有有效的 SFDP 表,這是怎么回事?且聽痞子衡細(xì)說:

一、RT片內(nèi)Flash簡介

1.1 W25Q32JV

芯片合封技術(shù)實際上并不是什么新鮮事,對于 RT1024/1064 來說,就是將 RT1020/RT1060 的 Die 與選定的一顆 NOR Flash Die 封裝在一起,RT 與 Flash 之間的信號連接在片內(nèi)完成。

那么 RT1024/1064 內(nèi)置的 NOR Flash 到底來自哪家供應(yīng)商呢?這可以借助 \SDK_2_16_000_EVK-MIMXRT1064\boards\evkmimxrt1064\driver_examples\flexspi\nor_internal\polling_transfer 例程簡單修改一下代碼,讀回 Flash 的 JEDEC ID 得知是來自全球排名第一的 NOR Flash 廠商 Winbond 的 W25Q32JV-IQ/JQ(4MB, 四線, 133MHz SDR,3.3V)。

1.2 RT1024片內(nèi)連接

在 RT1024 上使用了如下 PAD 連接到了片內(nèi) Flash,這些 PAD 同時也是外部引腳。(注意其中 GPIO_SD_B1_05 并沒有被 BootROM 初始化,因為片內(nèi) Flash 不能直接高速啟動)

1.3 RT1064片內(nèi)連接

在 RT1064 上使用了如下 PAD 連接到了片內(nèi) Flash,這些 PAD 僅是內(nèi)部引腳,沒有引到外部。(不過在 BGA 225 封裝的 RT1060X 型號上被引出了)

二、SFDP對于燒錄工具的重要性

JESD216 是一個關(guān)于串行 NOR Flash 的標(biāo)準(zhǔn),它“規(guī)范”了 NOR Flash 廠商的產(chǎn)品。這里的“規(guī)范”兩字加了引號,因為這個標(biāo)準(zhǔn)比較有意思,并不是先有標(biāo)準(zhǔn),再有 Flash 產(chǎn)品,而是先有各大廠商的 Flash 產(chǎn)品出來,然后 JESD216 才開始總結(jié)這些不同廠商的產(chǎn)品特性,企圖形成一個看起來比較統(tǒng)一的規(guī)范。

目前主流 NOR Flash 廠商產(chǎn)品都是支持 JESD216 標(biāo)準(zhǔn)的,這體現(xiàn)在如下 Read SFDP (0x5A) 命令時序統(tǒng)一上。JESD216 標(biāo)準(zhǔn)定義了一個 256 字節(jié)大小的 SFDP 表,這個表收納了該 Flash 的幾乎全部特性(速度、容量、寄存器分布、命令集等等),對于軟件驅(qū)動開發(fā)者來說尤其重要。

SFDP 表結(jié)構(gòu)大概是這樣,一開始是 signature 以及 version,然后是 Flash 各種屬性信息。看到這你就能明白為啥 SFDP 對于燒錄工具的重要性了,燒錄工具依賴底層的 Flashloader,而 Flashloader 一般設(shè)計上是追求通用的,所以其會先獲取 Flash SFDP 表進(jìn)行解析得到 Flash 全部信息,然后根據(jù)這些信息加載合適的軟件驅(qū)動去讀寫擦 Flash。因此如果得不到正確的 SFDP 表,那么依賴通用 Flashloader 的燒錄工具便無法正常工作。J-Link 以及恩智浦官方燒錄工具都是基于通用 Flashloader 思想設(shè)計的。

三、Winbond NOR Flash的SFDP操作

翻開以 W25Q32JV 為代表的 Winbond NOR Flash 數(shù)據(jù)手冊,我們從其模塊框圖可以得知 Flash 內(nèi)部存儲顆粒由三種類型組成, 地址范圍 0x000000 - 0x3FFFFF 的 Memory Block,地址范圍 0x000000 - 0x0000FF 的 SFDP,地址范圍 0x001000 - 0x0030FF 的 Security Registers。對于 Memory Block 的讀寫擦操作我們再熟悉不過了,那后兩種類型該用什么命令操作呢?

繼續(xù)查看數(shù)據(jù)手冊,找到了如下關(guān)于 Security Registers 的專用讀寫擦命令時序。上一節(jié)介紹了 Read SFDP 命令,似乎 SFDP 這個地址空間僅支持讀操作,那么 SFDP 數(shù)據(jù)是如何在 Flash 出廠時被寫入的呢?到底是直接固化(隨芯片 TO)?還是 OTP 一次性專用后門命令擦寫的?帶著這個疑惑,痞子衡咨詢了 Winbond 技術(shù)人員,他們告知其實 Security Registers 擦寫命令可以同樣擦寫 SFDP 空間。

即 Security Registers 讀寫擦命令時序里地址參數(shù) A15-12 設(shè) 4'b0000 時,實際操作得就是 SFDP 空間(雖然手冊里沒有明說這一點)。基于這個消息,痞子衡找了一個正常的 RT1064-EVK 板卡讀出其有效的 SFDP 表數(shù)據(jù),然后將該 SFDP 表寫入異常的 RT1064-EVK 板卡,這時候下載工具就能夠正常燒錄了。所以 RT1024/RT1064 芯片發(fā)生這種異常,要么是出廠漏燒了 SFDP 表,要么是 SFDP 被用戶誤擦除過。

至此,i.MXRT1024/1064片內(nèi)4MB Flash的SFDP表易丟失導(dǎo)致的燒錄異常痞子衡便介紹完畢了,掌聲在哪里~~~

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 3
關(guān)注 41
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧