找回密码
 立即注册
查看: 107|回复: 10

省电模式下电流8mA求助解决办法

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-14 10:20:56
已绑定手机

1

主题

7

回帖

27

积分

新手上路

积分
27
发表于 2026-3-13 15:08:42 | 显示全部楼层 |阅读模式
单片机型号:AI8H2K32U。P2.3接的是5V给两个200K电阻分压,5V有时P2.3有2.5V,没有时单片机由CR2032供电。检测P2.3是否是低电平,P2.3低电平中断,在中断里开启掉电模式。CR2032电池供电时电流8mA,。实在找不到问题求帮助!


////////////////////////////////////////
// P2中断服务程序
// 入口参数: 无
// 函数返回: 无
////////////////////////////////////////
void PORT2_ISR(void) interrupt P2INT_VECTOR
{
    //<<AICUBE_USER_PORT2_ISR_CODE1_BEGIN>>
    // 在此添加中断函数用户代码  
    uint8_t intf;

    intf = CheckP2nFlag(PIN_ALL);       //读取中断请求标志
    ClearP2nFlag(PIN_ALL);              //清除中断请求标志

        if(intf==0x08)     //判断是否是P2.3触发的中断
        {
                Powers();     //关闭所有输出
                _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
                PCON|=0x02;                                //P2.3检测到低电平,MCU进入省电模式
                _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

        }
    //<<AICUBE_USER_PORT2_ISR_CODE1_END>>
}



void Powers(void)
{
        P0=0x00;P1=0x00;P2=0x00;P3=0x00;                           //IO口全输出低电平
        P0M0=0x00;P0M1=0xff;P1M0=0x00,P1M1=0xff;P2M0=0x00,P2M1=0xff;P3M0=0x00,P3M1=0xff;  P5M0 = 0x00; P5M1 = 0xFF;//全高阻输入
        P0PU=0x00;P1PU=0x00;P2PU=0x00;P3PU=0x00;  P5PU = 0x00;                 //禁止上拉
        P0NCS=0xff;P1NCS=0xff;P2NCS=0xff;P3NCS=0xff;   //禁止施密特触发器
        P0IE=0x00;P1IE=0x00;P2IE=0x00;P3IE=0x00;                   //禁止数字输入
        IE=0x00;                  //禁止所有中断
        TCON&=0xAF; AUXR&=0xEF;  T4T3M&=0x77;         //定时器停止计数
        ADC_CONTR&=0x7F;  //关闭ADC电源       
}


1a5c237aca79bdce6d5e3b194849101e.png
96b35c94246ffe584a599bad0556ef0b.png
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:90
  • 最近打卡:2026-04-02 10:16:19
已绑定手机

4

主题

245

回帖

885

积分

高级会员

积分
885
发表于 2026-3-13 15:51:11 | 显示全部楼层
有5V供电时,供电电流多少?
如果这句“PCON|=0x02”之前加一句死循环“while(1);”,即不让它进入掉电模式,电流是多少?
主频是多少?单片机手册中该主频对应的正常工作模式电流是多少?
P5没关闭数字输入吗?听说引脚高阻模式下可能会感应到信号或电压位于中间电平会引起较大的电流消耗。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:368
  • 最近打卡:2026-04-02 08:50:05

844

主题

1万

回帖

2万

积分

管理员

积分
22799
发表于 2026-3-13 16:09:56 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:31
  • 最近打卡:2026-04-02 07:26:29
已绑定手机

2

主题

29

回帖

174

积分

注册会员

积分
174
发表于 2026-3-13 16:12:31 | 显示全部楼层
省电模式不单是MCU的事,外围电路也得精心设计。利用内部低压检测中断就能触发掉电模式,不必用2个电阻分压取样。下载程序时硬件选项有多种低压选择。另外ADC取样电路也存在同样问题。总之进入掉电模式必须关闭所有可能耗电的内部开关和外部硬件电流通路才能达到目的。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-14 10:20:56
已绑定手机

1

主题

7

回帖

27

积分

新手上路

积分
27
发表于 2026-3-13 22:43:29 | 显示全部楼层
lcws*** 发表于 2026-3-13 15:51
有5V供电时,供电电流多少?
如果这句“PCON|=0x02”之前加一句死循环“while(1);”,即不让它进入掉电模式 ...

在把外围电路全部断开,只接USB的情况下,执行  Powers();     //关闭所有输出代码  后6.1mA,
没有执行  Powers();  测电流8mA,  
外围电路都接上是接近11mA, 用了硬件SPI功能,执行  Powers();代码后 TFT屏的 RES和BLK,还是有电流,接近3mA,
在外为什么也不接,电容电阻全断开只给单片机供电时,且有烧录程序时,最低6.1mA,
烧写https://www.stcaimcu.com/thread-18720-1-1.html省电模式代码,电流不足1mA,
怀疑省电模式没开起来,但是把P2.3的电阻断开,P2.3低电平时,SPI不工作,TFT无显示,说明进省电模式了。
现在怎么找不到原因了!!!!
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-14 10:20:56
已绑定手机

1

主题

7

回帖

27

积分

新手上路

积分
27
发表于 2026-3-14 10:20:56 | 显示全部楼层
lcws*** 发表于 2026-3-13 15:51
有5V供电时,供电电流多少?
如果这句“PCON|=0x02”之前加一句死循环“while(1);”,即不让它进入掉电模式 ...

又仔细测试,用P2.3检测低电平,我这样分压检测的更不行,要短接到低,才能触发P2.3==0;然后触发了,P2.3==0;然后PCON|=0x02;执行后也没有进入省电模式,程序一样在跑! 用PCON=PD,也不行 不自动是为什么!!!
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:90
  • 最近打卡:2026-04-02 10:16:19
已绑定手机

4

主题

245

回帖

885

积分

高级会员

积分
885
发表于 2026-3-14 10:59:33 | 显示全部楼层
79*** 发表于 2026-3-14 10:20
又仔细测试,用P2.3检测低电平,我这样分压检测的更不行,要短接到低,才能触发P2.3==0;然后触发了,P2. ...

这样吧,先关闭引脚中断,直接在主循环里进入掉电模式试试。
有可能中断一直在发生,所以不断唤醒。
我不太了解在中断里进掉电模式是否有问题,由于进掉电模式时还在中断里,担心下次中断不能进入而不能唤醒。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-14 10:20:56
已绑定手机

1

主题

7

回帖

27

积分

新手上路

积分
27
发表于 2026-3-14 11:09:21 | 显示全部楼层
lcws*** 发表于 2026-3-14 10:59
这样吧,先关闭引脚中断,直接在主循环里进入掉电模式试试。
有可能中断一直在发生,所以不断唤醒。
我不 ...

void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    // 在此添加用户主函数初始化代码  
       
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
    // 在此添加主函数中运行一次的用户代码
        P_SW2|=0x80;
                IRCDB=0x10;IAP_TPS=24;        //掉电定时器频率
                WKTCL = 0x7F;   WKTCH = 0xFE; //启动掉电唤醒定时器并给最大值16唤醒一次
       
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
        USBLIB_OUT_Done();              //查询方式处理USB接收的数据

        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        // 在此添加主函数中用户主循环代码
                printf_usb("省电模式");       
                delay_ms(1000);
                PCON=PD;
        //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}
这是单独建立的新工程,只开了时钟和查询方式的USB-CDC, 代码也就只写了这个掉电唤醒和省电模式。还是进不了,打印窗口还是1秒打印一次!
void main(void)
{
    //<<AICUBE_USER_MAIN_INITIAL_BEGIN>>
    // 在此添加用户主函数初始化代码  
       
    //<<AICUBE_USER_MAIN_INITIAL_END>>

    SYS_Init();

    //<<AICUBE_USER_MAIN_CODE_BEGIN>>
    // 在此添加主函数中运行一次的用户代码
//        P_SW2|=0x80;
//                IRCDB=0x10;IAP_TPS=24;        //掉电定时器频率
//                WKTCL = 0x7F;   WKTCH = 0xFE; //启动掉电唤醒定时器并给最大值16唤醒一次
       
    //<<AICUBE_USER_MAIN_CODE_END>>

    while (1)
    {
        USBLIB_OUT_Done();              //查询方式处理USB接收的数据

        //<<AICUBE_USER_MAIN_LOOP_BEGIN>>
        // 在此添加主函数中用户主循环代码
                printf_usb("省电模式");       
                delay_ms(1000);
                PCON=PD;
        //<<AICUBE_USER_MAIN_LOOP_END>>
    }
}
最后掉电唤醒也注释了,还是进不了省电模式!这省电模式拿到部分AI8H2K32单片机才有?
回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:90
  • 最近打卡:2026-04-02 10:16:19
已绑定手机

4

主题

245

回帖

885

积分

高级会员

积分
885
发表于 2026-3-14 11:17:13 | 显示全部楼层
79*** 发表于 2026-3-14 11:09
void main(void)
{
    //

USB我不了解,它应该也是比较费电的,即便没有数据发送,接口上也是不断有数据(token)传输的,建议不要用USB,而是用串口。
不要连接USB口。
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2026-03-14 10:20:56
已绑定手机

1

主题

7

回帖

27

积分

新手上路

积分
27
发表于 2026-3-14 18:23:29 | 显示全部楼层
lcws*** 发表于 2026-3-14 11:17
USB我不了解,它应该也是比较费电的,即便没有数据发送,接口上也是不断有数据(token)传输的,建议不要用U ...

终于弄好了,用USB不论是中断还是查询都不能进省电模式,还有程序里的中断都要用最低优先级,IO口不要用准双向模式,准双向的IO口特别容易被干扰,IO口没有开中断及唤醒,都会莫名其妙的换醒省电模式,基本就开启不了省电模式。 现在还是这个硬件电路,CR2302的电池供电也就2.2uA, 设置了掉电唤醒定时器,16秒唤醒一次,这个电池应该可以待机一两年了。谢谢你解惑
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2026-4-3 05:05 , Processed in 0.118964 second(s), 91 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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