单片机 架构 程序 经验总结_单片机“死机”了怎么办?看看一个资深工程师的经验总结...
原標(biāo)題:單片機(jī)“死機(jī)”了怎么辦?看看一個(gè)資深工程師的經(jīng)驗(yàn)總結(jié)
單片機(jī)(Microcontroller,MCU) 又稱為微控制器或嵌入式控制器,體積雖小,但使用方便,應(yīng)用范圍廣泛,在如通訊設(shè)備、智能化管理、醫(yī)療設(shè)備及工業(yè)自動(dòng)化等應(yīng)用中都能看到它的身影。雖然單片機(jī)系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,但是面對(duì)單片機(jī)“死機(jī)”,有時(shí)就像生活中會(huì)遇到的高山深谷,可能讓你花大半天時(shí)間,也百思不得其解。
在這里筆者嘗試分享一些我們?cè)谧黾夹g(shù)支持時(shí)曾經(jīng)遇見(jiàn)的典型問(wèn)題——如時(shí)鐘信號(hào)、供電電壓、電流耗量和應(yīng)用程序等,我們可以利用一些簡(jiǎn)易方法去尋找解決這些問(wèn)題的可能性。
不同單片機(jī)的規(guī)格可能略有不同,除了可能有不同的核心處理器,還有可能有不同的RAM容量、不同的串口接口、不同的速度、不同的電壓等等。想快速了解單片機(jī)的功能和外設(shè)等資料,可以點(diǎn)擊Digi-Key微控制器的產(chǎn)品索引,進(jìn)行查找。
圖1,Digi-Key的微控制器產(chǎn)品索引,是查找單片機(jī)資料的快速通道
時(shí)鐘信號(hào)
無(wú)論是晶體振蕩器(簡(jiǎn)稱晶振),或是內(nèi)部時(shí)鐘振蕩器,都可以為單片機(jī)提供時(shí)鐘信號(hào)。單片機(jī)會(huì)按時(shí)鐘信號(hào)執(zhí)行一個(gè)又一個(gè)儲(chǔ)存器內(nèi)的指令,進(jìn)行既定的正常工作。一旦時(shí)鐘信號(hào)不正常,單片機(jī)則不能正常控制。
要檢查時(shí)鐘信號(hào),可以先觀察單片機(jī)系統(tǒng)的時(shí)鐘或其他模塊(如定時(shí)器或ADC)是否存在并正常工作,以確定其邏輯正常操作。譬如TIMSP430FR2000單片機(jī)在激活模式 (Active Mode) 工作下,系統(tǒng)的時(shí)鐘可高達(dá)24MHz。
圖2,TI MSP430FR2000單片機(jī)不同工作模式比較
進(jìn)行時(shí)鐘信號(hào)檢查,最簡(jiǎn)單的方法是先將時(shí)鐘切換到相關(guān)的GPIO引腳,并使用數(shù)字示波器進(jìn)行測(cè)量,看看時(shí)鐘信號(hào)波形的幅度和周期。如果沒(méi)有時(shí)鐘信號(hào)或振蕩不正常,可嘗試更換晶振或檢查內(nèi)部時(shí)鐘設(shè)定。如果仍不正常,單片機(jī)內(nèi)部可能出現(xiàn)問(wèn)題。
供電電壓
常見(jiàn)單片機(jī)的供電電壓是+5V,詳情可查看單片機(jī)數(shù)據(jù)手冊(cè)上的資料,或是參考Digi-Key 網(wǎng)站內(nèi)產(chǎn)品頁(yè)的資料。
檢查單片機(jī)的供電電壓,可以從單片機(jī)供電引腳看看供電電壓是否正常。最好的方法是使用具有足夠帶寬的數(shù)字示波器,以便有效看到任何意外的電壓瞬變。
若單片機(jī)發(fā)現(xiàn)是0V或低于正常工作電壓,可以嘗試先將該引腳與供電端斷開(kāi)。斷開(kāi)后,如果供電端電壓恢復(fù)正常,則很大機(jī)會(huì)是單片機(jī)的電路出現(xiàn)問(wèn)題;如果斷開(kāi)后,供電端電壓仍不正常,則是供電的電路出現(xiàn)故障。
圖3,通過(guò)數(shù)字示波器查看單片機(jī)供電電壓
電流耗量
如果發(fā)現(xiàn)單片機(jī)的電流耗量相比其低功耗模式的電流消耗低很多,單片機(jī)可能處于睡眠模式而沒(méi)有工作。在這種情況下,可能是由于時(shí)鐘或輸入相關(guān)的故障,導(dǎo)致某些中斷無(wú)法觸發(fā)。
有些時(shí)候,如果單片機(jī)的電流耗量高得驚人,可能是物理?yè)p壞,這會(huì)導(dǎo)致單片機(jī)異常運(yùn)行或閂鎖情況。在這種情況下,可以嘗試?yán)脧?fù)位信號(hào)來(lái)區(qū)分是單片機(jī)已經(jīng)永久性損壞或是出現(xiàn)閂鎖問(wèn)題。
圖4,檢查單片機(jī)的電流耗量以確定失效原因
下圖是有關(guān)TIMSP432P401單片機(jī)正常復(fù)位期間的電流消耗。
圖5,TI MSP430P401單片機(jī)正常復(fù)位期間電流消耗
應(yīng)用程序
在執(zhí)行應(yīng)用程序時(shí),其中一個(gè)常見(jiàn)故障是單片機(jī)輪詢問(wèn)題 (Polling) 。
這是由于應(yīng)用程序中的循環(huán)設(shè)計(jì),不斷要求單片機(jī)輪詢某些信號(hào)或等待某些輸入信號(hào);也可能是產(chǎn)生了沖突,導(dǎo)致循環(huán)條件一直無(wú)法滿足。當(dāng)然,這些都是為了讓單片機(jī)一直保持在我們需要運(yùn)行的情況,但可能會(huì)引致莫名奇妙的死機(jī)。例如,當(dāng)ADC回路僅等待來(lái)自外部傳感器輸入的指定信號(hào)時(shí),由于外部傳感器無(wú)法按預(yù)期輸出信號(hào),可能使單片機(jī)死機(jī)。
經(jīng)驗(yàn)總結(jié)
要排除單片機(jī)故障,就要按單片機(jī)的特性一一排查,還需要耐心及縝密的思考設(shè)計(jì),如此操作單片機(jī)故障應(yīng)該可以一步一步解決。
更多單片機(jī)技術(shù)內(nèi)容:
·使用隨時(shí)可用的單板設(shè)計(jì)開(kāi)發(fā) IoT原型
·如何在任何應(yīng)用中快速添加 NFC功能
·將 Arduino與開(kāi)源 RISC-V架構(gòu)相結(jié)合,實(shí)現(xiàn)低成本、高性能的嵌入式設(shè)計(jì)
·使用微控制器的 DFU模式在現(xiàn)場(chǎng)更新固件
·選擇和應(yīng)用適合物聯(lián)網(wǎng)的低功耗微控制器
·MSP430FR2355LaunchPad?開(kāi)發(fā)套件
·MSP430FR25x2超低功耗微控制器
喜歡Digi-Key的文章嗎?立即到Digi-Key官網(wǎng),或關(guān)注Digi-Key官方微信吧!
www.digikey.com.cn返回搜狐,查看更多
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的单片机 架构 程序 经验总结_单片机“死机”了怎么办?看看一个资深工程师的经验总结...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库:计算地球上两个坐标点之间里程
- 下一篇: stm32烧写序列号