<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 節(jié)電設(shè)計中掉電狀態(tài)MCU的復(fù)位喚醒速度

          節(jié)電設(shè)計中掉電狀態(tài)MCU的復(fù)位喚醒速度

          作者: 時間:2012-03-21 來源:網(wǎng)絡(luò) 收藏

          從上電的討論中可以得知,其可靠所需時間主要取決于電源電壓的上升時間;那么對于此處掉電來說,當(dāng)已沒有了電源電壓上升的問題時(對于那種掉電后電源電壓下降到2V者,則應(yīng)先將電源電壓上升到正常值后方可對RST引腳施加復(fù)位信號),復(fù)位所需時間又取決于什么?對于這一點,相關(guān)的數(shù)據(jù)手冊并未給出確切說明,只說“復(fù)位信號激活了振蕩器,復(fù)位信號必須保持有效到使振蕩器起振并達(dá)穩(wěn)定(一般少于10ms)” [1],這似乎是說該的掉電復(fù)位時間約為數(shù)毫秒。然而,該數(shù)據(jù)手冊提供的相關(guān)內(nèi)部電路框圖[1]以及筆者所作的實際測試均表明,情況并非完全如此。

          從文獻(xiàn)[1]中與掉電方式有關(guān)的內(nèi)部電路框圖可見,片內(nèi)振蕩器的起振和向后傳輸均受控于掉電控制位PD,因此掉電復(fù)位時必定是先進(jìn)行片內(nèi)初始的設(shè)置(其中包含PD位清零),然后才能使片內(nèi)振蕩器起振并后傳。同時,也正由于片內(nèi)振蕩器的起振是由片內(nèi)初態(tài)進(jìn)行控制的,所以片內(nèi)初態(tài)一旦可靠建立,片外復(fù)位信號就沒有必要一直保留到使片內(nèi)振蕩器振幅趨于穩(wěn)定。以下測試證實了這一點。

          圖二給出了AT89C51在掉電復(fù)位時的實際測試結(jié)果,此時其片內(nèi)振蕩器的片外定時元件為4MHz的陶瓷諧振器。

          28.gif
          圖二 AT89C51在掉電下復(fù)位時的起振時序

          由圖二可見,當(dāng)復(fù)位信號前沿到來時,片內(nèi)振蕩器立即在1/2VCC(2.5V)左右處開始起振。在起始的3us時段內(nèi)其振幅很小,4us~9us期間其振幅迅速增加,到10us~15us內(nèi)則漸趨穩(wěn)定。由此可得以下幾點結(jié)論:首先,片內(nèi)振蕩器的起振大大快于數(shù)據(jù)手冊[1]中所說的“一般少于10ms”。其次,當(dāng)復(fù)位信號到來時,片內(nèi)振蕩器并未象上電復(fù)位那樣等了一段時間以后再起振,而是立即起振。這是由于在掉電復(fù)位前,電源電壓依然存在,使得片內(nèi)振蕩器的某些靜態(tài)工作點仍然維持著,所以一旦復(fù)位操作清除了掉電控制位PD,振蕩器便立即在工作點處(1/2VCC=2.5V)開始起振,顯然比上電復(fù)位時省掉了一段逐步建立工作點所需的啟動時間。

          為了確切了解AT89C51的可靠復(fù)位喚醒要求片外所加的復(fù)位信號至少應(yīng)保持多少寬度,筆者以另一發(fā)出的窄脈沖作為被測的復(fù)位信號,并不斷改變其寬度,再以觀察被測MCU的一個I/O引腳電平的變化來判斷是否可靠地完成了復(fù)位喚醒操作,即在MCU進(jìn)入掉電之前先將該引腳用指令置為低電平,隨后掉電復(fù)位喚醒發(fā)生時的片內(nèi)初態(tài)設(shè)置操作又會把該引腳強(qiáng)制置為高電平,最后,由掉電復(fù)位喚醒結(jié)束后的第一條指令再將其立即拉為低電平。測試結(jié)果顯示,當(dāng)外加的復(fù)位信號寬度為1us~6us時,被測MCU有時不能可靠復(fù)位,具體表現(xiàn)為該I/O引腳被復(fù)位的初態(tài)設(shè)置操作強(qiáng)制拉高后又可能隨著復(fù)位信號的撤除而立即下降。而當(dāng)外加的復(fù)位信號寬度大于8us后,被測MCU就能可靠復(fù)位喚醒并在外加復(fù)位信號撤除后能順利開始執(zhí)行程序。這個結(jié)果表明:①復(fù)位時MCU的端口引腳跟隨復(fù)位信號的高電平前沿立即變高,滯后小于1us;②復(fù)位喚醒時MCU的片內(nèi)初態(tài)的設(shè)置領(lǐng)先于片內(nèi)振蕩器的起振。③復(fù)位喚醒時外加的復(fù)位信號寬度最小只需幾個us即可,不必等到振蕩器振幅達(dá)到最大就可使MCU開始執(zhí)行指令(上述8us處的振蕩幅度大約為160mVpp),這可能是因為在片內(nèi)振蕩器后面有一級分頻器,將振蕩器在1/2VCC處的小幅度振蕩整形為滿幅度時鐘信號了。

          由此可知,掉電狀態(tài)下MCU的復(fù)位喚醒雖與片內(nèi)振蕩器有關(guān),但其喚醒時間并不等同于片內(nèi)振蕩器從起振到穩(wěn)定的時間。若想獲得最快的復(fù)位喚醒,還可考慮使用片外振蕩器,以便MCU的掉電操作對振蕩器不構(gòu)成影響。

          對于非MCS51的其它MCU系列,其掉電喚醒的復(fù)位操作和時序大致與上述相同,只是具體時間參數(shù)上可能有所差異。以MICROCHIP的 PIC12F508為例[5],其片內(nèi)主管復(fù)位延時的定時器DRT的延時值分為兩類,一類是上電復(fù)位時的延時值為18ms,另一類是采用片內(nèi)RC振蕩器或片外時鐘輸入時用作復(fù)位喚醒的延時值為10us。稍顯不足的是,該文檔還聲稱當(dāng)采用片外晶振時其DRT的延時值仍為18ms,這顯然與本文所測數(shù)據(jù)相差甚遠(yuǎn)。

          2.結(jié)束語

          能否以硬件復(fù)位對MCU實行快速喚醒是妨礙采用掉電方式進(jìn)行MCU的一道門檻,其關(guān)鍵在于MCU掉電時的復(fù)位喚醒時間是否可知、是否夠快。本文工作就這兩點給出了答案。結(jié)論是明確的:采用片內(nèi)振蕩器時,掉電狀態(tài)下的復(fù)位喚醒時間小于片內(nèi)振蕩器從起振到穩(wěn)定的時間(且遠(yuǎn)小于上電復(fù)位時間),采用陶瓷諧振器時,該時間可快至10微秒左右,若想進(jìn)一步加快則可采用片外時鐘方案。

          參考文獻(xiàn)
          [1] MCS 51 MICROCONTROLLER FAMILY USER’S MANUAL?!ww6.informatik.tu-muenchen.de/lehre/vorlesungen/script_ez_2000 /intel-mcs51.pdf。1994,2。P.3-26~P.3-29
          [2] Oscillators for Microcontrollers。www.intel.com/design/mcs51/applnots/23065901.pdf。1983,6。P. 3~P.7
          [3] 孫涵芳、徐愛卿。MCS-51/96系列單片機(jī)原理及應(yīng)用[M]。北京:北京航空航天大學(xué)出版社。1988,2。P.77
          [4] 何立民。單片機(jī)高級教程:應(yīng)用與[M]。北京:北京航空航天大學(xué)出版社。2000,8。P.109

          分頻器相關(guān)文章:分頻器原理

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();