全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版

低功耗MCU动态时钟分析

[复制链接]
1080 0

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
[color=eight:]
  本文结合MSP430系列微处理器,详细论述了通过控制改变MCU的时钟频率来降低功耗的设计方法。
    1 功耗产生的原因
    在CMOS电路中,功耗损失主要包括静态功耗损失和动态功耗损失两部分。其中静态功耗主要是由反偏PN结的漏电流和晶体管的亚阈值电流引起的,其最主要的形式就是漏电损失。其实CMOS电路理论上不会有静电功耗损失,因为从供应电源到地面没有直接的路径,但实际上晶体管总会有漏电电流的出现,从而出现漏电损失。在0.18μm工艺水平之下,其在功耗中所占比重大约为5%~10%,一般可以忽略(但是随着工艺的提高,供电电压的降低,又使其所占比重逐渐上升)。这样,在CMOS电路中,动态功耗就成了这个系统功耗的主要组成部分,约占整体功耗的90%以上。定量地分析电路的动态功耗,可用以下公式表示:
    其中:C为负载电容;VDD为电源电压;?琢为翻转几率,即每个时钟周期中发生的充放电周期个数;fCLK为时钟频率。从这个公式可以看到如何降低动态功耗从而降低整个CMOS电路的功耗。即可以减小翻转的负载电容,降低电源电压,减小节点的翻转几率,或者降低时钟频率。本文将主要围绕如何动态降低时钟频率实现低功耗设计。
    2 动态时钟低功耗管理原理
    MCU系统设计是个很复杂的过程,在一些条件下可能会用到整个系统的所有硬件资源,但是在一些应用中可能只需要其中很少的一部分硬件资源;在某些应用中可能需要很高的时钟频率,而在其他应用中却可以工作在很低的工作频率中。例如:当任务量很大时,MCU满负荷工作,则需要较高的时钟频率,功耗较大;当任务量很小时,MCU负荷较轻,所需时钟频率较低,功耗就可以相应降低。动态配置系统的时钟频率就是以不牺牲系统的性能为前提,动态地管理系统的工作频率来降低MCU的功耗。
    3 低功耗动态时钟实现
  [color=g-bottom:]  MSP430基础时钟模块包含以下3个时钟输入源。
  
  [color=g-bottom:]  (1)LFXT1CLK 低频时钟源:由LFXT1振荡器产生(如图2所示)。通过软件将状态寄存器中OSCOff复位后,LFXT1开始工作,即系统采用低频工作。如果LFXT1CLK没有用作SMCLK或MCLK信号,则可以用软件将OSCOff置位,禁止LFXT1工作。
  
  [color=g-bottom:]  (2)XT2CLK高频时钟源:由XT2振荡器产生。它产生时钟信号XT2CLK,其工作特性与LFXT1振荡器工作在高频模式时类似。可简单地通过软件设置XT2振荡器是否工作,当XT2CLK没有用作SMCLK或MCLK信号时,关闭XT2,选择其他时钟源。
  
  [color=g-bottom:]  (3)DCOCLK 数字控制RC振荡器。由集成在时钟模块中的DCO振荡器产生。DCO振荡器是一个RC振荡器,频率可以通过软件调节,其控制逻辑如图3所示。当振荡器LFXT1、XT2被禁止或失效时,DCO振荡器被自动选作MCLK的时钟源。因此由振荡器失效引起的系统中断请求可以得到响应,甚至在CPU关闭的情况下也能得到处理。
  
  [color=g-bottom:]  由基础时钟模块可以提供系统所需的3种时钟信号,即:ACLK、MCLK、SMCLK。其中辅助时钟ACLK是LFXT1CLK信号经1、2、4、8分频后得到的。ACLK可由软件选作各个外围模块的时钟信号,一般用于低速外设;系统主时钟MCLK可由软件选择来自LFXT1CLK、XT2CLK、DCOCLK三者之一,然后经1、2、4、8分频得到。MCLK主要用于CPU和系统。子系统时钟SMCLK可由软件选择来自LFXT1CLK和DCOCLK,或者XT2CLK和DCOCLK,然后经1、2、4、8分频得到,主要用于高速外设模块。系统可以根据实际需要通过软件来选择合适的系统时钟频率,这三种不同频率的时钟输出给不同的模块,从而合理利用系统的电源,实现整个系统的超低功耗,这一点对于电池供电的系统来讲至关重要。在具体应用中,CPU及各个时钟源的工作状态如表1。
  [color=g-bottom:]  4 动态时钟应用实例
  [color=g-bottom:]  通过MSP430外接32768Hz晶体构建超低功耗实时时钟,结构如图4。
  [color=g-bottom:]  部分代码如下:
  [color=g-bottom:]  setc
  [color=g-bottom:]  Dadc.b SEC
  [color=g-bottom:]  cmp.b #060h,SEC
  [color=g-bottom:]  jlo CLKend
  [color=g-bottom:]  clr.b SEC
  [color=g-bottom:]  dadc.b MIN
  [color=g-bottom:]  cmp.b #060h,MIN
  [color=g-bottom:]  jlo CLKend
  [color=g-bottom:]  clr.b MIN
  [color=g-bottom:]  CLKend;
  [color=g-bottom:]  令MSP430 CPU工作在突发状态,大部分时间处于LMP3状态,只有程序代码中单位时间到之后,才出发一个极短暂的运行,运行期间电流消耗250?滋A左右。经计算指令执行时间得到,在1s时间段内程序运行时间仅为100μs,系统平均电流约为0.83μA,可见其工作功耗相当低。
  [color=g-bottom:]  本文通过分析MSP430系列MCU的动态时钟配置,介绍了通过动态改变MCU系统时钟来达到低功耗设计。在实际应用中,通过软件设置合理地使用时钟源,可以有效实现低功耗设计。

举报

回复
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表