随着更多功能被推向更小但更复杂的设备,低功耗已成为一个不可避免的大问题。特别是,具有限制性能源(例如电池电量)和紧凑空间限制的手持产品的设计转化为必须从有限的能量储备中挤出更多的运行时间。尽管如此,大型处理器被指示处理许多独立的基于I/O的任务,同时将大部分时间用于低功耗空闲和睡眠状态。由于电池运行时间是用户敏感的功能,因此工程师实时管理能量的能力可能决定了设计的成功。然而,物理学是物理学,我们只有很多选择。幸运的是,巧妙地使用我们所拥有的选项和资源仍然可以产生令人满意的结果。
本文着眼于几个具有低能耗特性和目标设计要求能效的大型处理器。它研究了降低功耗的技术,如何动态管理外设以及这些部件能够声称和实现的能量和电流抽取数量。虽然微控制器引脚数从5到500不等,但我选择了各自系列中的所有100引脚器件,以便进行更多的比较。原理和技术适用于更大的引脚数,因此可以推断出此处提供的信息。这里引用的所有零件,数据表,应用笔记和开发套件都可以在Digi-Key的网站上找到。
有用的设计技术
欧姆定律和电路理论非常清楚,我们只能做很多事情。降低能耗,尤其是电路尺寸越来越小,门数越来越大。降低功率的主要方法是降低电压,这是常见的做法。通过分离式电源(内核,I/O和外设特定电源需求),片上稳压器或采用单个均匀低电压(主要为1.6至1.8 V),微控制器的功耗要求一直在稳步下降。这是芯片制造商所做的事情,如果我们选择这样做,我们所拥有的几乎所有东西都可以在更低的电压下运行。降低功耗的另一个关键方法是降低驱动我们的核心处理器逻辑的开关频率,状态机,定序器和外围设备。数字电路的功耗与它们开关或时钟的频率成正比(图1),因此降低的时钟频率会以相应的方式降低功耗。
图1:特别是对于CMOS电路,功耗与栅极级的开关频率成正比。在较低频率下获得相同的性能会大大降低功耗。
虽然这种技术会直接降低处理性能,但并非一切都必须具有较低的时钟频率。核心处理器可能正在高速运行,但UART没有理由需要将11.0592 MHz时钟分频以获得可靠的9,600波特连接。如果芯片制造商很聪明,他们会让工程师选择如何使用我们的可用时钟来驱动我们的外围设备。有些人这样做,因此您可以从32.768 kHz频率(1个时钟,每秒3,375个)运行低能量UART。对于A/D和D/A转换器也是如此,因此基于传感器的设计也可以从这种技术中受益。
原始处理器性能也很重要。如果起动处理器能够在必须重新进入休眠状态之前的1 ms内完成所有相关任务,则最好比必须运行20 ms的较慢处理器更好。睡眠和低功耗模式通常非常有效,因此更快进入睡眠模式可以节省大量能量。同样,唤醒时间也很重要。唤醒时能量消耗更高,因此快速唤醒意味着更少的整体更高功率导通时间。外围唤醒时间在这里也非常重要,包括芯片外和芯片外另一种降低能耗的技术是使用片上或片外自主外设,可以在低功耗后台模式下工作,而无需主处理器的任何干预。视频或显示处理器可以刷新显示而无需处理器干预。它还可以监控触摸屏并识别真实意图与错误联系。它应该使用比核心处理器更少的功率运行,因为它通常是运行时精简,分解,减少状态的机器,需要最少量的有源硬件。
数据转换器是可以从这种技术中受益的另一部分(图2)。每毫秒需要监视的传感器可以在计时器启动转换时休眠,将转换结果传输到内存,更新指针和计数器,并且只有在准备好处理一定数量的样本时才唤醒处理器。添加比较(作为模拟比较器或数字值阈值监视器)可用于使处理器无限期地保持睡眠状态,直到出现“警报”或“警报”级别。这样就可以节省所有唤醒,嗅探和恢复睡眠的能量。
图2:可以监视顺序进程的自治状态机可以使内核保持深度睡眠状态以便延长周期,节省大量的电力使用。
在我们的示例微观中仔细检查的一个关键参数是他们声称实现的实际待机电流。虽然这些都是很好的球场数据,可以帮助缩小场地范围,但是要考虑到这些数字,因为许多其他因素会影响整体功耗。例如,我们的I/O状态是什么时候微睡觉?这些功耗数字不包含在供应商使用的任何低功耗数字中,因为它们取决于我们如何配置I/O.如果我们驱动两个20 mA高电流I/O线,并且我们的睡眠电流为100μA,我们仍然在静态和睡眠状态下燃烧40.1 mA。
一些好的候选者
几家MCU制造商低能耗和低功耗能力,我们有责任了解我们可以相信什么和不能相信什么。确定这些数字的方式比手头的数字更重要。尽管如此,在寻找满足我们性能需求且可以在低功耗模式下运行的处理器时,已发布的规格和功能是一个很好的起点。例如,采用Atmel的SAM4Lx系列ARM®Cortex™-M4处理器其专有的picoPower技术。该48 MHz器件的有功电流消耗低至90μA/MHz。它宣称其快速的1.5μs唤醒时间,这是一个重要的数字。此外,其等待和保持模式下,RAM保持的低功耗模式分别降至3和1.5μA。请注意Atmel用于RTC和器件的低功耗32.768 kHz时钟。还可以接入慢速R/C时钟以进一步降低功耗。对于USB高速数据的突发,内部PLL可以高达240 MHz,然后再次关闭以节省功耗。 100引脚ATSAM4LC2CA-AU具有80个I/O,其中包括6个高驱动电流吸收源引脚,输入电压低至1.68 V.该器件仅消耗218μA/MHz(最高48 MHz),同时在低功耗模式下消耗6.9μA。
SAM4L内部一个有趣的功能块是产生时钟和复位的电源管理模块,并执行 - CPU,高速总线和外围总线时钟的频率变化(图3)。屏蔽寄存器保持时钟的分频器电平,允许所有器件以不同的速度运行以节省功耗。此外,当发生即时频率变化并且未使用的外设可以完全关闭时钟时,不需要关闭外设或功能模块。
图3:CPU,总线和外设的动态时钟更改通过专用的电源管理单元进行控制,该单元也可以将时钟完全关闭到未使用的外设。 br》此处还嵌入了其他几种功率优化外设和功能,包括胶合逻辑控制器,并行捕获模式,带窗口检测的模拟比较器,以及独立的外设事件检测系统,可实现直接的外设到外设通信保持核心睡眠。
在可比较的规模上,让我们看一下STMicroelectronics的STM32-L1系列。该部件采用超低泄漏工艺技术,功耗低。特别是,我们将研究STM32L151VBT6,它是具有83个I/O的100引脚版本。该器件的工作电压低至1.65 V,工作频率范围为32 kHz至32 MHz,频率为214μA/MHz。虽然它的唤醒时间《8μs并不像某些那么快,但它确实具有9μA的低功耗运行模式。这里的一些不错的功能包括两个超低功耗比较器和低功耗12-位A/D和D/A转换器,速率高达1 Msample/s(当VCC为2.4 V或更高时)。一个不错的“ZEROPOWER”上电复位可以与掉电复位电路紧密耦合,许多睡眠,贪睡和低功耗模式提供了一些灵活性,可以在核心和其他外设睡眠时保持某些外设处于活动状态。该器件还具有32.768 kHz时钟和相当灵活的时钟分配方案。
德州仪器(TI)的一款有趣的低功耗产品值得关注。众所周知的MSP430系列有几个部件经过优化,可以降低能耗,例如100引脚MSP430F5436IPZR。虽然最低工作电压仅为2.2 V,但它是一个16位内部架构(本质上可以通过不必保持这样的宽寄存器来节省能量),并且在待机模式下仅有1.8μA的RAM保留。
其低功耗存储器的唤醒时间为5μs,电流消耗为226μA/MHz。该器件还提供低功耗振荡器,最高可达18 MHz。 MSP430系列包括针对特定应用组合各种外设的成员。不同的风格包括12位A/D转换器,内部参考,采样和保持以及自动扫描功能。
提供一种有源模式,但提供五种软件可选的低功耗模式,保持不同的功能和外设活。所有I/O端口的驱动强度都是可编程的,可以定义多达10个8位I/O端口,以便于并行接口。
Digi-Key网站上的TI提供超低功耗MSP430培训模块对于MSP430,以及其他几个描述外设,设计工具,时钟系统等的产品培训模块。
Silicon Labs提供了一个有趣且有效的低功耗处理器解决方案,其48 MHz Giant Gecko ARM 32位Cortex -M3,100引脚(86 I/O)处理器 - EFM32GG280F1024-QFP100。这部分以及Gecko部件系列的其他部件从头开始设计,具有低能量外设(低能量UART,A/D,D/A等),快速唤醒(2μs),自主外设和嵌入式硬件,以促进可延长电池运行时间的低能耗模式。
在全功率模式下,一切都打开并运行,该器件提供150μA/MHz的极低功耗。其他四种低功耗和睡眠模式使选择的外设和RAM保持活动状态。此外,与同类产品中的其他几款处理器一样,Geckos采用灵活的时钟方案,同时具有高频和低频晶振以及R/C振荡器,可以为不同的时钟提供时钟和功率优化。
Gecko MCU使用公司在部件内部称为反射总线的方式将自主功能提升到更高水平。这是一种基于状态机的互连机制,类似于将指挥棒从一个外围设备传递到另一个外围设备,同时微睡眠。供应商的LESENSE功能可以设计具有自主条件监控功能的超低功耗传感器接口。在不使用微控制器CPU的情况下,EFM32系列可以监控16个传感器并做出反应,同时将能耗降至最低。 LESENSE低功耗传感器接口还支持片上模拟比较器,运算放大器和非常方便的事件检测器。这允许复杂的事件链在低功率背景状态下发生而无需唤醒核心处理器(图4)。
图4:组合几个低能量这个例子说明了一个使用霍尔效应器件的正交金属传感器,它不会唤醒处理器,直到进行了一些相当高级别的决策。振荡器的频率和幅度会有所不同,具体取决于金属的存在。一旦有偏见,巧妙使用事件检测器将告诉工程师我们正在寻找的事件已经发生。然后我们唤醒我们的处理器。
Silicon Labs引用的另一个应用示例是一个自振荡电容式触摸屏传感器,它只在有效触摸发生时唤醒主机处理器。以类似的方式,可以在核心休眠时监控传感器,并且仅在报警条件下唤醒传感器。
更少可以更多
低能耗设计的最佳方法,尤其是大量I/O,硬件功能,资源和巧妙的编码设计方法的组合。而不是FOR或WHILE循环,让微睡眠和从定时器或事件唤醒它可以节省电力。
同样,能够在每个I/O上编程驱动器强度,甚至禁用内部上拉所以你可以使用更高价值的外部能量,有助于从你的能源中挤出每一微焦耳的能量。很高兴知道这些部件随时可以提供帮助,提供各种低能耗功能。
全部0条评论
快来发表一下你的评论吧 !