国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

您好,歡迎進(jìn)入深圳市穎特新科技有限公司官方網(wǎng)站!

您現(xiàn)在的位置:首頁(yè) 新聞資訊 >> 新聞?lì)^條 >> 低功耗板子測(cè)試功耗的方法
新聞資訊
NEWS INFORMATION

低功耗板子測(cè)試功耗的方法

發(fā)布時(shí)間:2019-05-22

只測(cè)試了待機(jī)模式,待機(jī)模式實(shí)現(xiàn)系統(tǒng)的最低功耗。 
原理圖如下,一開(kāi)始全部焊接了,其中S2用來(lái)進(jìn)入待機(jī),S1用來(lái)喚醒 
這里寫(xiě)圖片描述

測(cè)試程序?yàn)椋?/p>

#include "stm32f10x.h"
#include "system_stm32f10x.h"v

oid Sys_Standby(void)
{  
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外設(shè)時(shí)鐘
    PWR_WakeUpPinCmd(ENABLE);  //使能喚醒管腳功能
    PWR_EnterSTANDBYMode();   //進(jìn)入待機(jī)(standby)模式          
}

//系統(tǒng)進(jìn)入待機(jī)模式
void Sys_Enter_Standby(void)
{            
    RCC_APB2PeriphResetCmd(0X01FC,DISABLE); //復(fù)位所有IO口,屏蔽這條語(yǔ)句也沒(méi)有看到什么影響
    Sys_Standby();
}

void IO_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);    

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; //PB6上拉輸入,對(duì)應(yīng)按鍵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();
        }
    }
}

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

待機(jī)模式可實(shí)現(xiàn) STM32的最低功耗。該模式是在 CM3 深睡眠模式時(shí)關(guān)閉電壓調(diào)節(jié)器,整個(gè) 1.8V 供電區(qū)域被斷電,PLL、HSI和 HSE振蕩器也被斷電,SRAM和寄存器內(nèi)容丟失,僅備份的寄存器和待機(jī)電路維持供電。

從待機(jī)模式喚醒后的代碼執(zhí)行等同于復(fù)位后的執(zhí)行(采樣啟動(dòng)模式引腳,讀取復(fù)位向量等),電源控制/狀態(tài)寄存器(PWR_CSR)將會(huì)指示內(nèi)核由待機(jī)狀態(tài)退出。

待機(jī)模式下的輸入/輸出端口狀態(tài) 
在待機(jī)模式下,所有的I/O引腳處于高阻態(tài),除了以下的引腳: 
● 復(fù)位引腳(始終有效) 
● 當(dāng)被設(shè)置為防侵入或校準(zhǔn)輸出時(shí)的TAMPER引腳 
● 被使能的喚醒引腳 
<既然進(jìn)入待機(jī)模式后各IO處于高阻態(tài),那么所謂的IO口進(jìn)待機(jī)前需配置為AIN、或者弱上拉弱下拉模式的,其實(shí)都沒(méi)必要了,但看其他的網(wǎng)絡(luò)文章有說(shuō)需配置的,我也是弱上拉、弱下拉、模擬輸入、浮空輸入都測(cè)試了下,對(duì)于最小系統(tǒng),沒(méi)看到待機(jī)電流有什么變化,也測(cè)試了下開(kāi)串口、SPI口什么的,對(duì)待機(jī)電流都沒(méi)有發(fā)現(xiàn)影響,文檔上“進(jìn)入待機(jī)模式后,只有備份的寄存器和待機(jī)電路維持供電,其他部分沒(méi)有供電”,那自然不會(huì)產(chǎn)生功耗,進(jìn)入待機(jī)模式前就沒(méi)必要配置。對(duì)外圍硬件電路進(jìn)入待機(jī)前根據(jù)情況才看是否有設(shè)置外圍芯片工作模式的必要。主芯片進(jìn)入待機(jī)后,管腳都為高阻態(tài),要看這種狀態(tài)對(duì)外圍芯片電路會(huì)帶來(lái)怎樣的影響,如果不合適就要考慮停止模式,在停止模式下,所有的I/O引腳都保持它們?cè)谶\(yùn)行模式時(shí)的狀態(tài)。>

對(duì)于喚醒管腳PA0(WKUP),在寄存器PWR_CSR中的第8位EWUP位有說(shuō)明: 
EWUP:使能WKUP引腳 
0: WKUP引腳為通用I/O。 WKUP引腳上的事件不能將CPU從待機(jī)模式喚醒 
1:WKUP引腳用于將CPU從待機(jī)模式喚醒,WKUP引腳被強(qiáng)置為輸入下拉的配置(WKUP引腳上的上升沿將系統(tǒng)從待機(jī)模式喚醒) 
注:在系統(tǒng)復(fù)位時(shí)清除這一位。(即系統(tǒng)復(fù)位重啟后該位為0) 
也就是說(shuō)進(jìn)待機(jī)模式后,WKUP自動(dòng)被設(shè)置為下拉輸入(下拉電阻典型值40K),無(wú)需額外配置端口A時(shí)鐘及PA0管腳功能。

正常運(yùn)行時(shí)IO口的損耗及響應(yīng)配置: 
以下為轉(zhuǎn)載http://blog.csdn.net/beep_/article/details/47975227 
I/O模塊損耗: 
靜態(tài)損耗: 
內(nèi)部上下拉電阻損耗:這部分損耗主要取決于內(nèi)部電阻的大小,一般為了降低內(nèi)部電阻損耗常常需要降低電阻兩端電壓,若引腳為低電壓則采用下拉電阻,若引腳為高電壓則采用上拉電阻。 
I/O額外損耗:當(dāng)引腳設(shè)為輸入I/O時(shí),用來(lái)區(qū)分電壓高低的斯密特觸發(fā)器電路會(huì)產(chǎn)生一部分消耗,為此可將引腳設(shè)為模擬輸入模式。 
動(dòng)態(tài)損耗:對(duì)于懸浮的引腳,由于其電壓不穩(wěn)定會(huì)產(chǎn)生外部電磁干擾和損耗,因此必須把懸浮引腳設(shè)為模擬模式或輸出模式。 
引腳電壓的切換會(huì)對(duì)外部和內(nèi)部電容負(fù)載產(chǎn)生動(dòng)態(tài)損耗,其損耗與電壓切換頻率和負(fù)載電容有關(guān)。具體損耗值如下: 
這里寫(xiě)圖片描述

在藍(lán)牙、wifi、ZigBee等低功耗組網(wǎng)通信和智能電子設(shè)備開(kāi)發(fā)過(guò)程中,功耗的調(diào)試是至關(guān)重要的一部分,

怎樣簡(jiǎn)易的測(cè)試功耗以方便我們對(duì)功耗的調(diào)試呢,介紹一種萬(wàn)用表測(cè)試整體功耗的方法。

 

如圖:

 

萬(wàn)用表、供電設(shè)備電源、pcb板子串聯(lián)在一起之后,調(diào)整萬(wàn)用表到測(cè)試電流檔,如圖:

 

這樣板子的整體功耗就顯示在萬(wàn)用表上了。

 

 低功耗是項(xiàng)目中非常重要的一部分,尤其是對(duì)于一些使用電池供電的設(shè)備。

    N76E003支持兩種低功耗模式,一種是空閑模式,一種是掉電模式,從字面意思一看就知道如果要最求最低的功耗,一定是需要使用掉電模式。在掉電模式下,作者對(duì)當(dāng)前的項(xiàng)目應(yīng)用中測(cè)試出來(lái)的最低的功耗是5uA,這個(gè)值本人認(rèn)為已經(jīng)是非常不錯(cuò)的。針對(duì)N76E003如何實(shí)現(xiàn)低功耗談?wù)剛(gè)人的經(jīng)驗(yàn)。

    首先肯定是配置掉電模式,一條set_PD語(yǔ)句都可以直接將MCU進(jìn)入到POWER DOWN(掉電模式),如果你準(zhǔn)備讓你的設(shè)備從此不再醒來(lái),只有這一條語(yǔ)句還是可以滿足你的要求的,因?yàn)檫M(jìn)入到POWER DOWN模式之后所有的外設(shè)都關(guān)閉,定時(shí)器也不會(huì)再跑,如果你無(wú)法判斷你是否進(jìn)入到了低功耗模式,那么有一個(gè)很簡(jiǎn)單的方法,本人使用的是KEIL FOR C51的開(kāi)發(fā)工具,進(jìn)入到調(diào)試模式,如果成功進(jìn)入到POWER DOWN 模式,那么在調(diào)試窗口中就會(huì)不斷的刷新"MCU POWER DOWN"直到將MCU喚醒。

    所以現(xiàn)在就該說(shuō)說(shuō)喚醒的事情。

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

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

我的低功耗的處理方法;

(1)關(guān)閉BOD,一個(gè)是使用clr_BOD;另一個(gè)是在下載選項(xiàng)中,將欠壓檢測(cè)使能去掉,兩個(gè)都做吧。

(2)關(guān)閉ADC,將ADC的使能為關(guān)閉,并且關(guān)閉ADCS位

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

(4)在喚醒之后第一時(shí)間“恢復(fù)現(xiàn)場(chǎng)”,重新初始化最開(kāi)始的配置。

聯(lián)系方式0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08