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