專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

AVR單片機(jī)超低功耗的進(jìn)階經(jīng)驗(yàn)

作者:huqin   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年11月22日   【字體:

  四年多前整過(guò)一次低功耗的,當(dāng)時(shí)調(diào)試也是OK的,程序基本上是移植過(guò)來(lái)了。
這次重新改動(dòng)一下,做了,本以為搗騰一天差不多了,結(jié)果又搗騰了兩天。
硬件平臺(tái)是使用9V的電池,系統(tǒng)穩(wěn)壓到5V,普通的穩(wěn)壓IC肯定不行的,必須是LDO型的IC。LDO選的是國(guó)產(chǎn)的BL8061,INPUT VOLTAGE是2-16V,OUTPUT CURRENT:250mA,典型的消耗是2uA,BL8060輸入電壓是1.5-14V,最大電流時(shí)200mA,功耗是1uA。穩(wěn)壓前后的電解電容1uF。因?yàn)榘遄幼龅氖琴N片的,貼片的手頭現(xiàn)成的只有10V/22uF,偶加在穩(wěn)壓后,因?yàn)?V電池空載電壓就接近10V了,穩(wěn)壓前偶弄了個(gè)普通的雜牌鋁電解,結(jié)果第一晚就被這顆害死了。
第一晚折騰了倆小時(shí),發(fā)現(xiàn)咋掉電休眠模式后電流還是800多uA,記得以前只有1uA左右的,咋回事?因?yàn)榻?jīng)過(guò)時(shí)間比較長(zhǎng)了,重新看了有關(guān)休眠的PDF文檔資料,完了,自說(shuō)自話的加了句關(guān)閉全部外設(shè)的命令,就是功耗抑制寄存器PRR全部置位,發(fā)現(xiàn)電流還是大,第二天早上,偶調(diào)試了下,電流還是大,后來(lái)想想會(huì)不會(huì)這種垃圾雜牌鋁電解漏電流太大,結(jié)果拆掉,休眠時(shí)的總功耗就3uA,其實(shí),掉電休眠后,AVR的M48PA總消耗電流大約是0.5uA,LDO1uA左右,外圍還有個(gè)AD欠壓檢測(cè)電流,大約消耗1uA左右,整體全部加起來(lái)大約就是2.5-3uA之間。達(dá)到預(yù)期目的。
接著,休眠喚醒后,發(fā)現(xiàn)鍵盤(pán)工作老不正常,查看原來(lái)的程序,除了掃描的矩陣陣列I/O口變化了,其他沒(méi)啥變化啊,反復(fù)比對(duì),測(cè)試還是不行,果斷弄個(gè)不休眠的測(cè)試程序,移植過(guò)來(lái)后,鍵盤(pán)操作完全正常,知道問(wèn)題百分百出在休眠的那些設(shè)置上,果斷查。查休眠后的一些寄存器設(shè)置,是否開(kāi)啟了,以前第一次弄的時(shí)候吃過(guò)DIDR0,DIDR1的虧,看看休眠喚醒后都開(kāi)啟復(fù)位了啊。試了幾次,不行;再看休眠前關(guān)閉的那些設(shè)置,發(fā)現(xiàn)就多了個(gè)PRR設(shè)置,屏蔽掉后,發(fā)現(xiàn)完全正常了。

 休眠時(shí),偶全部置位1,休眠后,偶全部設(shè)置為0,恢復(fù),但是發(fā)現(xiàn)鍵盤(pán)執(zhí)行就是不正常,屏蔽掉,鍵盤(pán)程序執(zhí)行正常了,而且消耗的電流基本上沒(méi)差別,就差0.2-0.3uA左右。待有時(shí)間再多調(diào)試下看看到底是何種原因?qū)е翽RR未恢復(fù)正常。
休眠電流要最。旱綦娔J奖仨毜,然后能關(guān)閉的功能全部關(guān)閉,關(guān)閉BOD檢測(cè),關(guān)閉看門(mén)狗,電壓越低越好,1.8V,頻率越低越好。
省電模式因?yàn)殚_(kāi)啟了TIMER2定時(shí)器,電流會(huì)大十幾個(gè)uA。 

關(guān)閉窗口

相關(guān)文章