|
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT系列FlexSPI驅(qū)動(dòng)Flash頁(yè)編程執(zhí)行時(shí)間。7 f7 G" R/ z9 I# b A
痞子衡之前寫過一篇文章 《串行NOR Flash的頁(yè)編程模式對(duì)于量產(chǎn)效率的影響》,簡(jiǎn)要分析了 NOR Flash 的 Page Program 命令不同模式對(duì)于整體量產(chǎn)時(shí)間的影響,文章僅從理論計(jì)算角度做了分析,假定了 Flash 中所有 Page 擦寫表現(xiàn)都是一致的,但是每個(gè) Page 的表現(xiàn)真的是完全一致嗎?今天我們從一個(gè)客戶問題出發(fā)來探討下這個(gè)話題:
0 e8 k J: P2 R0 k! ^一、引入客戶問題最近有一個(gè) i.MXRT1170 客戶反饋,他們的應(yīng)用程序里 IAP 功能代碼對(duì)于 Flash 擦寫表現(xiàn)不穩(wěn)定。他們的 IAP 代碼就是移植的 \SDK_2.10.0_MIMXRT1170-EVK\boards\evkmimxrt1170\driver_examples\flexspi2 N u/ Y' q3 ^
or\polling_transfer 例程,F(xiàn)lash 選用得跟官方 EVK 上一樣的型號(hào) IS25WP128-JBLE,測(cè)試代碼會(huì)把整個(gè) Flash 的 16MB 循環(huán)擦除寫入,反復(fù)進(jìn)行測(cè)試,在測(cè)試過程中發(fā)現(xiàn)的部分區(qū)域表現(xiàn)速度較慢,這個(gè)慢的定義是在部分 256 字節(jié)(一個(gè) Page)寫入時(shí),寫入 API 返回時(shí)間較長(zhǎng)(因?yàn)槭禽喸兡J剑,但是返回狀態(tài)是正確的。
; @- ?/ u6 v) i g' A由于客戶并沒有進(jìn)一步給出 Page 寫入快慢時(shí)間分別是多少,痞子衡只能先盲猜。既然寫入 API 返回狀態(tài)是正確的,那說明 FlexSPI 驅(qū)動(dòng)是能正常工作的,先排除板級(jí)硬件設(shè)計(jì)問題。那么只剩下兩種可能:一、FlexSPI 軟件驅(qū)動(dòng)執(zhí)行穩(wěn)定性問題;二、Flash 本身 Page 表現(xiàn)一致性問題。這兩個(gè)問題都可以通過觀察統(tǒng)計(jì)全部 Page 的寫入時(shí)間來進(jìn)一步確認(rèn)。對(duì)于第二個(gè)可能性,從 Flash 手冊(cè)里我們可以得知 Page 寫入命令的等待時(shí)間典型值是 0.2ms,最大值是 0.8ms,但這個(gè)表述并沒有明確這是針對(duì)不同 Flash 芯片而言,還是針對(duì)同一 Flash 內(nèi)不同 Page 而言。 |
|