找回密码
 立即注册
查看: 147|回复: 9

STC8H8K64U进入掉电模式后如何设置IO让电流 <1ua左右 | 已解决

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-10-21 09:44:12
已绑定手机

1

主题

6

回帖

23

积分

新手上路

积分
23
发表于 2025-10-20 21:33:16 | 显示全部楼层 |阅读模式
我使用的型号是STC8H8K64U 的,使用的是I/O端口中断掉电唤醒。
但是我在进入掉电模式后电流达到了0.5ma,
想请教一下各位如何把这个电流降下去


截图202510202131032702.jpg
截图202510202131527596.jpg

对应按键的IO使能端口中断

对应按键的IO使能端口中断
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-10-21 09:44:12
已绑定手机

1

主题

6

回帖

23

积分

新手上路

积分
23
发表于 2025-10-20 21:36:13 | 显示全部楼层
void main(void)
{
  P_SW2 |= 0x80;                                  //允许访问扩展的特殊寄存器,XFR

  //PX : 数据寄存器  P0,P1,P2....
  //PXM0 & PXM1 端口模式寄存器  M1:0  M0: 0  准双向口  弱上拉
  //PXM0 & PXM1 端口模式寄存器  M1:0  M0: 1  推挽输出  强上拉输出
  //PXM0 & PXM1 端口模式寄存器  M1:1  M0: 0  高阻输入  电阻既不能流入也不能流出
  //PXM0 & PXM1 端口模式寄存器  M1:1  M0: 1  开漏模式  可以读取外部状态也可对外输出
  //PXPU : 上拉使能寄存器          0:禁止上拉  1:使能上拉
  //PXNCS:施密特触发控制寄存器
  //P0IE : 数字信号输入使能寄存器  0:禁止数字输入   1:使能数字信号输入
  //PXINTE:端口中断使能寄存器
  //PXINTF:端口中断标志寄存器
  //PXIM0 &PXIM1 端口中断模式寄存器   M1:0   M0:0   下降沿中断  支持掉电唤醒
  //PXIM0 &PXIM1 端口中断模式寄存器   M1:0   M0:1   上升沿中断  支持掉电唤醒
  //PXIM0 &PXIM1 端口中断模式寄存器   M1:1   M0:0   低电平中断  不支持掉电唤醒
  //PXIM0 &PXIM1 端口中断模式寄存器   M1:1   M0:1   高电平中断  不支持掉电唤醒
  //PXWKUE:端口中断掉电唤醒使能寄存器:  0:关闭端口中断掉电唤醒功能   1:使能端口中断掉电唤醒功能
  
//  GPIO_Init();  //GPIO初始化函数
  WDT_CONTR = 0x00;                       //关闭看门狗使能
START:
   
   EA = 0;        //全局中断允许
   
   
   GPIO_Init();  //GPIO初始化函数
  
   EA = 1;        //全局中断允许
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    PCON = 0x02;
    _nop_();
    _nop_();
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:226
  • 最近打卡:2025-11-02 10:12:27

792

主题

1万

回帖

2万

积分

管理员

积分
20149
发表于 2025-10-20 23:05:48 | 显示全部楼层
省电模式,I/O口如何设置才省电进入主时钟停振/省电模式前:
===主时钟停振/省电模式,STC8/STC32系列如何省电
1,  不用的I/O口,就是浮空的I/O, 设置为高阻输入,并关闭数字输入,也不怕短路了

     但不是所有的芯片,所有的I/O都设计了【禁止数字输入寄存器】,
     具体要看 特殊功能寄存器 章节 具体型号,有没有这个【禁止数字输入寄存器】
     没有,那 不用的I/O口,建议设置为准双向口并对外输出高
2,用作模拟输入的口,一般是配置成高阻输入,也必须关闭数字输入
     ===指用作 ADCx外部模拟输入的I/O
     ===
指用作 比较器外部模拟输入的I/O
     ===省电模式时,他外部来个 1.5V 附近变化的电压,
             数字部分不关闭数字输入可能就会产生额外的功耗
3,用作高阻输入的I/O,  也必须关闭数字输入
     如你I/O外部的输入电平Vx在   【不是逻辑高的电压,也不是逻辑低的电压
     这时内部数字输入电路就会有翻转,就会有几十uA的功耗
     关闭数字输入,就不会有功耗


4,I/O外部是高电平的,你如要工作在输出,你就置高
      I/O外部是低电平的,你如要工作在输出,你就置低
     否则两边的电平电位不同,就会水往低处走,有电流流进或流出

     如你I/O外部的输入电平Vx在   MCU_Gnd < Vx < MCU_VCC
     这时工作在输出,也会有电流流动
     所以进省电模式前,必须改设置为高阻输入,并关闭数字输入

5,如有启动RTC/实时时钟功能,在省电时工作的MCU, 【P1.7/XTALI, P1.6/XTALO】
     【P1.7/XTALI, P1.6/XTALO】- 接外部32768-RTC晶振,

      这2个口上电默认是高阻输入,可用户程序配置为高阻输入
      这个场景有外部32768晶振在振荡,省电模式时必须保持高阻输入

      ===并必须关闭数字输入,否则浮空的口,外部不停的在变化,就会产生额外的功耗

6,MCU如有 ADC_VRef+, ADC_VRef+ 不能浮空,否则也会产生额外的电流


省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 国芯人工智能技术交流网站 - AI32位8051交流社区
截图202510202305436396.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:226
  • 最近打卡:2025-11-02 10:12:27

792

主题

1万

回帖

2万

积分

管理员

积分
20149
发表于 2025-10-20 23:07:44 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-10-21 09:44:12
已绑定手机

1

主题

6

回帖

23

积分

新手上路

积分
23
发表于 2025-10-21 09:44:12 | 显示全部楼层
神*** 发表于 2025-10-20 23:07
0.7uA, 省电模式,电流实际测试视频,8H8K64U - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL ...

我把IO也设置成了准双向口后,按键对应的IO数据寄存器需要设置成高电平,不然无法唤醒掉电模式因为我用的是IO端口中断唤醒,但是在我松开按键重新进入掉电模式后电流一直在0.5ma,只有重新上电的时候才有0.4ua,想问问这个是什么情况
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:551
  • 最近打卡:2025-11-01 08:54:26

33

主题

2646

回帖

5873

积分

论坛元老

积分
5873
发表于 2025-10-21 10:14:42 | 显示全部楼层
0613*** 发表于 2025-10-21 09:44
我把IO也设置成了准双向口后,按键对应的IO数据寄存器需要设置成高电平,不然无法唤醒掉电模式因为我用的 ...

主板上只留单片机你再试一试呢?  

我这里测试过主板上只留单片机,进低功耗,肯定是小于1uA的,没有到手册上的0.4uA,不过大概率是我万用表的误差。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-10-21 09:44:12
已绑定手机

1

主题

6

回帖

23

积分

新手上路

积分
23
发表于 2025-10-21 11:17:01 | 显示全部楼层
_奶*** 发表于 2025-10-21 10:14
主板上只留单片机你再试一试呢?  

我这里测试过主板上只留单片机,进低功耗,肯定是小于1uA的,没有到 ...

我试试
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-10-21 09:44:12
已绑定手机

1

主题

6

回帖

23

积分

新手上路

积分
23
发表于 2025-10-21 11:27:11 | 显示全部楼层
_奶*** 发表于 2025-10-21 10:14
主板上只留单片机你再试一试呢?  

我这里测试过主板上只留单片机,进低功耗,肯定是小于1uA的,没有到 ...

  P0 = 0x7f;                      //数据寄存器 0  1
        P0M1 = 0x00;        P0M0 = 0x00;      //端口模式寄存器 准双向口
  P0PU = 0x00;                    //端口上拉使能寄存器 1:开 0:关
  P0IE = 0x00;                    //数字信号寄存器  1:使能  0:关闭
  

还是不行,我已经只留单片机,然后把IO设置成准双向口关闭数字寄存器,按键对应的IO设置高电平了,能正常唤醒就是进入掉电模式后功耗还是400ua
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:551
  • 最近打卡:2025-11-01 08:54:26

33

主题

2646

回帖

5873

积分

论坛元老

积分
5873
发表于 2025-10-21 11:42:38 | 显示全部楼层
0613*** 发表于 2025-10-21 11:27
P0 = 0x7f;                      //数据寄存器 0  1
        P0M1 = 0x00;        P0M0 = 0x00;      //端口模式寄存 ...

adc电源关了么
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-10-21 09:44:12
已绑定手机

1

主题

6

回帖

23

积分

新手上路

积分
23
发表于 2025-10-21 11:49:07 | 显示全部楼层
_奶*** 发表于 2025-10-21 10:14
主板上只留单片机你再试一试呢?  

我这里测试过主板上只留单片机,进低功耗,肯定是小于1uA的,没有到 ...

多谢,找到原因了是因为我进入休眠前没有关闭LVD中断使能
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-11-3 02:31 , Processed in 0.126760 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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