<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    MSP430省電方式的兩種喚醒方法

    發布時間:2010-3-24 11:50    發布者:李寬
    關鍵詞: 振蕩器
    1 MSP430省電方式簡介

    MSP430以其低功耗著稱于世,它可以外接2個時鐘源——XIN、XT2IN,內部還有1個DC0振蕩器,可以產生高達8 MHz的內部時鐘。一般XT2IN的頻率為高頻,按實際應用時的要求來選用;XIN為低頻,可以是32 768Hz。XIN的用途主要是在低功耗時使系統保持“活著”。MSP430共有5種省電方式,即LPM0~4。其中,

    LPM0:CPU、MCLK關閉,SMCLK、ACLK打開,功耗79uA;
    LPM1:CPU、MCLK、DCO關閉,SMCLK、ACLK打開,功耗4luA;
    LPM2:CPU、MCLK、SMCLK、DC0關閉,DC產生器、ACLK打開,功耗17uA;
    LPM3:CPU、MCLK、SMCLK、DC0、DC產生器關閉,ACLK打開。功耗2uA;
    LPM4:CPU及所有模塊都關閉,功耗0.1 uA。

    系統在LPMO-3方式下可以被喚醒,LPM4則不能。大多數應用場合都希望MSP430平時進入睡眠狀態,降低功耗,而后定時或被外界中斷喚醒,執行相應的程序后再次進入睡眠狀態,然后再次被喚醒,其中因為LPM3是滿足要求且功耗最低的一種方式,所以它被使用得最多。本文就來討論這種方式下的睡眠與喚醒。

    2 睡眠與喚醒

    主程序循環運行的流程如圖1所示。



    每一次循環中都要判斷睡眠條件是否成立,若成立則切換時鐘,進入睡眠方式。至此,CPU不再執行任何程序,直到CPU被喚醒后才繼續執行。喚醒條件可以是定時中斷、外部I/O中斷,或串行口中斷。下面的PowerManagement代碼為進入睡眠前后和被喚醒后執行的相應操作。SerialReceiveInterrupt代碼為串行口接收到1個字符中斷后進行的相應操作,TimerBInterrupt代碼為定時器B5定時時間到后進行的相應操作。2個中斷程序中,在喚醒CPU之前均將時鐘調整到正常工作時的高速時鐘源上,設置相應的標志,然后再執行喚醒子程序clrLPM3。編譯軟件為IAR embedded workbench 1.26。





    3 睡眠時長

    如果睡眠是靠串行口中斷來喚醒,則睡眠時長為不定長,什么時候來了中斷,什么時候醒來。所以在此只討論定時器產生中斷來喚醒的情況。

    定時器B的控制寄存器的說明如圖2所示。


    圖2 定時器B的控制寄存器

    CNTLx:計數器長度,00=16位,MSP430定時器B的計數器TBR最大為0xFFFF;01=12位,TBR最大為0x0FFF,10=10位,TBR最大為0x03FF,11=8位,TBR最大為0xFF。

    TBSSELx:定時器B的時鐘源選擇,00=TBCLK,01=ACLK,10=SMCLK,11=INCLK。

    IDx:定時器B的時鐘源分頻因數,00=不分頻,01=2分頻,10=4分頻,11=8分頻。

    MCx:定時器B的計數方式選擇位,00=暫停計數,01=加計數方式,10=連續計數方式,11=加減計數方式。詳細內容請參考MSP430的數據手冊。

    前述程序中定時器B的控制字TBCTL=TBSSEL0+ID0+ID1+MC1+TBCLR。定時器B的時鐘源選擇為TBSSEL0,該值在MSP430x14x.h頭文件中的定義為0x0100,即選擇的時鐘源為ACLK(32768hz)。ID0在MSP430x14x.h定義為0x40,ID1在MSP430x14x.h定義為0x80,二者相加為0xC0,即定時器B的時鐘源為8分頻。MC1在MSP430x14x.h定義為0x20,即定時器B采用連續計數方式。

    以上時鐘選擇了ACLK為32 768,再進行8分頻,等于4 096,則定時器B的時鐘最終運行頻率為4 096 Hz,每計1個數所需時間為(1/4 096)S。又由于前面把定時器B5的計數值設為TBR-10=0xFFFF-10=0xFFF0=65 536-10=65 526,則計滿65 526數需要的時間為65 526×(1/4 096)s=15.997 s≈16 s。因此,用定時器定時到產生中斷作為喚醒源,最大睡眠時間不超過16 S。如果任務不需要這么快執行一次,可以每次醒來后先不去執行任務,而是給1個計數變量加1,然后繼續進入睡眠狀態,直到計數變量等于想要的時長后再執行。

    結語

    MSP430是一款非常好的低功耗單片機,用好它的省電功能,可以大大延長電池的壽命。因此該產品被廣泛地應用于電池供電的工控產品中。本文的代碼都是實際應用中的程序代碼,經過了實際的檢驗。

    作者:中國國土資源經濟研究院 侯志成
    來源:單片機與嵌入式系統應用 2009 (4)
    本文地址:http://www.portaltwn.com/thread-9810-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    zhao_siqing 發表于 2016-7-20 22:46:55
    不錯喲
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設計風險
    • 利用模擬開發工具生態系統進行安全電路設計
    • 更佳設計的解決方案——Microchip模擬開發生態系統
    • Cortex-M4外設 —— TC&TCC結合事件系統&DMA優化任務培訓教程
    • 貿澤電子(Mouser)專區

    相關在線工具

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷