新手测试: 最小系统,3.3V 功耗高达15uA【恢复】
最小系统,芯片引脚不外接接 采用内部高速振荡器,关闭低速振荡后,进入STOP模式,3.3V供电情况下,测试电流15uA
代码就是论坛INT范例修改的,芯片为78F9202,代码如下,是否我哪里没注意
#pragma sfr
#pragma nop
#pragma ei
#pragma stop
#pragma halt
#pragma interrupt INTP1 isr_int1
void main(void)
{
unsigned int i;
WDTM = 0x77; /*104.86ms*/
PM2.3 = 0;
PU3.2 =1;
PMK1 = 0;
EI();
/*WDTE=0xAC;*/
LSRCM=0x01; //stop Ring-OSC
while(1)
{
NOP();
STOP();
P2.3 = ~P2.3;
i = 10000;
while(i--);
NOP();
}
}
void isr_int1(void)
{
NOP();
}
另外的汇编文件:
OPTSET CSEG AT 0080H
DB 94H
DB 0FFH
END
还有个问题,编译的时候老是提示:
RA78K0S warning W3406: Stack area less than 10 bytes
需要在哪里修改 9202只有128字节的RAM,编译器编译的时候会给标准库函数standard library自动分配一个固定空间(120字节)所以留给堆栈(stack)的空间就很小了.解决方法:
Tool--->Complier options--->Startup Routine
去掉 Using Fixed area Of Standard Library,前的勾 功耗问题已经解决,主要的方法就是将不用的端口设置成输出 按楼主的测试程序测试了9202的功耗。5V与3V3供电的STOP电流相差好大。。。(没有用到的端口设置为输出)
以下供参考
3V3 <5uA
5V 210uA
5V下的STOP电流和手册里的相差太大,手册里的是STOP模式下 低速内部振荡器停止时最大电流20uA 多点了下,多发了一个。
页:
[1]