單片機復位電路分析
(d/dt)UA(t)=(1/RC)URST(t)+(d/dt)URST(t)
URST(0)=0
解之得:
從上式可以看出,由于負載的突變和穩(wěn)壓電源的穩(wěn)壓作用,將在復位端引入一個類脈沖,從而導致CPU工作不正常。
此電路的等效電路如圖5所示。仍以高電平復位為例,同樣可以建立如下方程:
當系統(tǒng)上電時,假設Us(t)=AU(t)為階躍函數(shù),U0=0,則:
當反相器正常工作后,Uc若仍能保持在VIL以下,則其輸出就可以為高電平;而且如果從反相器正常工作后開始,經(jīng)過不小于復位脈沖寬度的時間TR后,Uc才能達到VIL以上,那么上電復位就能保證可靠。所以在實際應用中,設計人員常常將R、CF的值增大以提高時間常數(shù),并且應用具有斯密特輸入的CMOS反相器以提高抗干擾性。然而此復位電路常常在二次電源開關(guān)相對較短的時間間隔情況下出現(xiàn)異常。這主要是由于放電回路與充電回路相同,導致放電時間常數(shù)較大,從而導致UC電壓下降過度。為此有文獻[2]介紹如圖6所示的改進電路。
從圖6可以看出放電回路的時間常數(shù)一般遠遠小于充電時間常數(shù)。這時,上面所提到的重復開關(guān)電源而造成上電復位不可靠的現(xiàn)象就可以得到控制。然而,由于放電時間常數(shù)過短,降低了此復位電路在工作中對電源電壓波動的不敏感性。例如,當電源電壓有波動時,此時由于放電過快,從而有可能造成Uc低于反相器的VIL電壓值,帶來不必要的復位脈沖。此現(xiàn)象在單片機工作于Sleep方式與Active方式切換,而電源輸出功率又相對較弱時可能出現(xiàn)。為此提出針對以上現(xiàn)象的改進積分型復位電路(如圖7所示)。圖7中,R1R2,適當調(diào)整R1值的大小就可避免以上情況發(fā)生。
1.3 比較器型復位電路
比較器型復位電路的基本原理如圖8所示。上電復位時,由于組成了一個RC低通網(wǎng)絡,所以比較器的正相輸入端的電壓比負相端輸入電壓延遲一定時間。而比較器的負相端網(wǎng)絡的時間常數(shù)遠遠小于正相端RC網(wǎng)絡的時間常數(shù),因此在正端電壓還沒有超過負端電壓時,比較器輸出低電平,經(jīng)反相器后產(chǎn)生高電平。復位脈沖的寬度主要取決于正常電壓上升的速度。由于負端電壓放電回路時間常數(shù)較大,因此對電源電壓的波動不敏感。但是容易產(chǎn)生以下二種不利現(xiàn)象:(1)電源二次開關(guān)間隔太短時,復位不可靠;(2)當電源電壓中有浪涌現(xiàn)象時,可能在浪涌消失后不能產(chǎn)生復位脈沖。為此,將改進比較器重定電路,如圖9所示。這個改進電路可以消除第一種現(xiàn)象,并減少第二種現(xiàn)象的產(chǎn)生。為了徹底消除這二種現(xiàn)象,可以利用數(shù)字邏輯的方法與比較器配合,設計如圖10所示的比較器重定電路。此電路稍加改進即可作為上電復位與看門狗復位電路共同復位的電路,大大提高了復位的可靠性。
1.4 看門狗型復位電路
看門狗型復位電路主要利用CPU正常工作時,定時復位計數(shù)器,使得計數(shù)器的值不超過某一值;當CPU不能正常工作時,由于計數(shù)器不能被復位,因此其計數(shù)會超過某一值,從而產(chǎn)生復位脈沖,使得CPU恢復正常工作狀態(tài)。典型應用的Watchdog復位電路如圖11所示。此復位電路的可靠性主要取決于軟件設計,即將定時向復位電路發(fā)出脈沖的程序放在何處。一般設計,將此段程序放在定時器中斷服務子程序中。然而,有時這種設計仍然會引起程序走飛或工作不正常[3]。原因主要是:當程序“走飛”發(fā)生時定時器初始化以及開中斷之后的話,這種“走飛”情況就有可能不能由Watchdog復位電路校正回來。因為定時器中斷一真在產(chǎn)生,即使程序不正常,Watchdog也能被正常復位。為此提出定時器加預設的設計方法。即在初始化時壓入堆棧一個地址,在此地址內(nèi)執(zhí)行的是一條關(guān)中斷和一條死循環(huán)語句。在所有不被程序代碼占用的地址盡可能地用子程序返回指令RET代替。這樣,當程序走飛后,其進入陷阱的可能性將大大增加。而一旦進入陷阱,定時器停止工作并且關(guān)閉中斷,從而使Watchdog復位電路會產(chǎn)生一個復位脈沖將CPU復位。當然這種技術(shù)用于實時性較強的控制或處理軟件中有一定的困難。
DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY
評論