找回密码
 立即注册
查看: 34|回复: 5

掉电休眠后不能再次唤醒

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-10-14 16:56:15
已绑定手机

1

主题

0

回帖

7

积分

新手上路

积分
7
发表于 前天 16:56 | 显示全部楼层 |阅读模式


芯片:IAP15W413AS
功能:设备使用电池供电,电池电压4.5V。平时处于掉电休眠状态,按键中断唤醒后,采集并显示数据。然后再次进入休眠。
问题:25年2月生产1K只,其中200只某客户使用中退回50多只,经测试,工作电流为2uA,无法唤醒。断电重启后,恢复正常,可正常唤醒和休眠。
背景:此产品已生产两年多,累计出货上万只,第一次出现此状况。怀疑是客户处有干扰,造成MCU不能被唤醒。
截图202510141652477889.jpg 截图202510141653388092.jpg

截图202510141656079576.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 前天 23:28 | 显示全部楼层
截图202510142322526792.jpg

https://www.stcaimcu.com/data/download/Datasheet/STC15-CN.pdf

截图202510142325004813.jpg

电路图参考上面

截图202510142327018422.jpg


//本示例在Keil开发环境下请选择Intel的8058芯片型号进行编译
//若无特别说明,工作频率一般为11.0592MHz


#include "reg51.h"
#include "intrins.h"

//-----------------------------------------------

sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;

bit FLAG;                       //1:上升沿中断 0:下降沿中断

sbit P10 = P1^0;
sbit P32 = P3^2;
sbit P33 = P3^3;

//-----------------------------------------
//中断服务程序
void exint0() interrupt 0       //INT0中断入口
{
    P10 = !P10;                 //将测试口取反
    FLAG = P32;                //保存INT0口的状态, INT0=0(下降沿); INT0=1(上升沿)
}

//-----------------------------------------------

void main()
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P1M0 = 0x00;
    P1M1 = 0x00;
    P2M0 = 0x00;
    P2M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    P4M0 = 0x00;
    P4M1 = 0x00;
    P5M0 = 0x00;
    P5M1 = 0x00;
    P6M0 = 0x00;
    P6M1 = 0x00;
    P7M0 = 0x00;
    P7M1 = 0x00;

    IT0 = 0;                    //设置INT0的中断类型为上升沿和下降沿,上升沿和下降沿均可唤醒
//  IT0 = 1;                    //设置INT0的中断类型为仅下降沿,下降沿唤醒

    EX0 = 1;                    //使能INT0中断
    EA = 1;

    while (1)
    {
        PCON = 0x02;            //MCU进入掉电模式
        _nop_();                //掉电模式被唤醒后,首先执行此语句,然后再进入中断服务程序
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
    }
}


//  多加几个  _nop_();
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:584
  • 最近打卡:2025-10-15 08:26:15
已绑定手机

86

主题

6274

回帖

1万

积分

超级版主

积分
11734
发表于 昨天 10:57 | 显示全部楼层
PCON|=0x02前后分别加4个或以上NOP
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:170
  • 最近打卡:2025-10-15 07:29:12
已绑定手机

20

主题

85

回帖

1056

积分

金牌会员

积分
1056
发表于 昨天 11:03 | 显示全部楼层
大概率是死机了。
我有遇到一些情况,比如强干扰之后串口发送的数据里面掺杂了一些非常窄的脉冲,这导致接收端出现无法解析的情况,通讯失败,此时即便硬件复位芯片依然不能解决问题。只能断电重启才能恢复。这个问题困扰我很多年了。通讯失败状态下,并不影响其他的功能。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 昨天 11:15 | 显示全部楼层

截图202510151116363091.jpg

MCU-VCC/GND 管脚就近加 2个 电容 抗干扰

截图202510151114575028.jpg
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-10-15 11:03:15

787

主题

1万

回帖

1万

积分

管理员

积分
19770
发表于 昨天 11:15 | 显示全部楼层
截图202510151115374244.jpg
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-10-16 05:35 , Processed in 0.149784 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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