请选择 进入手机版 | 继续访问电脑版

芯虎论坛

 找回密码
 立即注册
查看: 226|回复: 0

华润微CS88M312芯片如何降低功耗

[复制链接]

56

主题

94

帖子

4万

积分

论坛元老

Rank: 8Rank: 8

积分
40818

论坛元老

发表于 2021-8-31 11:06:59 | 显示全部楼层 |阅读模式
本帖最后由 龙飞虎 于 2021-8-31 11:06 编辑

华润微CS88M312芯片如何降低功耗
芯片运行时的瞬时功耗主要与MCU使用模块的数量和MCU的主频相关。CS88M312芯片内置了16M/8M/4M/910K 4个高速振荡器,选用合适的振荡器会降低瞬时功耗。除了直接选用内置的调整振荡器来做主时钟,还可以把振荡器进行分频做为主时钟,这样可以进一步的降低系统的瞬时功耗。当然主频越低同样的任务处理的时单也越长,所以要进行综合的考量。MCU运行时不使用的模块全部关掉,这样可以有效的避免MCU产生额外的功耗。

芯片提供了两种休眠模式和两种空闲模式用来降低系统的功耗,相关说明如下:
休眠模式0:功耗最低,MCU只能通过PA口唤醒;

休眠模式1:MCU只能通过PA口或看门狗唤醒;空闲模式0:内部高速时钟停止,外设模块可以工作在低速时钟;空闲模式1:CPU停止,内部高速时钟运行。
MCU进入到休眠模式或空闲模式:当SYS_REG2寄存器中的Idlen位为0时,进入休眠模式,Idlen为1时进入空闲模式。对于未使用的端口,建议设置为上拉输入PCON 的 bit1 是 STOP 位,MCU 写 Stop 信号为 1 将进入休眠模式,在进入休眠模式之前需将中断控制器及其他接口模块的 Mask 信号清 0,以保证 MCU 能被唤醒,在 MCU 唤醒之后,STOP 自动清 0。
注意:在 STOP 指令之后需要至少 4 条 NOP 指令,以保证程序唤醒后正常运行。
          对 MCU 进行 STOP 前,读取SYS_REG4寄存器bit4位为 1等待,为 0 可以写入 STOP

Sleep示例代码如下:
void Sleep()
{
    if((SYS_REG4 & 0x10) == 0x00)
    {
        WAKE_EN = 0x42;       //
        PCON |= 0X02;         //mcu_stop         
        _nop_();
        _nop_();
        _nop_();
        _nop_();
    }

}







回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|芯虎论坛 ( 辽ICP备18019618号 )

GMT+8, 2021-9-27 21:32 , Processed in 0.098094 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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