我最近在整理單片機的復(fù)位問題,很多文獻都過分的集中于外部復(fù)位,特意把內(nèi)部復(fù)位的東西整理一下,我參考了很多的飛思卡爾的文檔。我一直覺得飛思卡爾的文件系統(tǒng)和它的品質(zhì)都是優(yōu)秀的,雖然目前ST的單片機很有競爭力。
① 上電復(fù)位:是由外部總線產(chǎn)生的一種異步復(fù)位,單片機電壓監(jiān)測電路檢測到電源電壓VDD上升時,會產(chǎn)生一個上電復(fù)位脈沖,由內(nèi)部計時器進行延時后等待電源電壓上升到可以工作的電壓后,整個單片機系統(tǒng)就完成了上電復(fù)位。注意上電復(fù)位電路并不會檢測延時過后的系統(tǒng)電壓,如果此時的電壓低于單片機的最小工作電壓,整個上電復(fù)位就失效了。
圖所示是整個上電復(fù)位的過程,其步驟如下:
1)電源電壓VDD大于一定范圍時候,通常是1V以上的時候,單片機內(nèi)部的CMOS的邏輯電路開始運作,這個電壓我們也稱為VOS。在這個電壓下,不管使用的何種外部振蕩器,振蕩電路將開始起作用產(chǎn)生信號。
2)隨著振蕩器的運行,所有的內(nèi)部邏輯必須進行初始化以保證處在正確的邏輯狀態(tài)下。
3)此時上電復(fù)位電路內(nèi)部的計數(shù)器將開始工作,一般而都會維持一定的復(fù)位周期延遲,飛思卡爾的HC08系列的復(fù)位時鐘延遲tPOR等于4096個機器周期,并且復(fù)位邏輯將維持內(nèi)部復(fù)位信號。
4) 當(dāng)持續(xù)時間大于tPOR,上電復(fù)位電路的復(fù)位邏輯將反轉(zhuǎn)并關(guān)閉上電復(fù)位電路。沒有其他復(fù)位源的時候,單片機將退出復(fù)位狀態(tài)并開始執(zhí)行的代碼。
因此如果依靠單片機內(nèi)部的上電復(fù)位完成整個過程,復(fù)位與電源電壓的上升率有很大的關(guān)系,需要確認電壓的上升速率應(yīng)大于最小上升速率,如果不注意這點將造成單片機的無法啟動,計算方法如下:
VRUN = VOS +MVDD_SLEW×4096/FOSC
其中VRUN是單片機的最小工作電壓,F(xiàn)OSC-是內(nèi)部總線頻率,MVDD_SLEW是電源電壓上升率。
② 欠壓復(fù)位:單片機內(nèi)部電壓監(jiān)控電路形成的異步復(fù)位,當(dāng)電源電壓VDD電壓小于一定觸發(fā)閾值時,發(fā)出復(fù)位信號并保持到電源電壓大于欠壓復(fù)位功能恢復(fù)電壓。欠壓復(fù)位是用來確保單片機的電源并不在有效工作電壓范圍之內(nèi)時內(nèi)部產(chǎn)生復(fù)位過程,使得單片機保持在正確的狀態(tài)中,欠壓復(fù)位有三個重要的參數(shù):
1) VTR是欠壓復(fù)位功能恢復(fù)電壓,大于該電壓值的時單片機的欠壓復(fù)位狀態(tài)就結(jié)束了;
2)VTF是欠壓復(fù)位功能觸發(fā)電壓,小于該電壓值的時單片機將保持欠壓復(fù)位狀態(tài);
3) VHYS是欠壓復(fù)位的回差電壓,VHYS=VTR - VTF;這個電壓的主要目的是防止電源有噪聲干擾的時候頻繁的反彈,一般在0.1~0.2V之間。
如圖所示,欠壓復(fù)位是在電源電壓達到VTR以后,內(nèi)部的計數(shù)器才工作,因此在上電復(fù)位完成以后,欠壓復(fù)位繼續(xù)工作直至欠壓復(fù)位完成既定的延遲后,整個單片機才會退出復(fù)位狀態(tài);因此內(nèi)部引入欠壓復(fù)位電路對于解決電源電壓上升率過快和過慢的情況都有很大的幫助。需要注意的是低電壓的復(fù)位電平閾值是和供電電壓相關(guān)的,并且按照比例設(shè)定的無法更改,因此如果系統(tǒng)上不合適則需要考慮外部的復(fù)位方法。
責(zé)任編輯;zl
評論
查看更多