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