復(fù)位源6個復(fù)位源
TM4C123GH6PM微控制器有6個復(fù)位源:
(1)上電復(fù)位(POR);
(2)外部復(fù)位輸入引腳有效(RST);
(3)掉電檢測可以用于由以下任一事件引起:①低于BOR0,觸發(fā)值是BOR0的
最高電壓值;②
低于BOR1,觸發(fā)值是BOR1的最高
電壓值。
(4)軟件啟動復(fù)位(利用軟件復(fù)位寄存器);
(5)違反看門狗復(fù)位條件;
(6)MOSC故障。1
復(fù)位過程復(fù)位時,執(zhí)行下列順序:
(1)讀取BOOTCFG寄存器。如果EN位被清除,則執(zhí)行ROM的Boot Loader。
(2)在ROM的Boot Loader下,將指定的GPIO引腳的狀態(tài)與規(guī)定的極性相比較。如果引腳狀態(tài)與指定的極性匹配,那么將ROM映射到地址0x00000000,并繼續(xù)執(zhí)行ROM的Boot Loader。
(3)如果EN位置位或引腳狀態(tài)與規(guī)定的極性不匹配,則讀取地址0x00000004的數(shù)據(jù)。如果這個地址的數(shù)據(jù)是0xFFFFFFFF,那么ROM映射到地址0x00000000并繼續(xù)ROM的Boot Loader。
(4)如果地址0x00000004的數(shù)據(jù)不是0xFFFFFFFF,那么堆棧指針(SP)將加載Flash地址0x00000000的數(shù)據(jù),程序計數(shù)器(PC)將加載地址0x00000004的數(shù)據(jù)。隨后用戶應(yīng)用程序開始執(zhí)行。1
上電復(fù)位(POR)電路監(jiān)測電源電壓(),并且在電源達到閾值(VDD_POK)時向包括JTAG在內(nèi)的所有內(nèi)部邏輯產(chǎn)生復(fù)位信號。當(dāng)片上的電源上電復(fù)位脈沖結(jié)束時,該微控制器必須在規(guī)定的工作參數(shù)范圍內(nèi)工作。當(dāng)應(yīng)用要求使用外部復(fù)位信號讓微控制器更長時間地保持在復(fù)位狀態(tài)時(相對使用內(nèi)部POR而言),可以使用PST輸入。1
上電復(fù)位的順序(1)微控制器等待內(nèi)部POR變?yōu)闊o效;
(2)內(nèi)部復(fù)位釋放,內(nèi)核從內(nèi)存加載初始堆棧指針、初始化程序計數(shù)器以及程序計數(shù)器指向的第一條指令,最后開始執(zhí)行。1
注意事項(1)JTAG控制器只能被上電復(fù)位置位;
(2)內(nèi)部POR只有在微控制器的最初上電時或者從睡眠模式喚醒時才有效。1
外部復(fù)位輸入引腳如果應(yīng)用程序僅適用于內(nèi)部的POR電路,那么RST輸入必須通過一個可選的上位電阻(0~100kΩ)連接到電源()。RST輸入濾波需要一個最小脈沖寬度的復(fù)位脈沖,以便復(fù)位脈沖被識破。外部復(fù)位引腳(RST)復(fù)位控制器,包括內(nèi)核和所有片上外設(shè)。
外部復(fù)位序列(1)外部復(fù)位引腳(RST)由特定的聲明,然后失效。
(2)內(nèi)部復(fù)位釋放,內(nèi)核從內(nèi)存加載初始堆棧指針、初始化程序計數(shù)器以及程序計數(shù)器指向第一條指令,最后開始執(zhí)行。1
注意事項(1)建議RST信號的跟蹤線路越短越好。確保連接RST信號的任何元件布置的盡可能靠近微控制器。
(2)為了提高抗干擾性和/或延遲上電復(fù)位,RST輸入可以連接一個RC網(wǎng)絡(luò)。1
掉電復(fù)位(BOR)觸發(fā)事件微控制器提供一個由以下事件觸發(fā)的掉電檢測電路:
(1)低于掉電檢測復(fù)位0(BOR0)。外部提供的
電壓低于規(guī)定的
BOR0值。觸發(fā)值是BOR0的最高
電壓值。
(2)低于掉電檢測復(fù)位1(BOR1)。外部提供的
電壓低于規(guī)定的
BOR1值。觸發(fā)值是BOR1的最高
電壓值。
該應(yīng)用程序通過讀取復(fù)位原因寄存器可以識別導(dǎo)致復(fù)位的BOR事件。當(dāng)檢測到掉電條件,默認(rèn)條件將產(chǎn)生一個復(fù)位。BOR事件也可以通過編程,在清除上電和掉電復(fù)位控制寄存器(PBORCTL)的BOR0位或BOR1位時產(chǎn)生中斷。1
掉電復(fù)位順序(1)當(dāng)降低至
時,內(nèi)部BOR條件將置位。
(2)如果BOR條件存在,則內(nèi)部復(fù)位有效。
(3)內(nèi)部復(fù)位釋放,微控制器獲取并加載初始堆棧指針、初始程序計數(shù)器以及由程序計數(shù)器指定的第一條指令,然后開始執(zhí)行。
掉電復(fù)位的效果等同于一次有效的外部RST輸入,并且該復(fù)位將會保持有效,直到恢復(fù)到正確的電壓級別。在復(fù)位中斷處理程序中可以檢查RESC寄存器,以確定掉電條件是否是復(fù)位的原因,從而使軟件確定需要恢復(fù)哪些操作。1
軟件復(fù)位軟件可以復(fù)位某個特定的外設(shè)或者復(fù)位整個微控制器。通過系統(tǒng)控制偏移量0x500處開始的外設(shè)復(fù)位寄存器(例如看門狗定時器軟件復(fù)位(SRWD)寄存器),外設(shè)可以單獨由軟件復(fù)位。如果外設(shè)對應(yīng)的位被置位并隨后清零,那么該外設(shè)被復(fù)位。
包括內(nèi)核在內(nèi)的整個微控制器,可以通過設(shè)置應(yīng)用中斷和復(fù)位控制寄存器的SYSESREQ位實現(xiàn)復(fù)位。1
系統(tǒng)復(fù)位序列(1)通過置位SYSESREQ位即可產(chǎn)生軟件微控制器復(fù)位;
(2)內(nèi)部復(fù)位有效;
(3)內(nèi)部復(fù)位釋放,微控制器從存儲器加載初始堆棧指針、初始程序計數(shù)器以及由程序計數(shù)器指定的第一條指令,然后開始執(zhí)行。
內(nèi)核只能由設(shè)置APINT寄存器中的ECTRESET位實現(xiàn)復(fù)位。1
內(nèi)核復(fù)位序列(1)內(nèi)核復(fù)位通過設(shè)置VECRTESET位啟動;
(2)內(nèi)部復(fù)位有效;
(3)內(nèi)部復(fù)位釋放,微控制器從存儲器加載初始堆棧指針、初始程序計數(shù)器以及由程序計數(shù)器指定的第一條指令,然后開始執(zhí)行。1
看門狗定時器復(fù)位看門狗定時器模塊看門狗定時器模塊的功能是阻止系統(tǒng)掛起。TM4C123GH6PM微控制器有兩個看門狗定時器模塊,以防止其中一個看門狗時鐘源出現(xiàn)故障。一個看門狗脫離系統(tǒng)時鐘運行,另一個脫離精確內(nèi)部振蕩器(PIOSC)運行。除了由于PIOSC看門狗定時器模塊處于不同的時鐘域,對寄存器的訪問必須在它們之間有一個時間延遲外,每個模塊還應(yīng)該以相同的方式運行。看門狗定時器可被配置為在第一次超時的時候向微控制器產(chǎn)生一個中斷或者不可屏蔽中斷,在第二次超時的時候產(chǎn)生一個復(fù)位。
看門狗第一次超時事件后,32位看門狗計數(shù)器會重載看門狗定時器裝載寄存器(WDTLOAD)的值并從該值遞減計數(shù)。如果在第一次溢出中斷被清除之前,定時器遞減至零,并且復(fù)位信號使能,那么看門狗定時器將復(fù)位信號傳遞給微控制器。1
復(fù)位序列(1)看門狗定時器第二次溢出時沒有被復(fù)位;
(2)內(nèi)部復(fù)位有效;
(3)內(nèi)部復(fù)位釋放,微控制器從存儲器加載初始堆棧指針、初始程序計數(shù)器以及由程序計數(shù)器指定的第一條指令,然后開始執(zhí)行。1