newlined 发表于 2025-10-22 13:49:21

在一块只焊接了MCU、电源滤波电容(104和22u)的板子上,没有焊二极管,下载了如下程序:


#include "STC8.h"
#include "intrins.h"

#define IDL             0x01                  //PCON.0
#define PD            0x02                  //PCON.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;
       
    _nop_();
    _nop_();
    _nop_();
    _nop_();
   //PCON = IDL;                               //MCU进入IDLE模式
   PCON = PD;                                  //MCU进入掉电模式
    _nop_();
    _nop_();
    _nop_();
    _nop_();
   while (1);
}
工作电流在680uA左右,注释掉 PCON = PD;后,工作电流还在680uA左右,不知道是什么原因。

ercircle 发表于 2025-10-22 14:13:53

newlined 发表于 2025-10-22 11:58
版主您好,板子上的cpu是 32G12K64,我看硬件设计,把第20脚(VRef+)跟19脚VCC接在一起
。是不是这样耗 ...

应该是不影响的,我测的PDIP40封装这个本身就是连在一起的


ercircle 发表于 2025-10-22 14:48:33

newlined 发表于 2025-10-22 13:49
在一块只焊接了MCU、电源滤波电容(104和22u)的板子上,没有焊二极管,下载了如下程序:



还是用这个贴里代码测试(P33接地进入低功耗状态),32G8K64最小系统,0.7 uA左右:
https://www.stcaimcu.com/forum.p ... id=18635&pid=172110



958


newlined 发表于 2025-10-22 16:25:56

ercircle 发表于 2025-10-22 14:48
还是用这个贴里代码测试(P33接地进入低功耗状态),32G8K64最小系统,0.7 uA左右:
https://www.stcaimcu ...

非常感谢版主的实验,我这边也找到了问题,在8H的单片机上可以实现掉电状态下,电流0.7uA。这几天我是用3.3V的纽扣电池给板子供电,纽扣电池的容量有限,经过这几天的实验,纽扣电池空载状态下电压是3V,加到单片机上后我实际量了下只有1.8V左右,我看手册,8H的单片机工作电压在1.9V-5.5V,这样单片机的程序不能正常执行,所以不能进入掉电状态,我现在正在把这个程序改到32G的板子上。
程序如下:
include "STC8H.H"

void Delay10ms(void);                                //@11.0592MHz
void main(void)
{
        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;
        Delay10ms();                                                                        //@11.0592MHz
        PCON = 0x02;                  //MCU进入掉电模式
}

void Delay10ms(void)        //@11.0592MHz
{
        unsigned char data i, j;

        i = 108;
        j = 145;
        do
        {
                while (--j);
        } while (--i);
}
页: 1 [2]
查看完整版本: 为什么我的单片机进入掉电模式后电流这么大 | 操作PxIE没开EAXFR