低功耗板子測試功耗的方法


只測試了待機模式,待機模式實現系統的最低功耗。 
原理圖如下,一開始全部焊接了,其中S2用來進入待機,S1用來喚醒 
這里寫圖片描述

測試程序為:

#include "stm32f10x.h" #include "system_stm32f10x.h"v oid Sys_Standby(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外設時鍾 PWR_WakeUpPinCmd(ENABLE); //使能喚醒管腳功能 PWR_EnterSTANDBYMode(); //進入待機(standby)模式 } //系統進入待機模式 void Sys_Enter_Standby(void) { RCC_APB2PeriphResetCmd(0X01FC,DISABLE); //復位所有IO口,屏蔽這條語句也沒有看到什么影響 Sys_Standby(); } void IO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //PB6上拉輸入,對應按鍵S2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); } int main() { IO_Init(); while(1) { if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6) == 0) { Sys_Enter_Standby(); } } }

電流的測量用的是萬用表,串聯在電源的輸入端,也就是說,實際測量的電流值為電路板消耗電流。電機、喇叭、OLED-0.9寸屏這些外部器件均未接入。 
系統時鍾選擇外部8M晶振,電源為電腦USB口取電,上電后按下S2,進入待機模式,按下S1喚醒。 
上電, 正常運行電流7.9mA,待機電流205uA,待機電流比較大; 
取下DS1302芯片,正常運行電流7.9mA,待機電流10.5uA; 
再取下DS1302芯片的三個上拉電阻,和上面一樣,沒變化;(看來即便有外部上拉,在待機模式時也是不用管的,只是不知道這上拉電阻接到了外圍芯片上對外圍電路的功耗有怎樣的影響。) 
再取下AT24C02芯片模塊,正常電流7.7mA,待機電流10.5uA; 
再取下L9110S電機驅動芯片,正常電流7.7mA,待機電流10.5uA,沒有變化; 
再取下SK040G語音芯片,就剩電源和按鍵部分了,正常電流7.6mA,待機7.4uA。 
修改程序,開RTC后(選外部32.768k晶振),待機時電流為8.6uA。 
裝上OLED 0.9寸小128x64液晶屏測試了下,待機時120uA,此時若取下液晶屏,電流由120uA變到正常待機的7.4uA。

待機模式可實現 STM32的最低功耗。該模式是在 CM3 深睡眠模式時關閉電壓調節器,整個 1.8V 供電區域被斷電,PLL、HSI和 HSE振盪器也被斷電,SRAM和寄存器內容丟失,僅備份的寄存器和待機電路維持供電。

從待機模式喚醒后的代碼執行等同於復位后的執行(采樣啟動模式引腳,讀取復位向量等),電源控制/狀態寄存器(PWR_CSR)將會指示內核由待機狀態退出。

待機模式下的輸入/輸出端口狀態 
在待機模式下,所有的I/O引腳處於高阻態,除了以下的引腳: 
● 復位引腳(始終有效) 
● 當被設置為防侵入或校准輸出時的TAMPER引腳 
● 被使能的喚醒引腳 
<既然進入待機模式后各IO處於高阻態,那么所謂的IO口進待機前需配置為AIN、或者弱上拉弱下拉模式的,其實都沒必要了,但看其他的網絡文章有說需配置的,我也是弱上拉、弱下拉、模擬輸入、浮空輸入都測試了下,對於最小系統,沒看到待機電流有什么變化,也測試了下開串口、SPI口什么的,對待機電流都沒有發現影響,文檔上“進入待機模式后,只有備份的寄存器和待機電路維持供電,其他部分沒有供電”,那自然不會產生功耗,進入待機模式前就沒必要配置。對外圍硬件電路進入待機前根據情況才看是否有設置外圍芯片工作模式的必要。主芯片進入待機后,管腳都為高阻態,要看這種狀態對外圍芯片電路會帶來怎樣的影響,如果不合適就要考慮停止模式,在停止模式下,所有的I/O引腳都保持它們在運行模式時的狀態。>

對於喚醒管腳PA0(WKUP),在寄存器PWR_CSR中的第8位EWUP位有說明: 
EWUP:使能WKUP引腳 
0: WKUP引腳為通用I/O。 WKUP引腳上的事件不能將CPU從待機模式喚醒 
1:WKUP引腳用於將CPU從待機模式喚醒,WKUP引腳被強置為輸入下拉的配置(WKUP引腳上的上升沿將系統從待機模式喚醒) 
注:在系統復位時清除這一位。(即系統復位重啟后該位為0) 
也就是說進待機模式后,WKUP自動被設置為下拉輸入(下拉電阻典型值40K),無需額外配置端口A時鍾及PA0管腳功能。

正常運行時IO口的損耗及響應配置: 
以下為轉載http://blog.csdn.net/beep_/article/details/47975227 
I/O模塊損耗: 
靜態損耗: 
內部上下拉電阻損耗:這部分損耗主要取決於內部電阻的大小,一般為了降低內部電阻損耗常常需要降低電阻兩端電壓,若引腳為低電壓則采用下拉電阻,若引腳為高電壓則采用上拉電阻。 
I/O額外損耗:當引腳設為輸入I/O時,用來區分電壓高低的斯密特觸發器電路會產生一部分消耗,為此可將引腳設為模擬輸入模式。 
動態損耗:對於懸浮的引腳,由於其電壓不穩定會產生外部電磁干擾和損耗,因此必須把懸浮引腳設為模擬模式或輸出模式。 
引腳電壓的切換會對外部和內部電容負載產生動態損耗,其損耗與電壓切換頻率和負載電容有關。具體損耗值如下: 
這里寫圖片描述

在藍牙、wifi、ZigBee等低功耗組網通信和智能電子設備開發過程中,功耗的調試是至關重要的一部分,

怎樣簡易的測試功耗以方便我們對功耗的調試呢,介紹一種萬用表測試整體功耗的方法。

 

如圖:

 

萬用表、供電設備電源、pcb板子串聯在一起之后,調整萬用表到測試電流檔,如圖:

 

這樣板子的整體功耗就顯示在萬用表上了。

 

 低功耗是項目中非常重要的一部分,尤其是對於一些使用電池供電的設備。

    N76E003支持兩種低功耗模式,一種是空閑模式,一種是掉電模式,從字面意思一看就知道如果要最求最低的功耗,一定是需要使用掉電模式。在掉電模式下,作者對當前的項目應用中測試出來的最低的功耗是5uA,這個值本人認為已經是非常不錯的。針對N76E003如何實現低功耗談談個人的經驗。

    首先肯定是配置掉電模式,一條set_PD語句都可以直接將MCU進入到POWER DOWN(掉電模式),如果你准備讓你的設備從此不再醒來,只有這一條語句還是可以滿足你的要求的,因為進入到POWER DOWN模式之后所有的外設都關閉,定時器也不會再跑,如果你無法判斷你是否進入到了低功耗模式,那么有一個很簡單的方法,本人使用的是KEIL FOR C51的開發工具,進入到調試模式,如果成功進入到POWER DOWN 模式,那么在調試窗口中就會不斷的刷新"MCU POWER DOWN"直到將MCU喚醒。

    所以現在就該說說喚醒的事情。

    N76E003提供了管腳觸發中斷,可以有管腳高電平中斷觸發,低電平觸發,上升沿觸發,下降沿觸發,但是在使用這個中斷的時候一定需要注意下面的一個問題,如果你需要有多個管腳觸發中斷,那么你的IO口就一定要選對,因為,N76E003的管腳觸發必須是在同一個PORT口下才能觸發,這個可以去查看N76E003的管腳中斷的框圖以及PICON寄存器,換句話說,如果需要兩個管腳觸發中斷,假設一個是P0.1,一個是P1.0,那么你到底是使能哪一個PORT口呢?回到去看PICON寄存器的PIPS[1:0]兩位,你會發現,怎么會有四種情況,所以,從這里就可以推出,假設你先使能P0.1再使能P1.0的管腳中斷,最后P0.1的配置就被P1.0覆蓋了。所以,這個地方是需要注意的,尤其是在畫PCB板的時候,需要用到管腳中斷的IO腳,都放在同一個PORT種,比如全部放在P0口。否則之后你只能使用飛線的辦法,並且需要重新改板。

    當然N76E003還支持其他的一些喚醒,但是作者的項目中一般都只要用到按鍵喚醒和USB充電喚醒,這些都是通過管腳中斷喚醒。

我的低功耗的處理方法;

(1)關閉BOD,一個是使用clr_BOD;另一個是在下載選項中,將欠壓檢測使能去掉,兩個都做吧。

(2)關閉ADC,將ADC的使能為關閉,並且關閉ADCS位

(3)尋找到功耗最低的IO口配置的方法,首先必須確保IO口的初始的配置能保證你的系統正常的運行,然后在進入休眠之前該IO口的配置,並將其賦值為1或者0,這樣說的原因是為什么呢,因為有一些IO口是你需要正常操作的時候必須配置的模式,但是進入休眠前可以選擇更加低功耗的方式,這些都是可以根據你的硬件來進行判斷的。但是一定需要注意有上拉電阻的那個IO口嗎,優先去設置這些IO口,然后看靜態電流的大小。

(4)在喚醒之后第一時間“恢復現場”,重新初始化最開始的配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM