嵌入式產(chǎn)品的低功耗調(diào)試是一件較麻煩的事情,因?yàn)樗壬婕暗?a class="article-link" target="_blank" href="/tag/%E7%A1%AC%E4%BB%B6/">硬件又涉及到軟件,影響因素非常多。但是又十分重要,因?yàn)樗P(guān)系到產(chǎn)品的實(shí)際使用時(shí)長。作為整個(gè)系統(tǒng)的大腦, MCU通常對(duì)功耗的影響較大,MCU的功耗分為運(yùn)行時(shí)的功耗和休眠時(shí)的功耗,運(yùn)行功耗通常為mA級(jí)別,休眠功耗通常為uA級(jí)別。整個(gè)系統(tǒng)的功耗可以用平均電流來衡量,取決于運(yùn)行時(shí)長t1及運(yùn)行電流i1、和休眠時(shí)長t2及休眠電流i2,即:i=(i1t1+i2t2)/(t1+t2)。
實(shí)際產(chǎn)品的功耗狀態(tài)可能并不是上圖中簡單的兩種狀態(tài),可能由多種不同狀態(tài)組合,但是原理是一樣的。
對(duì)于一般的應(yīng)用,因?yàn)檫\(yùn)行功耗相比休眠功耗要高出幾個(gè)數(shù)量級(jí)、且大部分時(shí)間處于休眠狀態(tài),所以對(duì)平均功耗影響較大的是運(yùn)行時(shí)長和休眠電流。
如何去觀察和測(cè)試動(dòng)態(tài)變化的電流呢?
萬用表適合測(cè)量直流,只需要選擇電流檔位將萬用表串聯(lián)接入電路即可。需要注意并不是所有的萬用表都能測(cè)uA級(jí)的電流。比如福祿克這款萬用表最小只能測(cè)到1mA電流。
但是當(dāng)電流不斷變化時(shí),萬用表就不太合適了,它沒法動(dòng)態(tài)跟蹤電流的整個(gè)變化過程,同時(shí)無法方便的查看一段時(shí)間內(nèi)的平均電流。實(shí)際調(diào)試過程中,需要看到這些才能更好的去優(yōu)化。
安捷倫有一些專用的儀器可以分析功耗,但是比較貴,個(gè)人一般不適合購買。推薦一款我最近在用的功耗分析儀,我買的型號(hào)是英加850L5這一款,價(jià)格945元,用著還不錯(cuò)。我之前還買過一款合宙的CC表,非常小巧,不過測(cè)試下來精度不是很好,就沒用了。
首先它的精度精很準(zhǔn),比如我先用它測(cè)試了一款MCU進(jìn)入到低功耗時(shí)的電流值,
和萬用表測(cè)試結(jié)果幾乎一致
它真正方便的是可以動(dòng)態(tài)的觀察整個(gè)功耗曲線,比如ADC每隔100ms喚醒一次采集4路ADC,通過搭配的上位機(jī)可以觀察到詳細(xì)的功耗曲線,各種時(shí)間統(tǒng)計(jì)下的平均功耗。
如果需要看其中的細(xì)節(jié),可以通過放大波形就可以:
還有一些比如藍(lán)牙類的應(yīng)用,可以用它來方便的查看各種不同狀態(tài)下的功耗情況
如果不用這種儀器,用示波器也是可以的,只是不如這個(gè)方便。
工欲善其事,必先利其器。如果要細(xì)致的研究功耗情況,還是最好擁有這樣一臺(tái)功耗調(diào)試工具。
關(guān)注公眾號(hào),掃碼加入嵌入式交流群: