TM4C129X MCU如何有效應(yīng)對(duì)晶振失效
作者:Brian Wang
本文引用地址:http://m.butianyuan.cn/article/202312/454103.htmTM4C129x系列是TI 推出的通用MCU 產(chǎn)品,該產(chǎn)品具有120Mhz Cortex M4F核,最大1MB的Flash 空間以及靈活多樣的通信接口。同時(shí)該產(chǎn)品的內(nèi)置Ethernet PHY,可支持高集成度、低成本的以太網(wǎng)通信。片上豐富的資源使其非常適合作為儲(chǔ)能等新能源應(yīng)用的House Keeping MCU 來(lái)使用,配合TI 的BMS采樣AFE及實(shí)時(shí)控制芯片C2000共同完成儲(chǔ)能系統(tǒng)所需要的采集、監(jiān)控、控制等一些列功能。
近年來(lái),隨著儲(chǔ)能等新能源應(yīng)用的飛速發(fā)展,各類行業(yè)標(biāo)準(zhǔn)不斷發(fā)展和健全,對(duì)儲(chǔ)能系統(tǒng)的安全性也提出了越來(lái)越高的要求。而作為儲(chǔ)能系統(tǒng)的控制中樞,對(duì)于MCU 在故障狀態(tài)下的安全也提出了新的要求。例如IEC60730最先對(duì)家儲(chǔ)產(chǎn)品提出當(dāng)MCU 晶振失效,系統(tǒng)需要能夠安全地?cái)嚯姡?這就需要MCU 必須具有一種可靠地檢測(cè)、診斷和處理MCU 晶振失效的措施。本文就將以儲(chǔ)能系統(tǒng)的這一需求為例,介紹如何在TM4C129X中應(yīng)對(duì)系統(tǒng)晶振失效的問(wèn)題。
1. TM4C129X晶振失效檢測(cè)功能
TM4C129X 系列MCU中本身提供了主時(shí)鐘診斷功能,該功能將主時(shí)鐘(MOSC)頻率與內(nèi)部晶振頻率對(duì)比,一旦發(fā)現(xiàn)主時(shí)鐘頻率異常則觸發(fā)以下異常中的一種, 并自動(dòng)切換到內(nèi)部晶振 (PIOSC)來(lái)繼續(xù)為MCU的后續(xù)運(yùn)行提供是時(shí)鐘源。
圖-1 主晶振失效動(dòng)作選擇配置
針對(duì)本文中所討論的安全下電需求,我們可以配置MOSCCTL.MOSCIM=0從而實(shí)現(xiàn)晶振異常時(shí)觸發(fā)MOSC Fail 中斷,并在中斷中進(jìn)行相關(guān)的安全下電操作,具體的配置實(shí)現(xiàn)代碼如下:
ui32MOSCCTL = HWREG(SYSCTL_MOSCCTL);
// Enable MOSC verification enable MOSC fail interrupt
SysCtlMOSCConfigSet(ui32MOSCCTL | SYSCTL_MOSC_VALIDATE | SYSCTL_MOSC_INTERRUPT);
// Enable MOSC interrupt at SYS level
HWREG(SYSCTL_IMC) = 0x08;
// Enable SYS interrupt at NVIC level
IntEnable(INT_SYSCTL);
void SystemtHandler(void)
{
// Add error handling code here
該方法可以在不增加額外外圍電路的情況下實(shí)現(xiàn)晶振失效狀態(tài)下MCU的安全狀態(tài)處理,但需要注意的時(shí)在TM4C129X系列的Errata中有注明該系列芯片的MOSC verification 電路存在一定的無(wú)法準(zhǔn)確檢測(cè)晶振失效的風(fēng)險(xiǎn)。因此該方法僅能用作一種輔助手段,或應(yīng)用在對(duì)于診斷率要求 不高的應(yīng)用當(dāng)中。我們必須增加其他解決問(wèn)題的措施。
圖-2 TM4C129X 晶振檢測(cè)功能勘誤
2. 使用硬件方式應(yīng)對(duì)晶振失效
在儲(chǔ)能系統(tǒng)中,為了應(yīng)對(duì)TMC129X內(nèi)置時(shí)鐘診斷可能存在的風(fēng)險(xiǎn),我們可以增加額外的硬件電路來(lái)實(shí)現(xiàn)更加可靠的錯(cuò)誤處理。對(duì)于此類問(wèn)題,常見(jiàn)的解決方案的是使用一顆額外的看門狗(Watchdog)芯片。
對(duì)于TM4C129X系列芯片,通過(guò)其數(shù)據(jù)手冊(cè)可以芯片最小復(fù)位脈沖寬度在0.25~100us,絕大多數(shù)的TI 看門系列產(chǎn)品均可滿足此時(shí)間要求:
圖-3 TM4C1294 復(fù)位時(shí)序要求
在此選擇TI TPS3820 為例說(shuō)明看門狗方案:
圖-4 TM4C1294 看門狗方案示意圖
正常工作狀態(tài)下,TM4C129X通過(guò)PWM 以固定頻率對(duì)TPS3820進(jìn)行喂狗。當(dāng)晶振失效,若TM4C1294 晶振內(nèi)部的晶振失效診斷電路生效,按照預(yù)先設(shè)計(jì)好的程序執(zhí)行斷電保護(hù)。若內(nèi)部電路不失效,則芯片將失去時(shí)鐘源停止喂狗,25ms后TPS3820將向TM4C129X發(fā)送復(fù)位脈沖,通過(guò)nRST引腳將芯片復(fù)位。
當(dāng)TM4C129X 復(fù)位,則所有GPIO將被復(fù)位到高阻狀態(tài)(tristate),此時(shí)引腳電平將有外部的上拉或下拉電阻決定。因此只需要按照安全狀態(tài)在繼電器控制I/O端口的外圍增加相應(yīng)的上拉或下拉電阻即可保證復(fù)位后GPIO處于安全狀態(tài)。
圖-5 TM4C1294 GPIO默認(rèn)狀態(tài)
經(jīng)過(guò)對(duì)該方案的深入測(cè)試,在內(nèi)部檢測(cè)電路不工作的情況下,該硬件復(fù)位方案有極高的成功率(如圖6左)。但在小概率下,我們可以抓到如圖6 右側(cè)的失敗情況。在該種情況下,晶振下電后芯片沒(méi)有發(fā)生復(fù)位,繼電器控制I/O 也沒(méi)有如預(yù)想被拉低,芯片似乎“卡死”在了某種狀態(tài)里。
圖-6 測(cè)試波形
針對(duì)此問(wèn)題對(duì)硬件的看門狗方案進(jìn)行了改進(jìn),在原有看門狗的基礎(chǔ)上增加了個(gè)一個(gè)單穩(wěn)態(tài)觸發(fā)器和一個(gè)與門,當(dāng)MCU 晶振失效MCU 停止喂狗,1G123通過(guò)與門拉低繼電器控制信號(hào),保證在MCU 無(wú)法復(fù)位的情況下仍能斷開(kāi)繼電器。
圖-7 改進(jìn)的硬件看門狗方案示意圖
3. TM4C晶振失效復(fù)位失敗的解決方法
上一節(jié)中,我們通過(guò)增加片外的復(fù)位和I/O口控制電路保證了芯片晶振失效時(shí)I/O口能夠處在安全狀態(tài),但并未解決TM4C無(wú)法正確復(fù)位的問(wèn)題。
該問(wèn)題的主要原因是TM4C在接收到nRST 復(fù)位脈沖時(shí)可以觸發(fā)兩種不同的復(fù)位模式:
Power on Reset(POR): 該模式又稱為冷復(fù)位(code-reset),此復(fù)位模式等同于芯片上電復(fù)位,是一種完全徹底的復(fù)位方式;
System Reset: 該模式又稱為暖復(fù)位(warm-reset),此模式只復(fù)位芯片的核心及部分外設(shè),不是完全復(fù)位。
經(jīng)過(guò)反復(fù)多次測(cè)試,TM4C在外部晶振失效的情況下只能可靠的地進(jìn)行system reset,而無(wú)法支持 POR Reset。默認(rèn)狀態(tài)下,nRST均觸發(fā)POR Reset,因此會(huì)出現(xiàn)上一節(jié)類似MCU ‘卡死‘的異常狀態(tài)。需要通過(guò)Reset Behavior Control寄存器將復(fù)位模式改為System reset 即可正常復(fù)位。
圖-8 TM4C129X RST腳復(fù)位模式選擇
使用如下API 進(jìn)行配置:
重復(fù)上述實(shí)驗(yàn),無(wú)論如何測(cè)試,在晶振失效情況下收到TPS3820的復(fù)位觸發(fā)信號(hào)后TPS3820均可正常復(fù)位,GPIO按照預(yù)設(shè)置高。
圖-9更改復(fù)位模式后的測(cè)試波形
4. 總結(jié)
本文以儲(chǔ)能系統(tǒng)為例,介紹了如何在TM4C129x系列芯片的使用過(guò)程中應(yīng)對(duì)晶振失效故障。針對(duì)芯片本身功能存在的不足,本文通過(guò)增加外圍電路解決增加了“雙保險(xiǎn)”,大大提高了TM4C129X芯片在晶振失效情況下的可靠性。
參考文獻(xiàn)
[1] Texas Instruments: Tiva TM4C1294NCPDT Microcontroller DATA SHEET
[2] Texas Instruments: Tiva C Series TM4C129x Microcontrollers Silicon Revisions 1, 2, & 3 Errata (Rev. G)
評(píng)論