你了解MCU的技術(shù)原理嗎?MCU為何會(huì)產(chǎn)生復(fù)位?
對(duì)于電子電器專業(yè)的朋友來說,MCU是十分熟悉的器件之一。在充分運(yùn)用MCU的情況下,我們能夠打造出諸多實(shí)用設(shè)備。為增進(jìn)大家對(duì)MCU的認(rèn)識(shí),本文將對(duì)MCU的技術(shù)原理以及導(dǎo)致MCU產(chǎn)生復(fù)位的原因予以介紹。如果你對(duì)MCU具有興趣,不妨繼續(xù)往下閱讀哦。
一、MCU的技術(shù)原理
MCU同溫度傳感器之間通過I2C總線連接。I2C總線占用2條MCU輸入輸出口線,二者之間的通信完全依靠軟件完成。溫度傳感器的地址可以通過2根地址引腳設(shè)定,這使得一根I2C總線上可以同時(shí)連接8個(gè)這樣的傳感器。本方案中,傳感器的7位地址已經(jīng)設(shè)定為1001000。MCU需要訪問傳感器時(shí),先要發(fā)出一個(gè)8位的寄存器指針,然后再發(fā)出傳感器的地址(7位地址,低位是WR信號(hào))。傳感器中有3個(gè)寄存器可供MCU使用,8位寄存器指針就是用來確定MCU究竟要使用哪個(gè)寄存器的。本方案中,主程序會(huì)不斷更新傳感器的配置寄存器,這會(huì)使傳感器工作于單步模式,每更新一次就會(huì)測量一次溫度。
要讀取傳感器測量值寄存器的內(nèi)容,MCU必須首先發(fā)送傳感器地址和寄存器指針。MCU發(fā)出一個(gè)啟動(dòng)信號(hào),接著發(fā)出傳感器地址,然后將RD/WR管腳設(shè)為高電平,就可以讀取測量值寄存器。
為了讀出傳感器測量值寄存器中的16位數(shù)據(jù),MCU必須與傳感器進(jìn)行兩次8位數(shù)據(jù)通信。當(dāng)傳感器上電工作時(shí),默認(rèn)的測量精度為9位,分辨力為0.5 C/LSB(量程為-128.5 C至128.5 C)。本方案采用默認(rèn)測量精度,根據(jù)需要,可以重新設(shè)置傳感器,將測量精度提高到12位。如果只要求作一般的溫度指示,比如自動(dòng)調(diào)溫器,那么分辨力達(dá)到1 C就可以滿足要求了。這種情況下,傳感器的低8位數(shù)據(jù)可以忽略,只用高8位數(shù)據(jù)就可以達(dá)到分辨力1 C的設(shè)計(jì)要求。由于讀取寄存器時(shí)是按先高8位后低8位的順序,所以低8位數(shù)據(jù)既可以讀,也可以不讀。只讀取高8位數(shù)據(jù)的好處有二,第一是可以縮短MCU和傳感器的工作時(shí)間,降低功耗;第二是不影響分辨力指標(biāo)。
MCU讀取傳感器的測量值后,接下來就要進(jìn)行換算并將結(jié)果顯示在LCD上。整個(gè)處理過程包括:判斷顯示結(jié)果的正負(fù)號(hào),進(jìn)行二進(jìn)制碼到BCD碼的轉(zhuǎn)換,將數(shù)據(jù)傳到LCD的相關(guān)寄存器中。
數(shù)據(jù)處理完畢并顯示結(jié)果之后,MCU會(huì)向傳感器發(fā)出一個(gè)單步指令。單步指令會(huì)讓傳感器啟動(dòng)一次溫度測試,然后自動(dòng)進(jìn)入等待模式,直到模數(shù)轉(zhuǎn)換完畢。MCU發(fā)出單步指令后,就進(jìn)入LPM3模式,這時(shí)MCU系統(tǒng)時(shí)鐘繼續(xù)工作,產(chǎn)生定時(shí)中斷喚醒CPU。定時(shí)的長短可以通過編程調(diào)整,以便適應(yīng)具體應(yīng)用的需要。
二、MCU為何會(huì)產(chǎn)生復(fù)位
在調(diào)試MCU時(shí),經(jīng)常會(huì)遇到復(fù)位的情況。要找到復(fù)位的原因,我們就需要了解到有哪些因素會(huì)導(dǎo)致MCU復(fù)位。
1.外部輸入復(fù)位
當(dāng)我們改變MCU的reset引腳的電平,并保持一段時(shí)間,就可以復(fù)位MCU。
外部輸入復(fù)位是重啟MCU最有效的方式了。
2.上電復(fù)位(LVD)
我們發(fā)現(xiàn)MCU不接外部復(fù)位電路,也能正常啟動(dòng)起來,這就是上電復(fù)位在發(fā)揮作用。
如下圖,當(dāng)電源電壓達(dá)到POR釋放電壓后,MCU開始內(nèi)部初始化,一定時(shí)間后開始執(zhí)行用戶程序。
當(dāng)然,如果電源電壓掉到了POR檢測電壓以下時(shí),MCU會(huì)被復(fù)位住。
3.低電壓復(fù)位(LVD)
當(dāng)我們希望MCU不在某一電壓以下運(yùn)行時(shí),開啟LVD是一個(gè)很好的選擇。
當(dāng)電源電源下降到LVD檢測電壓以下時(shí),MCU會(huì)被復(fù)位住。
當(dāng)電源電壓上升的LVD釋放電壓以上時(shí),MCU會(huì)被釋放,重啟運(yùn)行。
4.看門狗復(fù)位(WDT)
當(dāng)MCU因?yàn)楦蓴_等因素導(dǎo)致進(jìn)入死循環(huán),這個(gè)時(shí)候需要一種機(jī)制讓MCU重新啟動(dòng),這種機(jī)制就是看門狗。
在開啟看門狗后,如果不及時(shí)喂狗,那么它將毫不猶豫的復(fù)位MCU,使其重新開始執(zhí)行用戶程序。
5.系統(tǒng)時(shí)鐘復(fù)位
如果系統(tǒng)時(shí)鐘的設(shè)置,使MCU進(jìn)入死鎖狀態(tài),那么就會(huì)發(fā)生系統(tǒng)時(shí)鐘復(fù)位。
6.修整數(shù)據(jù)復(fù)位
低電壓復(fù)位(LVD)的檢測值是可以由用戶的選擇的。
根據(jù)用戶選擇,得到修整數(shù)據(jù),從而調(diào)整電阻梯以形成不同電壓的比較值。
如果這個(gè)修整數(shù)據(jù)因?yàn)樵肼暤仍虬l(fā)生改變,那么將發(fā)生修整數(shù)據(jù)復(fù)位。
以上便是此次小編帶來的“MCU”相關(guān)內(nèi)容,通過本文,希望大家對(duì)MCU的技術(shù)原理以及MCU產(chǎn)生復(fù)位的原因具備一定的了解。如果你喜歡本文,不妨持續(xù)關(guān)注我們網(wǎng)站哦,小編將于后期帶來更多精彩內(nèi)容。最后,十分感謝大家的閱讀,have a nice day!