在調(diào)試MCU時,經(jīng)常會遇到復位的情況。要找到復位的原因,我們就需要了解到有哪些因素會導致MCU復位。
1.外部輸入復位
當我們改變MCU的reset引腳的電平,并保持一段時間,就可以復位MCU。
外部輸入復位是重啟MCU最有效的方式了。
2.上電復位(LVD)
我們發(fā)現(xiàn)MCU不接外部復位電路,也能正常啟動起來,這就是上電復位在發(fā)揮作用。
如下圖,當電源電壓達到POR釋放電壓后,MCU開始內(nèi)部初始化,一定時間后開始執(zhí)行用戶程序。
當然,如果電源電壓掉到了POR檢測電壓以下時,MCU會被復位住。
3.低電壓復位(LVD)
當我們希望MCU不在某一電壓以下運行時,開啟LVD是一個很好的選擇。
當電源電源下降到LVD檢測電壓以下時,MCU會被復位住。
當電源電壓上升的LVD釋放電壓以上時,MCU會被釋放,重啟運行。
4.看門狗復位(WDT)
當MCU因為干擾等因素導致進入死循環(huán),這個時候需要一種機制讓MCU重新啟動,這種機制就是看門狗。
在開啟看門狗后,如果不及時喂狗,那么它將毫不猶豫的復位MCU,使其重新開始執(zhí)行用戶程序。
5.系統(tǒng)時鐘復位
如果系統(tǒng)時鐘的設(shè)置,使MCU進入死鎖狀態(tài),那么就會發(fā)生系統(tǒng)時鐘復位。
6.修整數(shù)據(jù)復位
低電壓復位(LVD)的檢測值是可以由用戶的選擇的。
根據(jù)用戶選擇,得到修整數(shù)據(jù),從而調(diào)整電阻梯以形成不同電壓的比較值。
如果這個修整數(shù)據(jù)因為噪聲等原因發(fā)生改變,那么將發(fā)生修整數(shù)據(jù)復位。
7.閃存待機復位
當設(shè)置閃存flash進入待機狀態(tài),如果這個時候試圖去讀取閃存flash中的數(shù)據(jù),那么就會發(fā)生閃存待機復位。
除了第一種外部輸入復位為外部因素外,其他復位都是內(nèi)部因素。
當發(fā)生復位時,我們?nèi)绾闻袛嗍悄囊环N因素導致的呢?
如果是使用東芝TLCS-870/C1系列的TMP89FS60,可以通過它的寄存器IRSTSR來判斷。
IRSTSR是一個特殊的只讀寄存器,它只能被外部輸入復位或者上電復位(POR)初始化。
當發(fā)生復位時,我們?nèi)ゲ榭催@個寄存器哪個位被置位了,就能知道是哪種內(nèi)部因素導致的復位了。
如果發(fā)生復位后,這個寄存器沒有被置位,那么我們就要去考慮是外部輸入復位導致的,還是上電復位(POR)導致的了。
責任編輯人:CC
-
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351198 -
復位
+關(guān)注
關(guān)注
0文章
172瀏覽量
24219 -
mcu復位
+關(guān)注
關(guān)注
0文章
15瀏覽量
6500
發(fā)布評論請先 登錄
相關(guān)推薦
LMX2820鎖定了之后,又失鎖,什么因素導致的?
esd導致mcu和adc復位問題
看門狗導致mcu不停復位的原因
lcd的顯示速度跟哪些因素有關(guān)呢?
初始化mcu程序選用32k_MCU的復位因素有哪些
N76E003雙串口同時工作,開啟中斷接收發(fā)送,為什么會導致MCU不斷復位?
外部IC連接NRST導致MCU內(nèi)部復位信號失效的問題
mcu復位導致I2C異常
![<b class='flag-5'>mcu</b><b class='flag-5'>復位</b><b class='flag-5'>導致</b>I2C異常](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
初始化mcu程序選用32k_MCU有多少種復位因素
![初始化<b class='flag-5'>mcu</b>程序選用32k_<b class='flag-5'>MCU</b>有多少種<b class='flag-5'>復位</b><b class='flag-5'>因素</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論