
编辑|稻述
引言随着电子技术的不断发展,很多应用系统对功耗提出严格的要求。
作为电子设备控制核心的微控制器(MicrocontrollerUnit,MCU)产品,在物联网时代迎来了更广阔的商机。

无论智能功能是通过SoC器件或分立式MCU器件嵌入在设备中,低功耗都至关重要。
本研究围绕由SiliconLabs公司推出的C8051F005微控制器,从电源管理技术入手,对功耗计算等问题展开讨论,尝试提出几种降低功耗的方法,不以牺牲性能为代价,实现应用系统的低功耗优化设计。


C8051F005微控制器是完全集成的混合信号系统级微控制器,采用了嵌入式flash混合信号CMOS工艺,具有应用灵活方便、稳定性好等优点,以其卓越的性能得到广泛应用。
从工作原理而言,CMOS电路的功耗主要包括静态功耗、动态功耗和泄漏功耗三部分。其中,静态功耗和泄漏功耗都相对较小,因而动态功耗是CMOS电路功耗的主要部分。

一般情况下,对于CMOS数字逻辑器件,主要受到系统时钟SYSCLK频率和电源电压的影响,功耗P的计算可用下式来描述:

其中,C为CMOS数字逻辑器件的负载电容;V为电源电压;f为器件工作时系统时钟SYSCLK的频率。
为实现应用系统的低功耗设计,就要在应用系统设计时对这些影响功耗的参数进行合理的调控。


C8051F005微控制器的系统时钟SYSCLK,可以来自器件内部振荡器或者外部振荡器。
内部振荡器可以对内部振荡器控制寄存器OSCICN进行配置,提供2MHz、4MHz、8MHz或16MHz这4个时钟频率,也可以被使能或者禁止。

使用外部振荡器可以得到其它的时钟频率,外部时钟源可以是CMOS时钟、RC电路、电容或晶体振荡器。
在常规工作模式之下,典型的应用需要一个在C8051F005全部工作时间之内保持不变的系统时钟SYSCLK频率,这时应选择消耗最低功率的振荡器配置,采用满足应用系统功能和性能要求的最低系统时钟频率。

C8051F005的系统时钟SYSCLK频率是可以在任何时刻改变的,也可以根据需要,选择外部晶体振荡器或者内部振荡器作为系统时钟源。
在系统应用时,C8051F005可以在需要对数据高速采样的过程中,使用频率较高的内部振荡器,一旦高速数据采样结束后,再切换系统时钟源,使用频率较低的外部晶体作为实时时钟。
这样通过高速和低速时钟的切换,可以有效地降低功耗。这一类内部振荡器与外部晶体的组合系统工作原理图如图1所示。
由公式(1)可知,CMOS数字逻辑器件的功耗与电源电压的平方成正比,因此降低器件的电源电压可以减小其功耗。C8051F005微控制器要求的电源电压范围为2.7~3.6V。
为了减小功耗,应降低供电电源电压,尽可能在电源电压范围内使用3.0V供电,而不是采用通常的3.3V供电。
三、合理选择电源管理方式C8051F005微控制器除了常规工作模式以外,还具有两种电源管理方式:空闲和停机,使其可以工作在低功耗工作模式。
因为C8051F005在空闲方式下的系统时钟仍然是运行的,所以此时的功耗与其进入空闲方式之前的系统时钟SYSCLK频率,以及其使用并处于活动状态的外设数目有关,相较而言处于停机方式时消耗的功率是最少的。
C8051F005微控制器工作在空闲或者停机方式,都是可以通过软件编程来实现的。空闲和停机方式时的功耗都要比常规工作模式时的功耗低。
虽然C8051F005具有空闲和停机方式,但最好还要禁止不需要的模拟外设,以使其功耗最小。
因此,可以根据C8051F005微控制器执行任务进程的不同,实时动态切换工作模式,以实现降低功耗的目的。
当C8051F005处于空闲方式时,CPU和flash存储器都停止工作,而外设和时钟仍处于活动状态。只有当有被允许的中断发生或者系统复位时,CPU才退出空闲方式。
电源控制寄存器PCON的第0位是空闲方式选择位IDLE,常规工作模式下执行完对该位置“1”的指令后,C8051F005将立即进入到空闲方式。
空闲方式下,所有内部寄存器以及flash存储器仍保持原来的数据不变,并且所有的模拟外设和数字外设都保持活动状态。
在空闲方式下,如果有被允许的中断发生,或者有复位条件产生,C8051F005都将退出空闲方式。以某款应用电路系统为例,实施功耗动态管理策略。
其中,C8051F005作为系统的核心控制器件,被设置为空闲方式,当定时器3溢出后即启动一次A/D转换。
A/D转换过程结束产生的中断将使CPU退出空闲方式,C8051F005进入到常规工作模式而开始处理A/D采样值。
当采样值处理过程结束后,C8051F005又重新进入空闲方式以节省功耗,同时等待下一次被允许的中断发生。
这样通过设置C8051F005的空闲方式,可以有效减小功耗,并完成精确的控制。
当处于停机方式时,CPU停止工作,并且其所有的中断以及定时器(不包括时钟丢失检测器)都处于非活动状态,系统时钟SYSCLK也停止运行。
在进入停机方式之前,需要使用软件编程配置寄存器,将所有的模拟外设关闭。
在停机方式下,如果有内部或外部的有效复位条件产生,包括:外部复位(/RST)、比较器0、时钟丢失检测器以及外部ADC转换启动信号(/CNVSTR)等,都可以使C8051F005退出停机方式。
对PCON电源控制寄存器进行控制,寄存器第1位是停机方式选择位STOP,常规工作模式下执行完对该位置“1”的指令后,C8051F005将立即进入到停机方式。
在设计应用系统时,为实现降低功耗的目的,可以让C8051F005微控制器在不需要工作的时间内处于停机方式,而当需要工作时,再用外部ADC转换启动信号(/CNVSTR)等有效复位信号,使其退出停机方式,重新返回到常规工作模式。
四、C8051F005功耗计算C8051F005微控制器消耗功率的部件包括两方面:模拟外设和数字外设。
模拟外设的功耗不会随着系统时钟SYSCLK频率的不同而有较大的变化,而数字外设的功耗则与系统时钟SYSCLK频率相关联,会随系统时钟SYSCLK频率的变化而变化。
分别估算出模拟外设和数字外设的功耗,二者相加即可计算出C8051F005器件的总功耗。
一般情况下,一个低功耗的应用系统设计,应在满足功能和性能要求的基础上,采用较低的系统时钟SYSCLK频率以及较低的电源电压,并尽可能地合理使用电源管理方式,实施功耗动态管理策略,以最大限度地降低功耗。
C8051F005微控制器降低功耗的大多数条件,都是可以通过软件编程实现或控制的。
除了使用尽可能低的系统时钟SYSCLK频率之外,还可以合理地选择内部振荡器或外部振荡器作为时钟源,以实现减小功耗的目标。
根据数据手册,C8051F005微控制器使用内部振荡器所消耗数字电源电流的典型值约为200滋A,使用外部振荡器时消耗的电流则是不固定的。
当使用晶体等外部振荡源时,由模拟电源提供的驱动电流是变化的,可在软件中通过配置OSCXCN外部振荡器控制寄存器的XFCN位来设置,使用上较为灵活。
由数据手册可查知C8051F005微控制器典型电流与外部振荡器频率控制位设置的关系,如表1所示。
当使用晶体等外部振荡源的驱动电流较大时,C8051F005便可以采用内部振荡器,使功耗有效地降低。
由表1列出的数据可知,当C8051F005微控制器设置的XFCN位值较小时,由模拟电源提供的驱动电流仅几滋A,远小于使用内部振荡器所消耗的上百滋A电流,所以此时可以切换到外部振荡器以降低功耗。模拟外设的功耗与系统时钟SYSCLK频率相对无关。
在数据手册中,可以查找到各模拟外设的典型电流值,结合UltraFLEXSOC测试系统实测得到的相关数据,归纳出C8051F005微控制器模拟外设的电流消耗情况,如表2所示。
当所有的模拟外设都被允许时,实测得到的模拟外设消耗电流约为1.0mA左右。因此,在实际应用中,可以通过禁止所有不用的模拟外设部件来降低功耗。
由公式(1)也可得知,数字电源电流与系统时钟频率成正比,与电源电压成正比,而与使用多少个数字外设无关。
结合UltraFLEXSOC测试系统实测得到的数字外设相关数据,估算C8051F005微控制器数字外设电流消耗。
在正常工作方式下,假定VDD电源使用3.6V供电,数字外设消耗电流的经验数据约为1.0mA/MHz(如果模拟外设ADC、比较器、DAC、内部VREF等被允许工作),而使用较低的VDD电源电压将使功耗降低。
C8051F005微控制器工作在正常或空闲方式下,归纳出用于估算数字外设消耗电流的经验数据如表3所示。
当C8051F005微控制器使用的电源电压、系统时钟SYSCLK频率及模拟/数字外设部件都已确定,就可以估算出C8051F005微控制器消耗的总电源电流。
在某款应用系统中,使用C8051F005微控制器片内的ADC,对一个前端压力传器输出的模拟电压参数连续采样,并将A/D采样值保存到片内flash存储器中。
系统设计为了控制ADC连续采样的精确间隔时间,采用外部16MHz晶体振荡器来提供系统时钟SYSCLK。
C8051F005工作在常规方式下,为了节省功耗,并确保电路能够正常工作,系统中使用3.0V的电源供电,C8051F005定时器3用于对ADC采样间隔定时。首先估算模拟外设电流。
应用系统中C8051F005微控制器使用的模拟外设包括:ADC、外部振荡器、VDD监视器,各模拟外设消耗电流如表4所示。
根据表4列出的各模拟外设消耗电流值,便可计算出模拟外设消耗的电源电流值约为:450mA+2900mA+10mA=3360滋A抑3.4mA。再估算数字外设电流。
C8051F005工作在常规方式下,使用3.0V电源供电,定时器3对ADC采样间隔定时,根据表3数据,可得数字外设消耗电流的经验数据为0.8mA/MHz。
在系统时钟频率为16MHz的条件下,计算出数字外设消耗的电源电流值约为:0.8mA/MHz伊16MHz=12.8mA。
最后估算总电源电流。将上述模拟外设和数字外设消耗的电源电流值相加即为C8051F005微控制器消耗的总电源电流值,即为:3.4mA+12.8mA=16.2mA。
五、结语低功耗微控制器应用系统应在满足功能和性能要求的基础上采用较低的系统时钟SYSCLK频率以及较低的电源电压,并尽可能地合理使用电源管理方式,实施功耗动态管理策略,以最大限度地降低功耗。
C8051F005微控制器的使用灵活方便,通过降低系统时钟频率、禁止不用的外设部件、合理选择电源管理方式等。
调控产生功耗的大多数条件,都可通过软件编程来完成,不仅缩短了系统设计时间,还有助于简化设计人员面临的问题复杂性,较为理想地实现应用系统低功耗设计的目标。
参考文献1.ZhangChao,ZhangZhipeng,LiuTiefengADesignofUltraLowPowerLDOforMCUStandbyMode[J]Microprocessors,2017,38(6):33-36
2.GengShuang,HuangJieDevelopmentofahigh-precisionautomaticloadingandweighingsystembasedonC8051F021[J]ElectronicMeasurementTechnology,2019,42(1):83-86
3.ZhangYigang,PengXiyuan,JiangShouda,etalNewMCS-51microcontrollerapplicationdesign[M]Version3Harbin:HarbinInstituteofTechnologyPress,2008
4.LiYongResearchontheTechnologyofDigitalGunGaugeSetter[D]Nanjing:NanjingUniversityofTechnology,2007
5.SunAijunRemindersystemdesignandimplementationofon-boardhost[D]Xi'an:Xi'anUniversityofElectronicScienceandTechnology,2009