华润微CS88M312芯片降低功耗方法与使用注意事项

今日头条

1100人已加入

描述

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

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

  华润微CS88M312芯片提供了两种休眠模式和两种空闲模式用来降低系统的功耗,相关说明如下:

  休眠模式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_(); 
    } 

}

  华润微CS88M312芯片使用注意事项

  1.不是所有的参数设置都在程序中对寄存器进行设置来实现。华润微CS88M312芯片手册中配置选项(如芯片的时钟,主频,RES引脚选项等)中的参数是在上位机软件中进行设置;

  2.当有需要降低功耗进入休眠并且休眠后需要通过定时器来唤醒时,内置低速振荡器选用8K,32K会有个别情况下不能唤醒;

  3.定时器0和定时器1是向上计数,从0开始到设置的计数值时产生中断;

  4.定时器2和定时器3计数时是向上计数,从设置值开始向上计数,计数到计数值溢出产生中断;

  5. 华润微CS88M312芯片中断只有INT0和INT1两个中断入口,各个中断都可以映射到这两个中断中入中,当一个中断入口不只一个中断源时,需要把TCON设置为电平触发,边沿触发只会响应一个中断源,其它的中断源不会响应;

  6.使用UART功能时,定时器生成波特率时选用16位计数模式,高低8位分别计数模式误码率高,不建议使用;

  7. 华润微CS88M312芯片只能通过原厂提供的上位机和烧写器进行下载,不能仿真;

  8.使用烧写器对华润微CS88M312芯片进行烧写时,芯片不能有外供电。
  责任编辑:tzh

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分