找回密码
 立即注册
楼主: sky***

怎么降低功耗延长电池用时 | 应该使用 主时钟停振的/省电模式

[复制链接]

该用户从未签到

37

主题

78

回帖

443

积分

中级会员

积分
443
 楼主| 发表于 2024-3-19 09:29:26 | 显示全部楼层
神农鼎 发表于 2024-3-19 08:59
下面这个测试程序,只有 STC8H耗电,测试下
===板上其他外围器件拆除

测试这个程序,只有0.05mA,怪了,哪里出了问题了
回复 支持 反对 送花

使用道具 举报

该用户从未签到

37

主题

78

回帖

443

积分

中级会员

积分
443
 楼主| 发表于 2024-3-19 09:30:58 | 显示全部楼层
电子DIY小家 发表于 2024-3-19 08:59
0.83ma?你这个进入睡眠模式之前IO模式和外设使能寄存器那些都关了嘛?

IO全部设置为标准模式了呀。还有其他要设置的吗
回复 支持 反对 送花

使用道具 举报

该用户从未签到

550

主题

9328

回帖

1万

积分

管理员

积分
13928
发表于 2024-3-19 09:38:02 | 显示全部楼层
先焊个空板,只有 电源+MCU, 先调到 <1uA,
再一个器件,一个器件的 过
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    昨天 11:48
  • 签到天数: 160 天

    [LV.7]常住居民III

    17

    主题

    370

    回帖

    1313

    积分

    荣誉版主

    积分
    1313
    发表于 2024-3-19 09:38:36 | 显示全部楼层
    修改原理图吧。
    增加一个PMOS管,用空闲的IO口,进入睡眠模式之前将NTC的电源关了。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    37

    主题

    78

    回帖

    443

    积分

    中级会员

    积分
    443
     楼主| 发表于 2024-3-19 09:48:03 | 显示全部楼层
    神农鼎 发表于 2024-3-19 09:38
    先焊个空板,只有 电源+MCU, 先调到

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

    使用道具 举报

    该用户从未签到

    550

    主题

    9328

    回帖

    1万

    积分

    管理员

    积分
    13928
    发表于 2024-3-19 09:51:14 | 显示全部楼层
    你自己先拆掉外围电路,再 1个个往上加,
    这个靠你自己先做减法,然后再做加法了,
    都是这样成高手的



    先减到 < 1uA, 扎实基本功
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2935

    回帖

    6621

    积分

    超级版主

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

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

    另外,你的外围电路要关闭耗电。可以只测MCU。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    4 小时前
  • 签到天数: 61 天

    [LV.6]常住居民II

    0

    主题

    184

    回帖

    374

    积分

    中级会员

    积分
    374
    发表于 2024-3-19 10:53:55 | 显示全部楼层
    大电容有可能有漏电的,还有省电模式下所有IO口设置成高阻输入,并且关闭数字输入
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    37

    主题

    78

    回帖

    443

    积分

    中级会员

    积分
    443
     楼主| 发表于 2024-3-19 11:23:55 | 显示全部楼层
    梁工 发表于 2024-3-19 09:54
    进入睡眠命令序列:
    PCON |= 0x02;   //进入睡眠
    _nop_();   //至少3个NOP

    能不能帮我看下,下面这段代码到底有什么问题?因为只要加上这段代码就是0.83mA,去掉就是0.05mA
    1. TSTH00 = 0x3800;
    2.         TSRT        =        0;
    3.         TSCHEN1        =        0X01;                //0000 0010                TK0/P10
    4.         TSCHEN2        =        0X00;               
    5.         TSCFG1  =         0X33;        //(7<<4) + 7 ;        //开关电容工作频率 = fosc/(2*(TSCFG1[6:4]+1)), 放电时间(系统时钟周期数) 0(125) 1(250) 2(500) 3(1000) 4(2000) 5(2500) 6(5000) 7(7500) 最小3
    6.         TSCFG2  =         3;                //配置触摸按键控制器的内部参考电压(AVCC的分压比), 0(1/4)  1(1/2)  2(5/8)  3(3/4)
    7.         TSWUTC        =        0XFF;        //3S
    8.         TSCTRL        =        0X8F;        // 0X8C  把C改为F,把重复扫描1次变成4次
    9. IE2 |= 0x80;                //允许触摸按键中断
    复制代码


    点评

    单看这段初始化代码没啥问题。还要注意睡眠前处理,还要有中断函数,请参考我的程序。 // TSCHEN1 = 0x01; //TK0~TK7 仅仅允许K0唤醒 // TSCHEN2 = 0x00; //TK8~TK15 TSCTRL = (1  详情 回复 发表于 2024-3-19 12:54
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2935

    回帖

    6621

    积分

    超级版主

    积分
    6621
    发表于 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爱好者互助交流社区)
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-6 04:48 , Processed in 0.069287 second(s), 65 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表