問題描述:某STM32客戶反饋, 當(dāng)STM32F407V芯片頻繁的正常通斷電的時候,F(xiàn)LASH 會被非法改寫,出現(xiàn)各種各樣的異常(整片被擦除、中斷向量表被改寫、寫保護(hù)被清除等等)。
經(jīng)過與跟客戶溝通了解到 :
?他們是延續(xù)之前的項(xiàng)目,進(jìn)行的一些軟硬件簡單修改。之前的項(xiàng)目沒有出現(xiàn)過類似的問題。
?確認(rèn)通斷電的時間是足夠,即斷電后所有的VDD都回到0;上電的時序也正常。
?原理圖參考了ST相關(guān)開發(fā)板的參考設(shè)計(jì)。
?測量工作時的電壓,除了發(fā)覺上電時會有一些抖動外,其它一切正常。嘗試讓他們改善上電電路,去掉這一抖動,再次實(shí)驗(yàn),仍然出現(xiàn)類似的問題。
到這里似乎跟硬件沒關(guān)聯(lián)了, 接著對客戶代碼進(jìn)行刪減又做了如下實(shí)驗(yàn):
1,去掉APP 部分代碼,僅僅留下IAP代碼。做相同的實(shí)驗(yàn),問題再現(xiàn)。
2,進(jìn)一步刪減程序,去掉程序中所有跟flash以及OPTION BYTE 相關(guān)的部分,做相同的
實(shí)驗(yàn),問題依舊。
3,沒招,再刪,最后僅僅留下下面程序:
客戶反應(yīng)只要調(diào)用了delay_init函數(shù)就會出問題,不調(diào)用就不會出問題(僅僅做了一天的實(shí)驗(yàn))。到這里似乎跟軟件有關(guān)系了,我們進(jìn)一步分析發(fā)現(xiàn)他們改寫了我們的systick的config函數(shù),那么我就做下一個實(shí)驗(yàn)。
1,改為標(biāo)準(zhǔn)庫中的systick例程,去掉寫保護(hù),加一個GPIO定時翻轉(zhuǎn)程序。同時在燒錄之后,加上寫保護(hù),做相同的實(shí)驗(yàn),問題再現(xiàn)。
2,改為標(biāo)準(zhǔn)庫中的systick例程,去掉寫保護(hù),加一個GPIO定時翻轉(zhuǎn)。同時在燒錄之后,加上寫保護(hù),做相同的實(shí)驗(yàn),問題還是再現(xiàn)。
3,到這里我們有點(diǎn)懷疑是芯片真的有損傷了。我們又用cubemx生成了一個GPIO翻轉(zhuǎn)和systick的延時,做相同的實(shí)驗(yàn),問題照舊。
4,到此,我們一方面請芯片設(shè)計(jì)人員做進(jìn)一步確認(rèn),看看芯片是否真的壞了。同時,我們抱著懷疑一切的態(tài)度,請客戶的硬件工程師再次確認(rèn)他們的硬件和原理圖的一致性,我們懷疑他們的硬件是否有裝錯的元器件。主要集中在MCU周邊。最后他們的工程師反饋,STM32的PDR_ON腳,板子上裝的元器件跟原理圖不一致。他們把R47和R48都裝了,那么相當(dāng)于在PDR_ON上是一個0.6v的電壓,也就是關(guān)斷了MCU內(nèi)部復(fù)位。
真是山窮水盡疑無路,柳暗花明又一村,看來問題應(yīng)該跟內(nèi)部復(fù)位有關(guān)。
查看STM32F407數(shù)據(jù)手冊,可以看到相關(guān)信息。
從上面規(guī)格書來看,STM32F407V的內(nèi)部復(fù)位電路可以選擇性開啟或關(guān)閉,如果選擇關(guān)閉mcu內(nèi)部的復(fù)位電路,需要在外部接一個復(fù)位監(jiān)測電路保證VDD達(dá)到正常工作電壓之前一直使MCU處于復(fù)位狀態(tài)。而這里,客戶本意并不想關(guān)閉內(nèi)部復(fù)位,外部也沒有相應(yīng)的電源監(jiān)測復(fù)位電路。既然這樣,根據(jù)手冊描述,PDR_ON腳接到VDD即可。具體到這里,去掉R48這個1k歐姆的電阻。重做實(shí)驗(yàn)驗(yàn)證,異常消失。
結(jié)論
其實(shí)之前也碰到過另外西安客戶發(fā)生過頻繁上電不工作的情況。因他們是使用了舊的數(shù)據(jù)手冊,沒有把PDR_ON腳拉到VDD 所致。
對于ST MCU來說,這個PDR_ON引腳有的封裝是被引出來了,有的封裝沒有引出,如果沒有引出的是默認(rèn)使能內(nèi)部復(fù)位功能,如果引出的話,大家也要當(dāng)心有的型號是拉低使能內(nèi)部復(fù)位;有的是拉高使能內(nèi)部復(fù)位,設(shè)計(jì)和使用時注意這點(diǎn)。
-
FlaSh
+關(guān)注
關(guān)注
10文章
1642瀏覽量
148683 -
STM32
+關(guān)注
關(guān)注
2272文章
10924瀏覽量
357591
原文標(biāo)題:FLASH被異常改寫的問題分享
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論