微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > NUC1xx微控制器(MCU)的几种省电方式介绍

NUC1xx微控制器(MCU)的几种省电方式介绍

时间:02-21 来源:互联网 点击:

一旦NUC1xx进入Power Down省电模式,由于大部分的逻辑电路都进入停止状态,因此要想唤醒CPU,必须经由特殊定义的中断源来唤醒。在Idle省电模式下,只要有任何中断即可唤醒CPU不同,不过相同的是,两者都必须要在进入省电模式前,先设定好将来要用来唤醒CPU的模块,这包括其中断或唤醒功能,这些为了唤醒CPU的准备都完成之后,才能进入省电模式,否则就没有任何方式能够再唤醒CPU了。


由于所谓的Power Down省电模式,实际上是把晶振的时钟关闭,让整个NUC1xx呈现静止的状态。而因为晶振也被关闭了,一旦有唤醒中断事件发生,需要等到晶振稳定下来后,CPU才能继续运作,所以由Power Down进入一般的工作模式,会需要延迟一点时间来等待,而NUC1xx系列所提供的延迟时间预设为4096个clock cycle。以12MHz来计算,延迟时间为(1/12MHz)*4096=341.12us(图2中的T2),而晶振起振所需时间(图2中的T1)则会随着晶振频率、品牌、PCB 布线等都会造成少许差异。一般而言, 12MHz晶振起振所需时间约12ms。实际量测范例数据如图2所示。

本文小结

本文介绍了新唐科技NUC1xx所提供的各种省电方式,包括了关闭没用到的模块、调整CPU运作的时钟、Idle省电模式与Power Down省电模式。在实际应用时,使用者可以根据自身所需,选择适合的方式,甚至组合不同的省电方法以达到最佳的省电效率。

新唐科技的NUC1xx包含NUC101、NUC100、NUC120、NUC130和NUC140,是以ARM Cortex-M0为核心的32位微控制器(MCU),经由不同时钟的设定,最高可以达到50MHz的运作频率。然而在一般简单控制或系统负载较低时,CPU并不需要执行在最高的运行时钟下即可应付所需要的计算量。这时候,便可以利用系统时钟的控制来降低时钟,以达到省电的目的。

另一种情况是CPU因为等待下一个工作或只需要久久工作一次时,就可以先将CPU进入Idle或Power Down模式,等到一定的时间之后或是有特定的事件发生时,才被唤醒过来进行相关事件的处理。同时,如果系统内没有用到的系统模块,也可以将其关闭以节省不必要的耗电。本文介绍各种不同的省电方法的原理,并提供相关的范例说明。

开关系统模块

在新唐科技NUC1xx中,为了省电的需求,当某个系统模块不使用时,可以将其输入时钟关闭,使其进入关闭的模式,依此来达到省电的效果。在NUC1xx中,几乎所有的系统模块都可以各别被关闭,这些模块包括:Watch Dog Timer、RTC、Timer03、I2C01、SPI03、UART02、PWM07、CAN、USB、ADC、ACMP、PS2、PDMA、 Flash ISP。不过,并非每颗芯片都包含了所有模块功能,例如CAN模块只在NUC130和NUC140才有此功能,详细说明请参考各芯片的相关文件。  各模块的相关耗电如表1所示。

新唐科技NUC1xx藉由关闭各模块时钟的方式来达到关闭各模块的目的,所以要关闭模块就必须设定相关的时钟控制缓存器。NUX1xx提供AHBCLK Register与APBCLK Register,来控制上文所列出各模块的开关。

系统时钟设定

新唐科技NUC1xx本身的耗电量和它的运行时钟有很大关系。如果运行的时钟高,则耗电高,反之则比较省电,但同时CPU就可能无法负荷大量的运算。因此,如果要同时兼顾大量运算跟省电,就必须能够根据实际上的需求来调整CPU的工作时钟,以求达到最佳的运作效率。

NUC1xx内建了PLL,能使用外部12MHz的晶振或是内部22M振荡器产生系统所需的时钟,由PLL所产生的时钟再经过适当除频,即可作为CPU的工作频率。另外NUC1xx也提供经由外部32KHz的晶振或是内部10KHz 振荡器直接供给作为CPU工作频率的方式。因此,NUC1xx对于工作时钟的设定,提供了很大的灵活性。

IDLE省电模式

新唐科技NUC1xx除了可利用设定最适合的工作时钟来达到省电的目的外,如果在系统完全不需要工作时,还可以将CPU及大部分的硬件关闭,以达到最大的省电效果。这种搭配关闭CPU及大部分硬件的模式,我们称之为省电模式,其中包括了Idle省电模式及Power Down省电模式。下面就Idle省电模式进行说明。

藉由关闭大部分硬件时钟以达到最大省电效率的模式主要有两种,一种是Idle省电模式,另一种是Power Down省电模式。这两种模式最大的不同点是,当系统进入Idle省电模式下时,任何的中断事件都可以重新唤醒CPU,以便让系统可以处理新进的事件。但如果系统处于Power Down省电模式,就只有少数特定的中断事件能够唤醒系统。

由于所谓的Idle模式,实际上就是把CPU的时钟关闭,这样让CPU在没有工作时处在最省电的模式。因为在这个模式下,只是将CPU的时钟关闭,一旦有任何中断事件发生,马上可以打开CPU的时钟来处理相关的事件,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top