sky999 发表于 2024-3-19 09:29:26

神农鼎 发表于 2024-3-19 08:59
下面这个测试程序,只有 STC8H耗电,测试下
===板上其他外围器件拆除

测试这个程序,只有0.05mA,怪了,哪里出了问题了

sky999 发表于 2024-3-19 09:30:58

电子DIY小家 发表于 2024-3-19 08:59
0.83ma?你这个进入睡眠模式之前IO模式和外设使能寄存器那些都关了嘛?

IO全部设置为标准模式了呀。还有其他要设置的吗

神农鼎 发表于 2024-3-19 09:38:02

先焊个空板,只有 电源+MCU, 先调到 <1uA,
再一个器件,一个器件的 过

社区闲人 发表于 2024-3-19 09:38:36

修改原理图吧。
增加一个PMOS管,用空闲的IO口,进入睡眠模式之前将NTC的电源关了。

sky999 发表于 2024-3-19 09:48:03

神农鼎 发表于 2024-3-19 09:38
先焊个空板,只有 电源+MCU, 先调到

不用,测试你上面发的那个程序,只有0.05mA,我觉得这样就可以,但是不知道0.83mA到底是程序上哪来的

神农鼎 发表于 2024-3-19 09:51:14

你自己先拆掉外围电路,再 1个个往上加,
这个靠你自己先做减法,然后再做加法了,
都是这样熬成高手的



先减到 < 1uA, 扎实基本功

梁工 发表于 2024-3-19 09:54:09

sky999 发表于 2024-3-19 08:51
试了,是PCON = 0X02;指令对吧?
可是不知道为什么,我明明在进入睡眠模式前,关闭了所有中断,
测量电流 ...

进入睡眠命令序列:
PCON |= 0x02;   //进入睡眠
_nop_();   //至少3个NOP
_nop_();
_nop_();

另外,你的外围电路要关闭耗电。可以只测MCU。

xxxevery 发表于 2024-3-19 10:53:55

大电容有可能有漏电的,还有省电模式下所有IO口设置成高阻输入,并且关闭数字输入

sky999 发表于 2024-3-19 11:23:55

梁工 发表于 2024-3-19 09:54
进入睡眠命令序列:
PCON |= 0x02;   //进入睡眠
_nop_();   //至少3个NOP


能不能帮我看下,下面这段代码到底有什么问题?因为只要加上这段代码就是0.83mA,去掉就是0.05mA
TSTH00 = 0x3800;

        TSRT        =        0;
        TSCHEN1        =        0X01;                //0000 0010                TK0/P10
        TSCHEN2        =        0X00;               
        TSCFG1=         0X33;        //(7<<4) + 7 ;        //开关电容工作频率 = fosc/(2*(TSCFG1+1)), 放电时间(系统时钟周期数) 0(125) 1(250) 2(500) 3(1000) 4(2000) 5(2500) 6(5000) 7(7500) 最小3
        TSCFG2=         3;                //配置触摸按键控制器的内部参考电压(AVCC的分压比), 0(1/4)1(1/2)2(5/8)3(3/4)
        TSWUTC        =        0XFF;        //3S
        TSCTRL        =        0X8F;        // 0X8C把C改为F,把重复扫描1次变成4次
IE2 |= 0x80;                //允许触摸按键中断

梁工 发表于 2024-3-19 12:54:58

sky999 发表于 2024-3-19 11:23
能不能帮我看下,下面这段代码到底有什么问题?因为只要加上这段代码就是0.83mA,去掉就是0.05mA




单看这段初始化代码没啥问题。还要注意睡眠前处理,还要有中断函数,请参考我的程序。

        //        TSCHEN1 = 0x01;                //TK0~TK7        仅仅允许K0唤醒
        //        TSCHEN2 = 0x00;                //TK8~TK15
                TSCTRL = (1<<3) + (1<<2) + 0;        //关闭触摸模块, 允许16位数字比较器, 允许低功耗唤醒。 B7: TSGO,B6: SINGLE,B5: TSWAIT, B4: TSWUCS, B3: TSDCEN, B2: TSWUEN, B1 B0: TSSAMP

                PCON |= 0x02;        //睡眠
                NOP(5);
        //        P_RUN_LED = ~P_RUN_LED;        //取反指示

        //        TSCHEN1 = 0xff;                //TK0~TK7        允许所有16个键
        //        TSCHEN2 = 0xff;                //TK8~TK15
                TSCTRL = (1<<7) + (1<<3) + (1<<2) + 0;        //开始扫描, 无平均, B7: TSGO,B6: SINGLE,B5: TSWAIT, B4: TSWUCS, B3: TSDCEN, B2: TSWUEN, B1 B0: TSSAMP


触摸按键唤醒,1uA/1个键/1秒唤醒,STC触摸MCU, 唤醒【主时钟停振/省电模式】
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=5167
(出处: 国芯论坛-STC全球32位8051爱好者互助交流社区)
页: 1 [2] 3
查看完整版本: 怎么降低功耗延长电池用时 | 应该使用 主时钟停振的/省电模式