|
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是i.MXRT上使能NOR Flash的Continuous read模式在軟復位后無法正常啟動問題的解決經(jīng)驗。4 K, B5 T% q; m2 K& W
先回顧上篇 《串行NOR Flash的Continuous read模式下軟復位后i.MXRT無法啟動問題解決方案之RESET#》,利用RESET#引腳復位功能是痞子衡找到的第一種解決方案,今天痞子衡繼續(xù)給大家介紹第二種解決方案。
) y g( \- ] s( a8 ~本系列會有多篇文章,每篇文章均從一個核心切入點出發(fā),給出一系列具體實現(xiàn)方案。本系列均以MIMXRT1170-EVK板為示例目標對象,板載Flash型號為芯成IS25WP128(其他i.MXRT芯片和Flash型號下實現(xiàn)流程也差不多,需查看對應(yīng)數(shù)據(jù)手冊)。一、解決思路我們知道無法啟動問題是由于主芯片發(fā)生軟復位但Flash仍處于Continuous read模式造成的,要解決這個問題無非如下三個角度,痞子衡會在后面具體實現(xiàn)方案里按這些角度全部搞一次(如果適用的話)。
) v3 h$ L1 f1 u: d) d一、ROM方面不做任何相關(guān)處理,但App在調(diào)用NVIC_SystemReset()做復位前將Flash先切回到Normal模式;二、App方面不做任何相關(guān)處理,對BootROM相關(guān)配置做一些調(diào)整,讓BootROM也能正常處理處于Continuous read模式的Flash;三、ROM和App聯(lián)合對Flash模式切換做一些特殊處理。二、核心切入點(借助Flash的軟復位命令功能)本文找的核心切入點是利用Flash的軟件復位命令。Flash的軟件復位時序有兩種:一種是JEDEC標準規(guī)定的(嚴格來說其實算硬件復位,但因為其需CS#,SCK,IO0三根信號線配合完成,因此痞子衡將其歸為軟件復位時序類);另一種是廠商定義的軟件復位命令(因為SOIC-8封裝的Flash沒有獨立RESET#引腳,因此廠商增加這個軟復位命令來代替缺失的獨立RESET#引腳功能)。
" s# G. s' }3 K. ~- x0 o2.1 JEDEC標準復位時序JEDEC協(xié)會規(guī)定了一種Flash復位時序,需要CS#,SCK,IO0三根信號線配合完成,時序如下,保持SCK電平不變(高/低均可),拉四次CS#信號,通過SI信號線輸出4'b0101(在CS#上升沿采樣),則Flash會進入復位狀態(tài)。 v# V( s1 F5 H6 s, @6 L
JEDEC標準復位功能并不是所有Flash都集成的,華邦、芯成主流Flash型號均不支持JEDEC標準復位,痞子衡知道的Adesto ATXP032系列Flash里有JEDEC標準復位。 |
|