0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32片內(nèi)FLASH被異常改寫的問題分享

茶話MCU ? 來源:未知 ? 作者:李倩 ? 2018-03-26 11:24 ? 次閱讀

STM32客戶反饋,當(dāng)STM32F407V芯片頻繁的正常通斷電的時候,F(xiàn)LASH 會被非法改寫,出現(xiàn)各種各樣的異常(整片被擦除、中斷向量表被改寫、寫保護被清除等等)。

經(jīng)過與跟客戶溝通了解到:

1、他們是延續(xù)之前的項目,進行的一些軟硬件簡單修改。之前的項目沒有出現(xiàn)過類似的問題。

2、確認通斷電的時間是足夠,即斷電后所有的VDD都回到0;上電的時序也正常。

3、原理圖參考了ST相關(guān)開發(fā)板的參考設(shè)計。

4、測量工作電壓,除了發(fā)覺上電時會有些許抖動外,其它一切正常。嘗試讓他們改善上電電路,去掉這一抖動。再次實驗,仍然出現(xiàn)類似的問題。

根據(jù)現(xiàn)象初步判斷,異常似乎跟硬件沒關(guān)聯(lián)了, 接著對客戶代碼進行刪減又做了如下實驗:

1,去掉APP 部分代碼,僅僅留下IAP代碼。做相同的實驗,問題再現(xiàn)。

2,進一步刪減程序,去掉程序中所有跟flash以及OPTION BYTE 相關(guān)的部分,做相同的實驗,問題依舊。

3,沒招,再刪代碼,或者屏蔽代碼。做基于不同STM32庫的代碼替換。問題始終依舊。

到此問題毫無進展,只好求助ST芯片設(shè)計人員做進一步確認,看看芯片是否真的壞了。同時,又請客戶的硬件工程師再次確認他們的硬件線路和原理圖的一致性,我們懷疑他們的硬件是否有裝錯的元器件,特別是MCU周邊。

后來客戶工程師反饋,STM32F407的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達到正常工作電壓之前一直使MCU處于復(fù)位狀態(tài)。而這里,客戶本意并不想關(guān)閉內(nèi)部復(fù)位,而且外部也沒有相應(yīng)的電源監(jiān)測復(fù)位電路。既然這樣,根據(jù)手冊描述,PDR_ON腳接到VDD即可。具體到這里,去掉R48這個1k歐姆的電阻。重做實驗反復(fù)驗證,異常消失。

對于STM32來說,這個PDR_ON引腳有的封裝是被引出來了,有的封裝沒有被引出。如果沒有引出的就默認使能內(nèi)部復(fù)位功能,如果引出的話,大家也要注意有的型號是拉低使能內(nèi)部復(fù)位,有的是拉高使能內(nèi)部復(fù)位,設(shè)計和使用時請注意這點。

類似小細節(jié),容易被忽視,原因在被忽視情況下去查找原因往往是件非常折騰、曲折而痛苦的事。這種情況對于工程師來說,也沒法完全避免,畢竟我們是人。所以平時多留意、多積累,遇到問題時保持冷靜分析、理性判斷尤為重要,不要動不動就懷疑芯片質(zhì)量問題而使開發(fā)調(diào)試停滯不前。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1635

    瀏覽量

    148043
  • STM32
    +關(guān)注

    關(guān)注

    2270

    文章

    10900

    瀏覽量

    356092

原文標(biāo)題:STM32片內(nèi)FLASH被異常改寫的問題分享

文章出處:【微信號:stmcu832,微信公眾號:茶話MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32上下電內(nèi)部flash改寫的原因?

    基于STM32F405系列一個64pin MCU,在使用過程中,整機掉電更換另一個部件,再上電后發(fā)現(xiàn)這個產(chǎn)品不工作了。發(fā)回廠家發(fā)現(xiàn)STM32內(nèi)部flash數(shù)據(jù)
    發(fā)表于 03-25 08:24

    STM32內(nèi)FLASH操作說明

    STM32內(nèi)FLASH操作說明
    發(fā)表于 07-08 09:51

    STM32內(nèi)FLASH操作步驟

    STM32內(nèi)FLASH可分為哪幾類?如何去使用STM32
    發(fā)表于 11-01 06:36

    怎樣去操作STM32內(nèi)FLASH

    STM32內(nèi)FLASH分成哪幾部分呢?怎樣去操作STM32
    發(fā)表于 11-01 07:39

    STM32內(nèi)FLASH有何功能

    怎么去操作STM32的FLSAH呢?STM32內(nèi)FLASH有何功能?
    發(fā)表于 11-01 06:35

    STM32內(nèi)FLASH該如何去使用呢

    STM32內(nèi)FLASH可分成哪幾部分?STM32FLASH共有幾個鍵值呢?
    發(fā)表于 11-02 07:08

    STM32內(nèi)FLASH有何功能

    STM32內(nèi)FLASH有何功能?怎樣進行FLASH的擦除編程工作呢?
    發(fā)表于 11-02 08:04

    介紹一下STM32內(nèi)FLASH

    STM32內(nèi)FLASH可分為哪幾類?STM32內(nèi)
    發(fā)表于 11-03 07:57

    深入探討FLASH非法改寫的問題

    問題描述: 某STM32客戶反饋, 當(dāng)STM32F407V芯片頻繁的正常通斷電的時候,FLASH 會被非法改寫,出現(xiàn)各種各樣的異常(整片
    的頭像 發(fā)表于 09-29 11:51 ?6554次閱讀
    深入探討<b class='flag-5'>FLASH</b><b class='flag-5'>被</b>非法<b class='flag-5'>改寫</b>的問題

    STM32F0xx_FLASH編程(內(nèi)) 配置詳細過程

    STM32F0xx_FLASH編程(內(nèi))配置詳細過程
    的頭像 發(fā)表于 04-07 14:21 ?3218次閱讀
    <b class='flag-5'>STM32F0xx_FLASH</b>編程(<b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b>) 配置詳細過程

    STM32F1_ 內(nèi)FLASH編程

    STM32F1_內(nèi)FLASH編程
    的頭像 發(fā)表于 04-08 10:28 ?3906次閱讀
    <b class='flag-5'>STM32</b>F1_ <b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b><b class='flag-5'>FLASH</b>編程

    FLASH異常改寫

    FLASH異常改寫(嵌入式開發(fā)筆試題目)-某客戶反饋, 當(dāng)MCU 頻繁的正常通斷電的時候。FLASH
    發(fā)表于 07-30 11:04 ?29次下載
    <b class='flag-5'>FLASH</b><b class='flag-5'>被</b><b class='flag-5'>異常</b><b class='flag-5'>改寫</b>

    STM32內(nèi)FLASH燒寫錯誤導(dǎo)致ST-li

    STM32內(nèi)FLASH燒寫錯誤導(dǎo)致ST-li
    發(fā)表于 12-02 18:06 ?7次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b><b class='flag-5'>FLASH</b>燒寫錯誤導(dǎo)致ST-li

    STM32F1 使用easyflash操作內(nèi)flash

    STM32F1 使用easyflash操作內(nèi)flash
    發(fā)表于 12-09 10:06 ?15次下載
    <b class='flag-5'>STM32</b>F1 使用easyflash操作<b class='flag-5'>片</b><b class='flag-5'>內(nèi)</b><b class='flag-5'>flash</b>

    MCU 頻繁的正常通斷電的時候,FLASH異常改寫

    問題描述: 某客戶反饋, 當(dāng) MCU 頻繁的正常通斷電的時候。FLASH 異常改寫,出現(xiàn)各種各樣的異常(整片別擦除、中斷向量表
    發(fā)表于 02-11 15:37 ?14次下載
    MCU 頻繁的正常通斷電的時候,<b class='flag-5'>FLASH</b><b class='flag-5'>被</b><b class='flag-5'>異常</b><b class='flag-5'>改寫</b>