- AVR單片機C語言應用100例
- 嚴雨 廉潔編著
- 1806字
- 2018-12-27 17:25:31
1.2.5 ATmega128單片機的復位
當ATmega128單片機復位之后,所有的I/O寄存器都被恢復為初始值,程序從復位向量處開始執行。復位向量處存放的指令必須是絕對跳轉指令JMP,以使程序跳轉到對應復位處理代碼。如果用戶代碼不使用中斷,中斷向量的存儲位置可以由一般的程序代碼所覆蓋。這個處理方法同樣適用于當復位向量位于應用程序區,中斷向量位于程序存儲器的Boot區的狀況。
當復位發生時,ATmega128單片機的I/O端口立即被復位為初始值。此時不要求任何時鐘處于正常運行狀態。當所有的復位信號消失之后,ATmega128單片機內部的一個延遲計數器被激活,將內部復位的時間延長,從而能使ATmega128單片機在正常工作之前有一定的時間讓電源達到穩定的電平,該延遲計數器的溢出時間通過熔絲位SUT與CKSEL設定。
1. ATmega1 28單片機的復位源
ATmega128單片機有5個復位源。
● 上電復位:當電源電壓低于上電復位門限VPOT時,ATmega128單片機復位。
● 外部復位:當外加在RESET引腳上的低電平持續時間大于最小脈沖寬度時,ATmega128單片機復位。
● 掉電檢測復位:當掉電檢測復位功能使能,并且電源電壓低于掉電檢測復位門限電壓VBOT時,ATmega128單片機復位。
● 看門狗復位:當看門狗使能,并且看門狗定時器溢出時,ATmega128單片機復位。
● JTAG復位:當復位寄存器被置位時,ATmega128單片機復位。
2. 上電復位
在上電復位(POR)過程中,其復位脈沖由片內檢測電路產生,當VCC引腳上的電平低于檢測電平POR時,發生上電復位事件。POR電路可以用來觸發啟動復位,或者用來檢測電源故障。
POR電路可以保證ATmega128單片機在上電時復位,當VCC達到上電門限電壓后觸發延遲計數器,在計數器溢出之前器件一直保持為復位狀態,當VCC下降時,只要低于檢測門限,RESET信號立即生效。
圖1.11和圖1.12所示為ATmega128單片機在上電復位時RESET引腳不同連接方式下的信號時序圖。

圖1.11 RESET引腳連接到VCC的信號時序圖

圖1.12 RESET由外部電路控制的信號時序圖
3. 外部復位
外部復位由外加于ATmega128單片機的RESET引腳上的低電平產生。當復位低電平持續時間大于最小脈沖寬度(1.5 μs)時觸發復位過程,即使此時并沒有時鐘信號在運行。當外加信號達到復位門限電壓 VRST(上升沿)時,tTOUT延時周期開始。在延時結束后,ATmega128單片機啟動信號時序圖如圖1.13所示。

圖1.13 外部復位的信號時序圖
4. 掉電檢測復位
ATmega128單片機具有片內BOD(Brown-out Detection)電路,該電路通過與固定觸發電平的對比來檢測工作過程中VCC的變化。觸發電平通過熔絲位BODLEVEL來設定,可以設定為2.7V或4.0V。BOD的觸發電平具有遲滯功能,以消除電源尖峰的影響。BOD電路的開關由熔絲位BODEN來控制。當BOD被使能后,一旦VCC下降到觸發電平以下,BOD復位立即被激發。當VCC上升到觸發電平以上時,延時計數器開始計數,一旦超過溢出時間tTOUT,ATmega128單片機即恢復工作。如果VCC一直低于觸發電平并保持時間 tBOD(2μs),BOD電路將只檢測電壓跌落。圖1.14所示為掉電檢測復位示意圖。

圖1.14 掉電檢測復位示意圖
5. 看門狗復位
當看門狗定時器溢出時,將產生持續時間為1個時鐘周期的復位脈沖,在脈沖的下降沿,延時定時器開始對 tTOUT計數,計數完成之后,ATmega128單片機即完成復位,如圖1.15所示。
6. ATmega1 28單片機的復位控制寄存器
ATmega128單片機使用一個復位控制寄存器來對復位進行管理,該寄存器的內部結構如表1.18所示。其中后5位和ATmega128單片機的復位控制相關。

圖1.15 看門狗復位時序圖
表1.18 ATmega1 28單片機的復位控制寄存器MCUCSR

● JTRF:JTAG復位標志位。通過JTAG指令AVR_RESET可以使JTAG復位寄存器置位,引發ATmega128單片機復位,并使JTRF置位;上電復位后,該位被自動清零,也可以通過對該位寫“0”來清除。
● WDRF:看門狗復位標志位。當看門狗復位發生時,該位被置位;上電復位后,該位被自動清零,也可以通過向該位寫“0”來清除。
● BORF:掉電檢測復位標志位。在掉電檢測復位發生時被置位;上電復位后該位被自動清零,也可以通過寫“0”來清除。
● EXTRF:外部復位標志位。當外部復位發生時被置位;上電復位后該位被自動清零,也可以通過寫“0”來清除。
● PORF:上電復位標志位。上電復位發生時被置位;只能通過寫“0”來清除。
7. 片內基準電壓
ATmega128單片機具有片內基準電壓源,用于掉電檢測,或者作為模擬比較器或ADC模塊的輸入電源。ADC模塊的2.56V基準電壓也由此片內基準電壓源產生。電壓基準的啟動時間可能影響其工作方式,其啟動時間如表1.19所示。為了降低功耗,在不使用基準源時將關閉。該基準源僅在如下情況打開:
● BOD使能,即熔絲位BODEN被編程。
● 能隙基準源連接到模擬比較器,ACSR寄存器的ACBG位被置位。
● ADC模塊被使能。
因此,當BOD被禁止時,置位ACBG或使能ADC后會啟動基準源,為了降低掉電模式的功耗,可以禁止上述3種條件,并在進入掉電模式之前關閉基準源。
表1.19 內部電壓基準源特性

- PaaS程序設計
- Java Web及其框架技術
- Internet of Things with the Arduino Yún
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- C++程序設計基礎教程
- Oracle Exadata專家手冊
- Mastering ROS for Robotics Programming
- Instant Nancy Web Development
- Kotlin開發教程(全2冊)
- Python大學實用教程
- C++程序設計教程(第2版)
- Instant Automapper
- 從零開始學Python大數據與量化交易
- Kohana 3.0 Beginner's Guide
- C語言程序設計