mchp2099 发表于 2023-10-30 17:27:32

STC8G1K17A始终进入不了省电模式

STC8G1K17A进入不了省电模式任凭我如何设置 关闭外设,电流时钟保持3-4mA的单片机工作电流,请问可能是哪里问题呢。

代码如下:

#define   MAIN_Fosc       6000000L   //定义主时钟
#define Timer0_Reload   (65536UL -(MAIN_Fosc / 1000))       //Timer 0 中断频率, 1000次/秒

void delay1ms(unsigned int count)
{
        AUXR = 0x80;    //Timer0 set as 1T, 16 bits timer auto-reload,
        TR0 = 1;    //Tiner0 run
        while(count)
        {
                TH0 = (u8)(Timer0_Reload / 256);
                TL0 = (u8)(Timer0_Reload % 256);
                while(TF0==0);
                TF0 = 0;
                count--;
        }
        TR0 = 0;
}


void main()
{

       

        P_SW1 |= 0x80;
        P_SW2 |= 0xB0;
       
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;

//P3PU = 0x0c;
//        P3M0 = 0x0c;


       
        I2CCFG = 0xe0;
        I2CMSST = 0x00;
//        EA = 0;


delay1ms(500);
        oled_061_Init();
        delay1ms(100);

//        P0IE = 0
//        P1IE = 0;
//        P3IE = 0;
//        P5IE = 0;

        I2C_ADDR = 0;
I2CCFG = 0x00;
        P1M1 = 0xff;
        P3M1 = 0xff;
        P5M1 = 0xff;
                P0IE= 0;
                P1IE= 0;
                P3IE= 0;
                P5IE= 0;
        _nop_();
        _nop_();
        _nop_();
        PCON |= 0x02;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
       
       
       
        while(1);


}

神农鼎 发表于 2023-10-30 17:48:08

省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前:
========STC8/STC32系列
1,不用的I/O口,就是浮空的I/O, 关闭数字输入
2,用作模拟输入的口,一般是配置成高阻输入,也要关闭数字输入
   ===指用作 ADCx外部模拟输入的I/O
   ===指用作 比较器外部模拟输入的I/O
3,用作高阻输入的I/O, 也要关闭数字输入

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晶振,
   必须保持高阻输入,并必须关闭数字输入

mchp2099 发表于 2023-10-30 18:02:46

谢谢,我排查下

神农鼎 发表于 2023-10-30 18:04:22

我改了下错误的字

mchp2099 发表于 2023-10-31 13:37:45

电路图见附件,看下哪里有可能导致休眠打开关闭 只相差1mA电流。

神农鼎 发表于 2023-10-31 15:30:07

请问实际输入电压是多少伏,
稳压管的最低启动电压是多少伏,
现在 MCU-VCC实际测试是多少伏,
怀疑稳压管已启动工作 ?
R10/D2组合有功耗 ?


mchp2099 发表于 2023-10-31 17:25:22

神农鼎 发表于 2023-10-31 15:30
请问实际输入电压是多少伏,
稳压管的最低启动电压是多少伏,
现在 MCU-VCC实际测试是多少伏,


稳压管是3.3V的,实际测试功耗太大,我把电阻增加到820欧姆,后电流降到3mA左右,
输入电压是5V   MCUVCC实际测试3V左右。

当我把R10拿掉的时候,实际测试板子只有3MA,加上R10在7mA

所以我的理解是,PCON = 0X02 的效果与R10断开效果一样的,但实际测试,电流就是降不下来

神农鼎 发表于 2023-10-31 19:03:50

1,请问实际输入电压是多少伏 ?
===你没答复

2,稳压管是啥具体规格,实际测试的最低启动电压是多少伏 ?
===你没答复

3,现在 MCU的VCC实际测试电压是多少伏 ?
===你没答复

4,我怀疑稳压管已启动工作 ?
===正常工作和省电模式,稳压管不能启动,启动就有功耗
===你没答复


如软件对了,那 R10/D2组合有功耗 ,你先回答上面的问题

mchp2099 发表于 2023-11-1 09:08:57

神农鼎 发表于 2023-10-31 19:03
1,请问实际输入电压是多少伏 ?
===你没答复



1:实际输入电:5V

2:稳压管启动电压3.3V,规格BZT52C3V3S

3:MCU VCC实际测试电压 3V

4:没有启动,因为3.3V的稳压管,MCU VCC是3V

mchp2099 发表于 2023-11-1 19:37:32

神农鼎 发表于 2023-10-31 19:03
1,请问实际输入电压是多少伏 ?
===你没答复



版主好,我把稳压管去掉,休眠模式,功耗降下来了,请问这是怎么回事

稳压管启动了,电压牵制在3V

我拿掉后单片机VCC脚 达到了4.8V

请问这是怎么回事,我后面I2C电压电平是1.8V

请问我单片机电源该怎么设计呢,有没有推荐,加一个2.5V稳压芯片可以吗
页: [1] 2
查看完整版本: STC8G1K17A始终进入不了省电模式