indooo 发表于 2024-4-2 13:51:58

关于STC8H2K低功耗

请问哪位有用过STC8H2K17的低功耗模式吗?
文档中描述STC8H2K17U切换到STOP模式后,T11会继续工作,此时芯片的功耗依然是0.4uA @Vcc=3.3V吗?
然后又可以用T11定时中断来唤醒,是这样理解吗?T11在工作的情况下,功耗能达到这么低吗?
有款电池供电的产品对功耗要求高,特意发贴求助?

国学芯用 发表于 2024-4-2 14:40:08

省电模式,I/O口如何设置才省电,进入主时钟停振/省电模式前 - 电源/复位/省电模式/外部晶振/内部时钟/对外时钟输出/PLL-144MHz时钟 - 国芯论坛-STC全球32位8051爱好者互助交流社区 - STC全球32位8051爱好者互助交流社区https://www.stcaimcu.com/forum.php?mod=viewthread&tid=4808&extra=page%3D1

indooo 发表于 2024-4-10 11:46:52

好的,谢谢分享。

一笔长空 发表于 2024-4-10 12:45:25

目前我们产品用的STC8H ,关机后芯片功耗和手册上的一致,加上外围电路一共30uA

indooo 发表于 2024-4-10 13:59:21

一笔长空 发表于 2024-4-10 12:45
目前我们产品用的STC8H ,关机后芯片功耗和手册上的一致,加上外围电路一共30uA ...

好的好的,多谢分享。

平常心 发表于 2026-4-13 15:50:22

有没有关于Timer11中断在STOP模式下唤醒的例程,

梁工 发表于 2026-4-15 16:37:00

写了一个给您参考!
请先别修改程序,直接下载HEX文件测试,下载时选择主频24MHz。


本程序演示定时器11的24位预装载使用, 设置时, 可以指定定时时间(ms)或系统时钟数.
Timer11选择内部32K低速IRC时钟,睡眠后,Timer11继续计数,溢出时如果允许中断,则会唤醒MCU。
当设置不当, 将会返回错误(数值过大).
要允许T11中断和全局中断(EA=1)才能唤醒,并且必须有T11中断处理函数。睡眠电流大约2uA。
====================================================

定时器11固定为16位自动重装模式, 中断固定为低优先级,不可设置优先级.
可以允许高速时钟输出时从P1.5输出时钟信号(本例已注释掉)。
中断里从P3.3取反输出方波信号指示中断。
每次唤醒主程序从P3.4输出1~10ms的高电平来指示不同的唤醒次数。
由于睡眠后32K IRC继续运行,T11也继续工作,所以睡眠电流大约2uA。如果不用定时器唤醒,则不会启动32K IRC,睡眠电流大约0.4~0.6uA。





梁工 发表于 2026-4-15 16:38:15

平常心 发表于 2026-4-13 15:50
有没有关于Timer11中断在STOP模式下唤醒的例程,

例程发在上面7楼,请测试、参考。

平常心 发表于 2026-4-16 08:44:39

梁工,{:qiang:}{:qiang:}

平常心 发表于 2026-6-13 16:45:25

u8        Timer11_Config(u32 ReloadTime)        //ReloadTime值是时间, 单位ms,不超过85000ms
{
        u16        i;
        P_SW2 |= 0x80;                        //SFR enable
        Timer11_DISABLE();                //停止计数, 定时模式, 12T模式, 不输出时钟

        ReloadTime = (u32)((T11_CLK * ReloadTime)/1000);        //重装的是时间(单位ms, 不超过85000ms), 计算所需要的系统时钟数.
        if(ReloadTime >= (65536UL * 12 *256))        return 1;        //值过大, 返回错误
        if(ReloadTime >= (65536UL *256))        //12T模式
        {
                Timer11_12T();                //12T模式
                ReloadTime /= 12;
        }
        else        Timer11_1T();                //1T模式
        i = (u16)(ReloadTime >> 16);        //预分频值,最大255.        ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
        T11PS = (u8)i;        //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
        i++;
        i = 65536UL - (u16)(ReloadTime / i);

        T11 = i;        //T11重装值

//        Timer11_EXT_32K();                        // 定时器T11时钟源为外部32K晶振
        Timer11_LOW_IRC();                        // 定时器T11时钟源为内部低速IRC
        Timer11_AsTimer();                        //定时器模式        Timer11_AsTimer();        Timer11_AsCounterP14();
//        Timer11_CLKO_EnableP15();        //允许输出时钟
//        P1n_standard(Pin5);                        //P1.5设置为准双向口
        Timer11_InterruptEnable();        //允许中断
        Timer11_Run();                                //开始运行
        return 0;
}
中间有好多子函数,怎么打不开?比如Timer11_DISABLE();                //停止计数, 定时模式, 12T模式, 不输出时钟,Timer11_12T();                //12T模式
页: [1]
查看完整版本: 关于STC8H2K低功耗