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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32低功耗實驗總結(jié)

          STM32低功耗實驗總結(jié)

          作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
          STM32低功耗實驗總結(jié)
          1、首先回答一個問題,STM32能不能做低功耗?
          回答是肯定的,這個是有數(shù)據(jù)支持的,我測試的STM32101CB,F(xiàn)LASH:128K,RAM:16K并且RTC工作的情況下,測試到的功耗為16uA應(yīng)該說還是相當不錯的。
          2、STM32低功耗有哪些需要注意的地方?
          一開始我測試到STM32為16uA的時候,還是非常高興的,以為真的可以做為我的應(yīng)用,我的應(yīng)用是讓MCU定時醒來干活,干一會就睡覺,可能干活的時間就幾十個毫秒??墒呛髞戆l(fā)現(xiàn)有些問題(工作在STOP模式):
          1)時鐘問題:STM32被喚醒以后的時鐘自動切換到內(nèi)部HIS RC振蕩器,大家都是知道的,RC振蕩器的精度是不高的。而且,睡覺前對于時鐘的設(shè)置都是恢復(fù)到復(fù)位狀態(tài),只是時鐘這個地方復(fù)位,其他的沒有。這也會帶來一個問題,可能你睡覺前使用的是內(nèi)部時鐘,可是睡覺后,時鐘卻變了,帶來的問題就是UART和定時器?;蛟S你想不使用PLL,就是8M,這樣醒來后的時鐘HIS也是8M,這樣雖然在時鐘上沒有差別了,但是時鐘卻不穩(wěn)定了。UART波特率肯定不能太高,否則通信會有問題。
          2)醒來時間:這個問題也是個非常大的問題,datasheet上給出的醒來時間是7us,這個可能真的不假,但是醒來,不能馬上干_你的活,為什么。初始化IO,你可能問,我不初始化不行嗎,回答應(yīng)該是否定的。因為,如果你想使用低功耗的話,睡覺前IO口都應(yīng)該設(shè)置為模擬輸入,這樣才能達到datasheet上的14uA,但是這樣也帶來一個問題,那就是初始化IO,醒來必須要初始化IO。如果你還想把時鐘切換到外部時鐘,耗時會更加長,接近200ms,因為STM32會等待外部時鐘穩(wěn)定后才能工作,然后還要在重新初始化所有IO,這個非常的耗時??赡芪抑恍枰褋?0ms,但是這些活干完就需要100ms。
          3)RTC喚醒:RTC這個也是個問題,為什么?大家需要注意的是RTC只能使用報警才能喚醒MCU,秒中斷是不可以喚醒的。并且報警中斷必須不停的設(shè)置,設(shè)置一次只生效一次,中斷完了,還需要設(shè)置下次中斷的時間。并且還有個問題,報警中斷必須等待到秒中斷到了之后才能設(shè)置,也就是正好秒寄存器更新了一次的時候設(shè)置,這就帶來一個問題,等待秒中斷。如果睡前還想再能被報警喚醒的話必須重新設(shè)置報警中斷,而且設(shè)置報警中斷的時候需要等到秒中斷才能設(shè)置新的值。這個等待的時間是不定的??赡軙装賯€毫秒。說以要空空的耗費幾百個毫秒等到秒中斷標志來設(shè)置報警中斷??赡芪业腗CU只需要執(zhí)行10ms就需要睡覺了。還是要空空的耗費掉幾百個毫秒
          總結(jié):在使用的過程中發(fā)現(xiàn)的問題,我都在上面說明了,我覺得STM32的低功耗太假,雖然在睡眠的時候性能不錯,但是醒來,和進入睡眠的設(shè)置太麻煩,耗時太多,這是個弊端,我覺得MSP430估計是做的最好的了,即使是AVR也比他好點,沒有那么麻煩。


          關(guān)鍵詞: STM32低功耗實驗總

          評論


          技術(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); })();