新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何防止單片機程序丟失

        如何防止單片機程序丟失

        作者: 時間:2016-11-18 來源:網絡 收藏
        一、改善電源
        盡量改善電源。這是老話了。并不是說單片機能工作就行,電源要設計好,加上104去耦電容改進電路布局等措施。二、使用電壓監測芯片
        二、使用帶電壓監測的復位芯片。
        防止上電/下電時,單片機電壓處于工作和不工作的臨界時,單片機自己胡來。上電后,電容從0V逐漸升到VCC;下電時,從VCC逐漸降到0V。不管轉電壓轉換的多快,總會有一段時間處于電壓不足的不穩定狀態,什么情況都可能發生。
        三、足電壓編程、慢速編程
        讓Flash/EEP存儲器在編程時充入足夠電荷。
        需要可靠性的場合盡量低速寫入,把工作加到芯片上限 (一搬5V芯片用5.5V,3V芯片到3.6V),能明顯提高數據可靠性.
        四、保護編程口
        保護編程的IO口,加些上拉或下拉電阻。如IAP、ISP、JTAG等。防止單片機復位之前的時間被處界雜波干擾,誤入編程狀態。
        例1:ATMEL的ISP口的SCK、MISO腳盡量做輸出使用。防止外圍器件對這些腳產生跳動電平。防止誤入ISP狀態。對JTAG口也要做同樣的保護。
        例2:STC單片機,盡量設置成P1.1P1.0為低電平時才可以編程。
        五、產品盡量禁止編程功能
        比如AVR單片機,設置JTAGEN=1 OCDEN=1 因為JTAG有改寫FALSH的能力。在產品階段用不著它,把它禁止。如果可能,還可以設置熔絲位,禁止ISP功能。但是你要考慮清楚,禁止ISP功能以后就只能通過并行方式改寫程序了。
        還有一些單片機有專門的引腳,控制編程允許。那么咱們可以讓它處于禁止編程的狀態。


        下面是我對使用MEGA16L的防丟程序措施。5V電壓8M晶振。
        1.使用帶電壓監測的706硬件看門狗。即保證可靠復位,又防止CPU低電壓工作。
        2.不使用IAP自編程。熔絲位BOOTRST=1。以前我是用過自編程,但是為了安全起見,還是把它禁止了吧。
        3.晶振選擇高幅度振蕩輸出. CHOPT=0 工作電流會增加1個多毫安,但是穩定多了。
        4.打開BOD BODEN=0 BODLEVEL=0 一旦VCC下降到觸發電平4.0v以下,MUC不工作;當VCC電平大于觸發電平后,重新開始工作。
        5.設置復位啟動時間稍長。SUT 1=1 SUT0=0 上電復位時讓CPU等待65個毫秒,使電源緩慢上升。
        6.禁止JTAG。JTAGEN=1 OCDEN=1 因為JTAG有改寫FALSH的能力。我在產品階段用不著它,還是把它禁止了吧。還節省1毫安的工作電流。
        最后的熔絲位變成了 C9 2F


        關鍵詞: 單片機程序丟

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 永新县| 嘉兴市| 麟游县| 张掖市| 阳谷县| 海原县| 威远县| 北京市| 全州县| 西盟| 泰安市| 依安县| 即墨市| 新龙县| 阆中市| 从江县| 九寨沟县| 无为县| 鞍山市| 大兴区| 深水埗区| 景洪市| 沂源县| 武川县| 治多县| 枣阳市| 景东| 新乡市| 额尔古纳市| 尚义县| 习水县| 台东市| 连江县| 岚皋县| 宣化县| 湘乡市| 西林县| 长宁县| 云龙县| 汉中市| 同仁县|