- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
实现MCU应用的低功耗
我们已经进入了这样一个时代,即开始期望和要求电池供电设备实现更多的功能。我的第一台PDA的电池仅工作了一天,而且如果还启动了时间提示功能,那么电池能量将会很快耗尽。今天,在相同的条件下,我的PDA能够工作一周。这两款PDA用的都是相同容量的锂离子电池,那么是什么使情况发生了改变呢?答案很简单,电路硬件在改进,电源管理技术在提高。相比之下,电池技术的进步反而是次要的。
PDA是系统复杂性迅速增加的一个好例子,正如它们的命运显示的那样,尽管电池性能几乎没有什么进步,但对这类电池供应用的要求却在不断增加。而要成功应对这一功能不断增加的挑战,固件或软件工程师必须完全理解目前市场上的商业MCU处理内核开发工具,同时硬件设计师理解今天市场上商用解决方案的效率。
图1:PIC18F1320的可编程能力允许对系统中的电源电压进行控制,并控制MCU的系统时钟和睡眠模式。 |
模拟和数字部分要协同努力
如果你能够很好地理解MCU的硬件配置和手头上的开发工具,那么你就能够降低功耗,从而能够再添加一些应用功能。降低功耗的一个方向是控制嵌入式应用的电源电压幅度。你可能需要在程序执行过程中的某些点上与真实模拟世界进行交互,如果的确有这个需要,你的设计中必须包含模拟电路。对模拟电源电压的要求要高于对数字电源电压的要求。要记住,模拟噪声容限比数字的小得多,而且模拟噪声水平不随工作电压的降低而减小。
例如,在5V工作电压状态,12位AD转换器能进行优异可靠的转换。同样的12位AD转换器,在2V工作电压状态下,不受噪声影响位数的输出会变少。这是因为,LSB(最低有效位)的位数变小了,而噪声大小不变。这个问题的解决方案是,当仅进行模拟操作时,采用更高的电源电压;而当仅进行数字操作时,切换为更低的电源电压。
图1展示了一个简单的、基于MCU的电池供电系统,是围绕Microchip的PIC18F1320闪存MCU而设计的。PIC18F1320具有多种空闲模式以及双时钟启动功能等特性,对低功耗设计很有帮助。
在硬件方面,为了追求更低功耗表现,MCU的外部外设和内部外设都在不断发展。MCU的外部外设可通过降低芯片工作电压及优化电路设计来降低功耗。图1所示的简单例子,就整合了低功耗运放、AD转换器以及可调稳压电荷泵。
图1中,MCP6041型运放采用CMOS工艺制造,这种运放可以将工作电压降的很低。MCP6041运放由Microchip制造,带宽为14 kHz,电流为600 nA,供电电压在1.4V至5.5V之间。降低的工作电压与降低的静态电流结合,为电池供电设备的电源管理提供了良好的解决方案。
集成了内部或外部AD转换器的MCU,转换器的拓扑结构比IC设计创新对MCU功耗的影响更大。例如,同Δ-∑AD转换器相比,SAR(逐次逼近寄存器)A/D转换器的转换时间和消耗电流之比就低得多。在电池供电应用中往往采用SAR模式的A/D转换器,除非是需要分辨率和精度更高的应用。
图1的电源是可调的。5V电压用于模拟处理相得益彰,2V电压用在数字电路恰倒好处。图1的可调节电源转换器在低输出电流、锂离子电池供电(4.2V到2.8 V)情况下,具有很高的效率。基于这些原因,该设计采用了一款稳压可调的电荷泵式DC/DC转换器(型号为MCP1252-ADJ)。
对不同的操作控制采用不同的工作电压仅是低功耗设计工作的一半。如时刻将低功耗铭记于心,就会希望在维持MCU某些部分工作的同时,关断其它部分。例如,你可以独立运行MCU中的A/D、D/A转换器或USART通信接口,这些部分仅需局部供电就可以正常工作。
对外接设备的能耗优化同样重要。此外,将MCU内、外部的外设与MCU的编程能力结合考虑,会切实降低系统功耗。例如,在MCP1252-ADJ中,可以把一个新的电路切换到电阻反馈系统中,这样MCU就能够控制电压。为了确保模拟电路的最佳工作条件,需要电荷泵输出高电压。而MCU的数字电路部分在较低的电压下就能工作。如,PIC18F1320的输出电压为2V至5.5V。通过直接对比电荷泵的两种输出电压就可计算节省的功率。如果把MCU外部外设的供电切断,加在I/O端口上的供电电压又比较低,这样就可以进一步降低功耗。
控制时钟
当设计师试图降低嵌入式系统电路的整体功耗时,常常忽略的一个问题就是:在MCU脱离睡眠模式时,如何对时钟进行管理。
图2:有3个时钟源的MCU。该系统有2个外接时钟源(定时器1和主振荡器),和1个内部振荡器。
如图2所示,一个MCU可以有多个时钟源,最明显的是一个外部时钟源。在此例中,可以将晶振、陶瓷谐振器、内部控制器时钟或一个时钟发生器连接到适当的器件管脚。除了这些生成时钟信号的部件外,MCU可整合前后分频FLL(锁频环)。前后分频器对输入时钟进行分频,FLL还可以倍频输入时钟频率。
在RTOS(实时操作系统)中,当系统短时唤醒后又进入长时间的睡眠状态,配备时钟管理机制就显得至关重要。如在唤醒时间小于1秒的系统中采用晶振或压电陶瓷谐振器,从睡眠模式唤醒到开始执行指令之间会有一段延时。MCU在此延时和启动期间不会执行指令,而应用电路仍会消耗功率。
例如,图3显示了4 MHz晶振的典型启动时间。在图3中显示该时间大约为450毫秒。假设该晶振是MCU连接的唯一时钟源,分配的程序执行时间是1秒,那么,实际的程序执行时间将比预计的长45%。在时钟启动期间,电路在消耗电能,但又不执行代码。
在此类应用中,选用内时钟来执行程序更为明智。内时钟几乎与电源同时启动,对4MHz的内时钟而言,几微秒的启动时间是很正常的。图4显示了内时钟的启动时间。
与图3所示的4MHz晶振相比,图4所示的内时钟启动速度约有5万倍的提高。从这个数据人们或许可以得出结论,针对此类应用,内时钟是恰当的选择。其实,内时钟的功耗与晶振功耗大体相当,只要不要求MCU运行诸如USART通信或定时一个精准脉冲这类对时间有苛刻要求的操作,选用外时钟源也是可行的。
可进行评测的第3个时钟是压电陶瓷谐振器。图5显示了谐振器的启动时间。
有一个可供使用的时钟系统优于上述三种时钟源的任一种,最好的做法是迅速确定电路是否需要精准时钟。如果MCU需要精准时钟,则启动外接晶振或陶振;若非如此,则关断。MCU从睡眠模式唤醒后,要迅速做出决定。如能将内时钟与外接晶振或陶振结合在一起,就能迅速做出这样的决定。用两个时钟源替代单一时钟源,能够显著降低功耗。
该技术被称为“双时钟启动策略”,也就是说在硬件/固件配置中,MCU使用了2个时钟。在睡眠模式,2个时钟全部关断。唤醒时,内时钟启动并迅速判定是否需要晶振。如需要晶振,内时钟仍将持续执行程序直至晶振启动。此时,MCU将时钟源切换为晶振,并关断内时钟。
从数字角度处理睡眠模式
低功率设计成功的关键在于有一个具有多种睡眠模式和时钟模式的MCU。用户可以通过使MCU进入休眠或空闲模式来降低系统功耗。在空闲模式,MCU关断CPU,但允许10位A/D转换器这样的功能继续工作,而睡眠模式则彻底关断MCU。
当MCU时钟进行状态切换时,MCU内的不同逻辑门都会吸取电流。检查MCU耗电时,应首先检查时钟的功耗。通过对系统各种时钟源进行比对,可以发现,与同频率的晶振、振荡器或陶振相比,内部振荡器功耗最低。
某些MCU有3种基本的工作模式。第一种是完全工作模式,所有模块都上电工作。第二种是空闲或等待模式,MCU外设工作,而MCU不工作。第三种,同时对低功耗的电池供电来说也是最重要的一种,就是睡眠或停止模式。睡眠模式下设备完全停止功耗。睡眠模式通常关断系统时钟,如果也一同切断外部时钟源,系统功耗会进一步降低。
以下是完善低功耗设计的一些建议。将不用的I/O管脚拉高或拉低;只要可能,尽量采用内振荡器,它们是低功耗的选择;切断所有不用的外设,例如PWM(脉宽调制器)、ADC、USART等;在程序中尽量用查询表代替CPU运算;检查所有外围器件的功耗,例如,计算电路全部外围电阻的压降;降低驱动串行EEPROM或外围模拟器件等外设的I/O管脚驱动电平。点亮的LED功耗可能出乎你的意料,一只小小的LED能使你的低功耗设计努力前功尽弃。总之,一定要注意电流消耗。
本文小结
低功耗设计对电池供电的应用来说至关重要。MCU的可编程性能对降低功耗大有裨益,通过调节电荷泵稳压源的输出电压可做到这点。其次关断不使用的非关键外设。还有就是对时钟系统进行控制,以得到最佳的性能/功耗比。集成电路制造商在不断降低器件静态电流和供电电源的同时,一直在努力改进这些外设器件的动态性能。而MCU制造商则通过为MCU增加诸如空闲和睡眠等模式来降低长时间工作时的平均功耗。将低功耗外设与MCU的各种降耗模式结合在一起,将为低功耗的电池供电设备提供更多的选择。
作者:Bonnie C. Baker
Microchip Technology Inc.
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:提供超低输出电压的降压调节电路设计
下一篇:热插拔电路的过热保护新方法