第一條:掐斷外設命脈——關閉外設時鐘
先說最直觀的,也是工程師都比較注意的方面,就是關閉mcu的外設時鐘,對於現在市面上出現的大多數的mcu,其外設模組都對應著乙個時鐘開關。只需要開啟這個外設的時鐘,就可以正常的使用這個外設了,當然,此外設也就會產生相應的功耗;反之,如果想要讓這個外設不產生功耗,只需關閉它的時鐘即可。
第二條:讓工作節奏慢下來——時鐘不要倍頻
除了外設模組功率消耗之外,還有乙個功耗大戶需要注意一下,這就是pll和fll模組。pll和fll主要是用來對原始的時鐘訊號進行倍頻操作,從而提高系統的整體時鐘,相應的,其功耗也會被提上去。所以在進入低功耗之前,需要切換是種模式,旁路掉pll和fll模組,從而盡可能的降低mcu的功耗,等到mcu喚醒之後再把時鐘切換回去。
第三條:圍堵涓涓細流——注意i/o口的電平狀態
如果認為只要關閉外設時鐘就能夠保證外設不再耗電,那麼你就太天真了。如果io口沒有做好處理的話,它就會在暗地裡偷走功耗,而你卻渾然不知。具體原因是這樣的,一般的io的內部或者外部都會有上下拉電阻,舉個例子,如下圖所示,假如某個io口有個10kω的上拉電阻,把引腳拉到3.3v,然而當mcu進入低功耗模式的時候,此io口被設定成輸出低電平,根據歐姆定律,此引腳就會消耗3.3v/10k=0.33ma的電流,假如有
四、五個這樣的io口,那麼幾個ma就貼進去了,太可惜了。所以在進入低功耗之前,請逐個檢查io口的狀態:
如果此io口帶上拉,請設定為高電平輸出或者高阻態輸入;
如果此io口帶下拉,請設定為低電平輸出或者高阻態輸入;
總之一句話,不要把上好的電流浪費在產生熱量的功能上,咱可不靠這點溫度去暖手。
第四條:睦鄰友好合作——注意i/o與外設ic的統籌
io口的上下拉電阻消耗電流這一因素相對比較明顯,下邊咱來說乙個不明顯的因素:io口與外部ic相連時的電流消耗。假如某個io口自帶上拉,而此與io相連的ic引腳偏偏是自帶下拉的,那麼無論這個引腳處於什麼樣的電平輸出,都不可避免的產生一定的電流消耗。所以凡是遇見這一類的情況,首先需要閱讀外設ic的手冊,確定好此引腳的的狀態,做到心中有數;然後在控制mcu睡眠之前,設定好mcu的io口的上下拉模式及輸入輸出狀態,要保證一絲兒電流都不要被它消耗掉。
第五條:斷開偵錯程式連線,不要被假象所迷惑
還有一模擬較奇特,檢測出來的電流消耗很大,可實際結果是自己杞人憂天,什麼原因呢?是因為在測試功耗的時候mcu還連線著偵錯程式呢!這時候大部分電流就會被偵錯程式給擄走,平白無故的讓工程師產生極度鬱悶的心情。所以在測低功耗的時候,一定不要連線偵錯程式,更不能邊除錯邊測電流。
關於MCU低功耗的除錯注意事項
第一條 掐斷外設命脈 關閉外設時鐘 先說最直觀的,也是工程師都比較注意的方面,就是關閉mcu的外設時鐘,對於現在市面上出現的大多數的mcu,其外設模組都對應著乙個時鐘開關。只需要開啟這個外設的時鐘,就可以正常的使用這個外設了,當然,此外設也就會產生相應的功耗 反之,如果想要讓這個外設不產生功耗,只需...
kgdb除錯注意事項
0 首先提下注意事項的背景 kgdb和printk共用乙個串列埠 1設定波特率 最高支援460800波特率 arm eabi gdb vmlinux gdb set remotebaud 460800 設定使用哪個埠,作為通訊埠 gdb target remote dev ttyusb0 2 使用的...
react native真機除錯注意事項
1 我使用的手機是 紅公尺note,小公尺4真機除錯,在真機除錯的過程中遇到的常見問題是 專案已安裝到了手機上但是開啟該專案發現是白屏 2 在chrome訪問http localhost 8081 index.android.bundle出現錯誤的解決方案 transforming 100 399 ...