新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16C5X的復位電路

        PIC16C5X的復位電路

        作者: 時間:2016-10-15 來源:網絡 收藏

        可以由系統上電,把MCLR輸入拉為低電平,或定時器溢出而產生。振蕩啟動定時器OST作用或MCLR輸入為低電平,單片機將保持復位狀態,復位時單片機處于以下狀態:

        本文引用地址:http://www.104case.com/article/201610/307614.htm

        · 振蕩器啟動或工作,包括電源上升啟動或睡眠喚醒啟動。

        · I/O控制寄存器設定為全“1”,使所有I/O引腳(PA0-PA3、PB0-PB7、PC0-PC7)處于高阻狀態。

        · 程序計數器PC設為全“1”,對于PIC16C54/55為1FFH,對于PIC16C56為3FFH,對于PIC16C57為7FFH。

        · OPTION寄存器設為全“1”。

        · 定時器WDT及其分頻器清“0”。

        · 狀態寄存器f3的程序頁面選擇位最高位(位3)清“0”。

        · 采用RC振蕩器時,OSC2的CLKOUT信號保持為低電平。

        [1]. 內部上電

        內部上電是一個專門的電路,俗稱POR(power on reset),片內有POR電路,大多數情況下上電提供片內復位。一般不需要在MCLR端加上復位電路,只需將其接到VDD上即可。

        1.jpg

        上電復位電路是和振蕩器啟動定時器電路相結合而工作的。上電復位電路由上電檢測電路、三輸入或門和復位鎖存器組成。振蕩啟動定時器OST則是由片內RC振蕩器、8位異步脈沖計時器、復位鎖存器和相應的門電路組成。復位電路簡圖參見圖1所示。

        上電時,上電檢測電路對電源電壓的上升過程進行檢測,當電壓到達一定閾值時的時候,上電檢測電路輸出上電復位信號(POR),上電復位信號會對8位異步脈沖計數器清“0”,同時對復位鎖存器置“1”。復位鎖存器置“1”則從Q(非)輸出單片機的復位信號,讓芯片處于RESET狀態,8位異步脈沖計數器清 “0”,使OST也處于復位狀態,從“0”開始計數,在MCLR端到達高電平并打開片內RC振蕩器和8位異步脈沖計數器之間的“與”門時,RC振蕩信號通過“與”門到8位異步脈沖計數器,啟動定時器計時,計時18ms后就會產生超時信號去對復位鎖存器清“0”,復位鎖存器的Q(非)輸出“1”,從而完成復位操作。

        保證上電復位正確的工作條件是:VDD的上升速率不低于0.05V/ms,且要從0V開始上升。在低頻振蕩器要求長于18ms時間來啟動及穩定,片內上電復位電路不能滿足要求,此時使用外接RC電路以滿足較長時間的上電過程。

        [2]. 外部上電復位電路

        對于從啟動到穩定的時間大于18ms的低頻振蕩器,單片機需要用外接的上電復位電路來延長復位時間,以保證正確復位。一般外接的上電復位電路采用RC電路,其結構如圖2所示。

        2.jpg

        當VDD上電斜率太小或使用低頻振蕩時器時,需要較長的啟動時間,需使用外部上電復位電路,圖2中的D是在VDD掉電是迅速地將C上的電能放掉。

        要實現正確復位,要求VDD到達最高電平后開始計算,MCLR到達高電平的時間加上啟動定時器OST的計數滿18ms時間應大于低頻振蕩器從啟動到穩定所需要的時間。由于OST的周期是18ms,它是固定不能改變的,因此在VDD到達高電平后,MCLR到達高電平的時間長短會影響復位過程。利用外接RC電路就可延長MCLR到達高電平的時間,從而保證復位過程的正確。圖2中,VDD達到高電平后通過R對C充電,在此期間,使MCLR有較長低電平時間。

        二極管D使電容在VDD掉電時快速放電,MCLR引線最大漏電流約為5uA,R取值應小于40kΩ,使在其上的壓降小于0.2V。否則漏電流在R上的壓降會使MCLR上的高電平下降,在MCLR端串聯電阻是限流電阻,用于限制放電時從外部電容C流入到MCLR端的電流,以防止損壞單片機。R2一般取值在100Ω-1kΩ之間即可。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宣汉县| 阿合奇县| 虎林市| 泸西县| 泰州市| 青海省| 临高县| 青田县| 师宗县| 化德县| 冷水江市| 万山特区| 方城县| 通山县| 扶绥县| 四会市| 奉节县| 象州县| 邹平县| 开封市| 简阳市| 潢川县| 桦南县| 游戏| 镇雄县| 尼木县| 中牟县| 明水县| 河北省| 电白县| 梅河口市| 拜城县| 竹溪县| 南木林县| 大竹县| 左云县| 威海市| 靖西县| 白银市| 金湖县| 汝阳县|