• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Atmega48單片機的低功耗系統設計

    基于Atmega48單片機的低功耗系統設計

    作者:西安科技大學機械工程學院 郝迎吉 文微 王燕 時間:2008-03-25 來源:電子產品世界 收藏

      隨著微電子技術和計算機技術的發展,尤其是微機在各個領域的普遍應用,功耗、成本、體積以及可靠性等指標均成為設計者所關注的重要問題。尤其是在由電池供電的設備中,如何降低設備功耗成為設計的首要任務。本文中以ATMEL公司的為例,介紹了設計的一般方法。

    本文引用地址:http://www.czjhyjcfj.com/article/80621.htm

      

      系統設計首要是選擇合適的單片機。單片機是一款8位微控制器,具有高性能、的顯著特點。由于采用RISC精簡指令集結構,其指令集大多為單周期指令,具有高速運行的特點。3V供電時,未使能內部看門狗的情況下,Atmega48的典型掉電電流小于1uA。具體工作電流見圖1。而且該單片機在1.8V~5.5V的電壓范圍內均能正常工作,片內自帶4K字節的flash、256字節的E2PROM,以及512字節SRAM;并內置6~8路10位AD轉換器、看門狗、3個16位的定時/計數器、具有獨立振蕩器的實時計數器RTC 和6路PWM輸出。另外還具有五種休眠模式,引腳變化及中斷可喚醒MCU。

      低功耗設計方法

      以單片機為核心構成的系統,其系統的總能耗是由單片機能耗及其外圍電路能耗共同構成。為了降低整個系統的功耗,除了要降低單片機自身的運行功耗外,還要降低外圍電路的功耗。對外圍電路而言,首先選擇低電壓低功耗器件,如用LMV324代替傳統的LM324,SP3223EEY代替MAX232等。其次,CMOS器件輸入引腳不能懸空。如果輸入引腳懸空,在輸入引腳上很容易積累電荷,產生較大的感應電動勢,使引腳電位處于0至1間的過渡區域。另外,單片機外圍電路應盡量避免采用阻性元件。

      Atmega48單片機的功耗主要與系統頻率,工作模式,電源電壓及外圍模塊有關。由圖1和圖2可知,Atmega48單片機的工作電流與其工作頻率、工作電壓成正比。

      降低系統時鐘頻率

      功耗與工作頻率有關。工作頻率增加時,功耗也線性的增加。系統工作頻率的降低,電路的延時增加導致系統性能下降,因此在利用頻率降低系統功耗的時候,要在能耗和速度之間進行權衡。

      Atmega48的時鐘源可以選擇片內的RC振蕩器,也可以是來自外部時鐘。片內RC振蕩器提供了可校準的8M時鐘和128k低功率振蕩器。外部時鐘可以選用低功率晶體,滿振幅晶體和低頻晶振。通過編程Flash熔絲位,可以選擇所需的時鐘源。      
       
      ATmega48可以通過設置時鐘預分頻寄存器CLKPR來得到分頻的系統時鐘。當需要的系統處理能力比較低時可以利用這個特性來降低功耗。預分頻對所有時鐘源都適用,并且影響CPU 及所有同步外設的時鐘頻率。

      單片機的時鐘系統主要包括:CPU時鐘,Flash時鐘,I/O時鐘,異步定時器時鐘和ADC時鐘。在大多數情況下,這些時鐘并不需要同時工作。時鐘功耗抑制寄存器PRR 提供終止單獨外設時鐘的方法以降低功耗。通過設置功耗抑制寄存器PRR,將不使用的外圍模塊關掉,以降低芯片功耗。例如,如果不使用ADC模塊,可以向功耗抑制寄存器PRR中的PRADC位寫“1”,關閉芯片的ADC模塊。同時,為了降低功耗,可以通過使用不同的休眠模式來禁止無需工作的模塊。

      單片機的休眠模式

      休眠模式可以使應用程序關閉MCU 中沒有使用的模塊,從而降低功耗。AVR 具有不同的休眠模式,允許用戶根據自己的應用要求實施剪裁。Atmega48單片機具有五種休眠模式:空閑模式、ADC 噪聲抑制模式、掉電模式、省電模式和等待模式。使用內部128 kHz RC 振蕩器,其工作電流見表2。在此以空閑模式為例說明如何根據需要選擇最低功耗的運行模式。因為這種休眠模式只停止clkCPU 和clkFLASH,而其他時鐘繼續工作。所以當用SLEEP指令使MCU進入空閑模式時,CPU停止運行,而 USART、模擬比較器、ADC、兩線串行接口、定時器/ 計數器、看門狗和中斷系統則繼續工作。如果我們只需要其中一種或幾種模塊運行,還可以啟用功耗抑制寄存器關閉其他模塊來降低功耗。具體程序如下:

      ldi r16,$e7          
      sts prr,r16      ;關閉未用外設
      ldi r16,$01
      out smcr,r16     ;進入掉電模式
      wait:
      sleep
      nop
      rjmp wait 

      值得注意的是在休眠模式,要使端口引腳配置為最小的功耗模式,必須避免引腳懸空和防止模擬輸入電平接近VCC/2時以消耗太多的電流。當引腳未被使用,將引腳配置為輸入,并使能內部上拉,給引腳一個確定的電平。

      電源電壓的選擇

      CMOS 邏輯電路中的電流與電源電壓成正比,功耗與電源電壓的平方成正比,因此降低器件的供電電壓可以減小功耗。芯片所要求的電源電壓為1.8-5.5V。由于供電電壓與芯片能工作的最大頻率有關聯,因此應在頻率滿足處理速度的要求下,盡可能采用低的電源電壓。

      典型設計

      圖3是以ATmega48為核心的定時控制系統框圖。該系統是油井工具投放機的控制部分。設備勻速從地面向下投放,延時時間控制設備投放的深度。延時時間一到,電機馬上啟動,使設備投放機停止運行。延時時間由多圈線位器設定。設定值經內部AD轉換后,在液晶上顯示。液晶采用北京青云公司的LCM061A模塊。該液晶能在2.7V-5.2V內工作,且工作電流小。為了加強驅動能力,PB1、PB2并聯使用,并通過TIP122直接驅動直流電機??紤]到系統時鐘越低,功耗越低,并結合本系統的實際功能要求,時鐘源采用內部128k低頻時鐘。在2節500mA可充電電池供電的情況下,系統能可靠的運行14天。

      主程序流程圖如圖4所示。在主程序中,在程序初始化時,關閉未用到的外設模塊,避免消耗過多的電流。IO口初始化時,PD口為輸入口,使能內部上拉。所有懸空的IO口都使能內部上拉,使之有確定的電平。當檢測到有按鍵按下時,單片機禁用對應IO口的內部上拉,避免內部上拉電阻消耗不必要的電流。(ATmega48的引腳上拉電阻為30K~60K之間。)

      在單片機完成初始化后,單片機進入空閑模式,CPU停止運行,定時器/ 計數器和中斷系統繼續工作。此時,實測消耗電流為0.14mA。當定時時間一到,CPU即被喚醒,執行響應的程序后繼續進入空閑模式。

      結語

      本文介紹了ATmega48單片機低功耗特性,并通過具體實例,說明了在硬件電路設計和編制程序時,應注意的問題和低功耗設計方法,具有一定的參考價值。■

      參考文獻:

      1.  Atmel Corporation.  ATmega48/88/168 Preliminary Summary [EB/OL].www.atmel.com/literature,2005

      2.  陸希玉,唐昆,催慧娟. 基于嵌入式系統的低功耗設計[J]. 微型計算機信息,2005(7-2)

      3.  陳春鴻. CMOS集成電路的功耗分析及低功耗設計技術[J]. 浙江大學學報,1998(9)



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 常州市| 射阳县| 清远市| 仪征市| 航空| 宜君县| 满城县| 斗六市| 台南市| 友谊县| 齐河县| 肥西县| 固阳县| 当阳市| 淮南市| 奎屯市| 东乡| 莱西市| 黎城县| 元阳县| 台湾省| 茌平县| 桃园市| 宿迁市| 易门县| 芮城县| 星座| 独山县| 蒙山县| 胶南市| 宝丰县| 开鲁县| 山阴县| 河东区| 富民县| 沾化县| 玛曲县| 巴林左旗| 屯昌县| 普兰店市| 千阳县|