临汾信息港
旅游
当前位置:首页 > 旅游

新唐CortexM0微控制器的省电管理

发布时间:2019-05-22 09:23:59 编辑:笔名

新唐Cortex-M0微控制器的省电管理

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

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

由于所谓的Idle模式,实际上就是把 CPU的时钟关闭,这样让CPU在没有工作时处在省电的模式。因为在这个模式下,只是将CPU的时钟关闭,一旦有任何中断事件发生,马上可以打开CPU 的时钟来处理相关的事件,所以不会造成处理事件的延迟,同时又可以达到省电效果,是兼顾速度与省电的一种模式。

NUC1xx 可以利用ARM Cortex-M0本身提供的WFI/WFE指令进入Idle模式。一旦进入Idle模式,CPU将立刻进入Sleep模式而停止运作,因此在WFI /WFE指令之后的程序都必须等到CPU被唤醒后才会被执行。此时NUC1xx的耗电量将降到约16mA@3.3V-48MHz。

进入Idle省电模式之后,如果要唤醒CPU,回到一般的工作模式,就必须先产生中断信号。该中断信号可以是NUC1xx中的任何模块所产生的中断,也可以通过外部中断的方式来唤醒CPU。需要注意的是,当决定CPU要由某个中断来唤醒时,就必须在进入Idle省电模式前,将该中断设定完成,才能使其产生中断事件来唤醒CPU。

Power Down省电模式

Power Down是新唐科技NUC1xx省电的一种模式,因为一旦进入Power Down省电模式,晶振时钟会被关闭,整颗NUC1xx呈现静止的状态,这时的耗电量将减到小的程度。而在此模式下,也只有少数的特定中断事件能够唤醒 NUC1xx,使其恢复工作状态。在Power Down模式下,NUC1xx提供了GPIO、USB、UART、RTC、ACMP和CAN的中断唤醒方式。

要进入 Power Down省电模式,除了必须呼叫WFI/WFE指令外,在调用WFI/WFE指令之前,必须另将PD_WAIT_CPU和PWR_DOWN_EN两个功能依序打开。已确保CPU先进入Sleep模式后,系统再进入Power Down模式,此时NUc1xx是属于省电的状态,耗电量将降到约15uA。

一旦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晶振起振所需时间约1~2ms。实际量测范例数据如图2所示。

巴萨决赛前连迎喜讯MSN有望齐战河床
国内首家液化品保税物流中心落户镇海
七月份适合去哪里旅游七月份去哪里美
友情链接