TI CC2540单片机裸机低功耗 测试
关于TI的CC254x的芯片,近来做低功耗,一直降不下去,于是做了下裸机的测试 在GPIO不同状态下,得到的芯片工作电流还是有很大区别,可以借鉴! |
//裸机低功耗测试
//whble
//2017年9月21日18:02:46
#include <ioCC2540.h>
#define BV(n) (1 << (n))
//GPIO输入配置
void GPIO_IN()
{
P0SEL=0x00;
P1SEL=0x00;
P2SEL=0x00;
P0DIR=0x00;
P1DIR=0x00;
P2DIR=0x00;
}
//POWER工作模式
void PowerMode(unsigned char mode)
{
if(mode<4)
{
SLEEPCMD|=mode;
PCON=0X01;
}
else PCON=0X00;
}
//IO上拉
void GPIO_UP()
{
P0INP=0x00;
P1INP=0x00;
P2INP=0x00;
}
//IO下拉
void GPIO_DOWN()
{
P0INP=0x00;
P1INP=0x00;
P2INP=0x00;
P2INP |=BV(5);
P2INP |=BV(6);
P2INP |=BV(7);
}
//IO高阻
void GPIO_HI()
{
P0DIR = 0x00;
P1DIR = 0x00;
P2DIR = 0x00;
P0INP = 0xFF;
P1INP = 0xFC;
}
/*** UP ***/
void UP_PM1() //244uA
{
GPIO_IN();
GPIO_UP();
PowerMode(1);
}
void UP_PM2() //0.97uA
{
GPIO_IN();
GPIO_UP();
PowerMode(2);
}
void UP_PM3() //0.39uA
{
GPIO_IN();
GPIO_UP();
PowerMode(3);
}
/*** DOWN ***/
void DOWN_PM1() //236uA
{
GPIO_IN();
GPIO_DOWN();
PowerMode(1);
}
void DOWN_PM2() //0.97uA
{
GPIO_IN();
GPIO_DOWN();
PowerMode(2);
}
void DOWN_PM3() //0.39uA
{
GPIO_IN();
GPIO_DOWN();
PowerMode(3);
}
/*** HI ***/
void HI_PM1() //539uA
{
GPIO_IN();
GPIO_HI();
PowerMode(1);
}
void HI_PM2() //311uA
{
GPIO_IN();
GPIO_HI();
PowerMode(2);
}
void HI_PM3() //307uA
{
GPIO_IN();
GPIO_HI();
PowerMode(3);
}
void main(void)
{
HI_PM3();
while(1);
}
/* ·实验结果(uA)*
=======================================
| PM1 | PM2 | PM3 |
---------------------------------------
UP | 244 | 0.97 | 0.39 |
---------------------------------------
DOWN | 236 | 0.97 | 0.39 |
---------------------------------------
HI | 539 | 311 | 307 |
=======================================
数据手册
LowPowerState Typical value
PM1 270μA
PM2 1μA
PM3 0.5μA
注释:万用表测试结果
结论:在配置使用低功耗模式时,需要注意芯片的各个IO
的状态,以免造成功耗的增加
*/