whimsy 发表于 2008-11-14 16:41:17

新手测试: 最小系统,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

需要在哪里修改

cm123 发表于 2008-12-30 15:42:31

9202只有128字节的RAM,编译器编译的时候会给标准库函数standard library自动分配一个固定空间(120字节)所以留给堆栈(stack)的空间就很小了.解决方法:

Tool--->Complier options--->Startup Routine

去掉 Using Fixed area Of Standard Library,前的勾

whimsy 发表于 2008-12-26 22:10:01

功耗问题已经解决,主要的方法就是将不用的端口设置成输出

benladn911 发表于 2012-8-8 09:41:21

按楼主的测试程序测试了9202的功耗。5V与3V3供电的STOP电流相差好大。。。(没有用到的端口设置为输出)

以下供参考
3V3   <5uA
5V   210uA

5V下的STOP电流和手册里的相差太大,手册里的是STOP模式下 低速内部振荡器停止时最大电流20uA

benladn911 发表于 2012-8-8 09:41:37

多点了下,多发了一个。
页: [1]
查看完整版本: 新手测试: 最小系统,3.3V 功耗高达15uA【恢复】