為什么單片機接通電源,要加入一定的延遲時間?

80C51單片機的上電復位POR(Pmver On Reset)實質上就是上電延時復位,也就是在上電延時期間把單片機鎖定在復位狀態上。

為什么在每次單片機接通電源時,都需要加入一定的延遲時間呢?

分析如下。

01

上電復位時序


在單片機及其應用電路每次上電的過程中,由于電源同路中通常存在一些容量大小不等的濾波電容,使得單片機芯片在其電源引腳VCC和VSS之間所感受到的電源電壓值VDD,是從低到高逐漸上升的。該過程所持續的時間一般為1~100ms(記作 tsddrise)。上電延時taddrise的定義是電源電壓從lO%VDD上升到90%VDD所需的時間,如圖1所示。

為什么單片機接通電源,要加入一定的延遲時間?的圖1

在單片機電源電壓上升到適合內部振蕩電路運行的范圍并且穩定下來之后,時鐘振蕩器開始了啟動過程(具體包括偏置、起振、鎖定和穩定幾個過程)。該過程所持續的時間一般為1~50 ms(記作tOSC)。起振延時tOSC的定義是時鐘振蕩器輸出信號的高電平達到Vih1所需的時間。從圖1所示的實際測量圖中也可以看得很清楚。這里的 Vih1是單片機電氣特性中的一個普通參數,代表XTALl和RST引腳上的輸入邏輯高電平。例如,對于常見的單片機型號AT89C5l和 AT89S5l,廠家給出的Vih1值為0.7VDD~VDD 0.5V。


從理論上講,單片機每次上電復位所需的很短延時應該不小于treset。這里,treset等于上電延時taddrise與起振延時tOSC之和,如圖1所示。從實際上講,延遲一個treset往往還不夠,不能夠保障單片機有--一個良好的工作開端。

在單片機每次初始加電時,首先投入工作的功能部件是復位電路。復位電路把單片機鎖定在復位狀態上并且維持一個延時(記作TRST),以便給予電源電壓從上升到穩定的一個等待時間;在電源電壓穩定之后,再插入一個延時,給予時鐘振蕩器從起振到穩定的一個等待時間;在單片機開始進入運行狀態之前,還要至少推遲 2個機器周期的延時,如圖2所示。


為什么單片機接通電源,要加入一定的延遲時間?的圖2

02

三種上電復位電路


上述一系列的延時,都是利用在單片機RST引腳上外接一個RC支路的充電時間而形成的。典型復位電路如圖3(a)所示,其中的阻容值是原始手冊中提供的。在經歷了一系列延時之后,單片機才開始按照時鐘源的工作頻率,進入到正常的程序運行狀態。從圖2所示的實測曲線中可以同時看到4條曲線:VDD、Vrst、XTAL2和ALE。在電源電壓以及振蕩器輸出信號穩定之后,又等待了一段較長的延時才釋放RST信號,使得CPU脫離復位鎖定狀態;而RST信號一旦被釋放,立刻在ALE引腳上就可檢測到持續的脈沖信號。


為什么單片機接通電源,要加入一定的延遲時間?的圖3

由于標準80C51的復位邏輯相對簡單,復位源只有RST一個(相對新型單片機來說,復位源比較單一),因此各種原因所導致的復位活動以及復位狀態的進入,都要依靠在外接引腳RST上施加一定時間寬度的高電平信號來實現。

標準80C5l不僅復位源比較單一,而且還沒有設計內部上電復位的延時功能,因此必須借助于外接阻容支路來增加延時環節,如圖3(a)所示。其實,外接電阻R還是可以省略的,理由是一些CMOS單片機芯片內部存在一個現成的下拉電阻Rrst。例如,AT89系列的Rrst阻值約為50~200kΩ;P89V51Rx2系列的Rrst阻值約為40~225kΩ,如圖4所示。因此,在圖3(a)基礎上,上電復位延時電路還可以精簡為圖3(b)所示的簡化電路(其中電容C的容量也相應減小了)。

在每次單片機斷電之后,須使延時電容C上的電荷立刻放掉,以便為隨后可能在很短的時間內再次加電作好準備。否則,在斷電后C還沒有充分放電的情況下,如果很快又加電,那么RC支路就失去了它應有的延遲功能。因此,在圖3(a)的基礎上添加一個放電二極管D,上電復位延時電路就變成了如圖3(c)所示的改進電路。


也就是說,只有RC支路的充電過程對電路是有用的,放電過程不僅無用,而且會帶來潛在的危害。于是附加一個放電二極管D來大力縮短放電持續時間,以便消除隱患。二極管D只有在單片機斷電的瞬間(即VCC趨近于0V,可以看作VCC對地短路)正向導通,平時一直處于反偏截止狀態。

  為什么單片機接通電源,要加入一定的延遲時間?的圖4

03

兩種上電復位失敗的案例


假如上電復位延遲時間不夠或者根本沒有延時過程,則單片機可能面臨以下2種危險,從而導致CPU開始執行程序時沒有一個良好的初始化,甚至陷入錯亂狀態。

  • 1)在時鐘振蕩器輸出的時鐘脈沖還沒有穩定,甚至還沒有起振之前,就因釋放RST信號的鎖定狀態而放縱CPU開始執行程序。這將會導致程序計數器PC中首次抓取的地址碼很可能是0000H之外的隨機值,進而引導CPU陷入混亂狀態。參考圖5所示的實測信號曲線。


為什么單片機接通電源,要加入一定的延遲時間?的圖5

  • 2)在電源電壓還沒有上升到合適范圍之前(自然也是時鐘尚未穩定之前),就釋放RST信號的鎖定狀態,將會使單片機永遠感受不到復位信號、經歷不到復位過程、包含PC在內的各個SFR內容沒有被初始化而保留了隨機值,從而導致CPU從一個隨機地址開始執行程序,進而也陷入混亂狀態。參考圖6所示的實測信號曲線。


為什么單片機接通電源,要加入一定的延遲時間?的圖6

圖6 在電源和時鐘均未穩定前釋放RST的情況

*本文系網絡轉載,版權歸原作者所有,如有侵權請聯系刪除
登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP