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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 無需更換電池的倒計時數(shù)字定時器

          無需更換電池的倒計時數(shù)字定時器

          作者: 時間:2012-02-23 來源:網(wǎng)絡(luò) 收藏
            只需 MCU、LCD、32kHz 晶振以及一個電阻即可構(gòu)成一部基本的定時器,而且只需一顆普通的鈕扣就能實現(xiàn)連續(xù)超過 10 年的工作時間。有兩大關(guān)鍵性設(shè)計可最小化功耗并盡可能延長使用壽命,一是認(rèn)真選擇,二是充分利用 MCU 的低功耗模式。

            我們之所以選擇 CR2032 鋰離子鈕扣電池,主要是因為它占地較小,可以支持便攜式應(yīng)用,放電曲線較平,可直接驅(qū)動LCD,無需補償,而且漏電極低,能夠?qū)崿F(xiàn)更長的工作時間。典型的 CR2032 額定容量為 ~200mA,工作時間可維持?jǐn)?shù)小時。為了實現(xiàn)連續(xù)工作 10 年的設(shè)計目標(biāo),平均系統(tǒng)電流消耗應(yīng)不得超過 2.28μA,電流消耗的計算方式為電池能量值除以應(yīng)用的工作壽命,如下所示:
            我們選擇MCU是由于其待機電流極低,僅為 0.8μA,并且還包含了晶體振蕩器、集成LCD驅(qū)動器和中斷驅(qū)動喚醒定時器等。3? 英寸的 LCD 顯示屏?xí)黾?1μA 的系統(tǒng)電流消耗。整個工作期間的定時器的總待機流耗如下:

            通常情況下,MCU 工作在待機模式中,時鐘晶體頻率為32kHz的計時器觸發(fā)一秒中斷,使 MCU 返回工作主循環(huán) (Mainloop),主循環(huán)采用可顯著降低軟件開銷的直接 BCD 減法以實現(xiàn)軟件寄存器的遞減。我們向軟件倒計時定時器添加十進制的 99h,實際減去的數(shù)為 1。直接 BCD 減法不僅有效,而且還可使倒計時直接顯示在 LCD 上,不用再進行耗費電流的二進制 BCD 減法運算。軟件接下來在 LCD 上顯示倒計時寄存器中的值。最后,倒計時寄存器中的值將與零相比較,以決定預(yù)編程的時段是否已經(jīng)到期,如果到期,那么將顯示超時信息。主循環(huán)要求 CPU 及片上高速振蕩器在 250μA 的電流消耗下工作。不過,由于我們在編寫軟件時已經(jīng)將循環(huán)計數(shù)減至 100 以下,也就是說,在默認(rèn)的 1MHz CPU 頻率下相當(dāng)于 100μs,因此在這樣短的工作時間內(nèi),主循環(huán)所增加的電流消耗幾乎可以忽略不計,其計算如下:

            倒計時的總電流消耗為待機與主循環(huán)電流消耗之和:

            由于平均電流消耗達到 1.8μA ,這款倒計時定時器輕易地實現(xiàn)了電流消耗為 2.28μA 以下的設(shè)計目標(biāo),從而能夠連續(xù)工作 10 年以上。既然電池使用壽命可達 10 年,那么我們在設(shè)計倒計時定時器時就可采用不可替換的電池,從而簡化了構(gòu)造,同時也降低了單位成本。由于大量 MCU 功能及引腳都未使用,因此我們還可用其添加額外特性。實施計數(shù)器所需的固件相當(dāng)小,只在 MCU 的 8k 字節(jié)閃存上占用不到 250 字節(jié)。



          評論


          相關(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); })();