微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于C8051F系列单片机的低功耗设计

基于C8051F系列单片机的低功耗设计

时间:11-09 来源:互联网 点击:
          2.3 数字外围设备与I/O接口的功耗分析

          数字外围设备(计数器、UART、PCA、SPI)的损耗占系统总功耗的比例很小,举个例子,当C8051F单片机工作在3.06MHz(内部振荡器8分频),3V电压时,没有一个数字外围设备端口的工作电流超过700μA,而在启动计数器作为UART0数据传输时钟后,系统的工作电流会增加18μA,这里,计数器与UART的功率损耗主要由其时钟频率及工作电压来决定,利用交叉开关配置通过I/O口为推挽模式,也能够影响功耗的大小,在上述例子中,如果利用交叉开关将UART0的TX端分配到P0.4口,则配置端口为推挽模式将令系统的工作电流再增加82μA,输出引脚的功耗由连接在该引脚的外部电流频率决定。

          2.4 模拟外围设备的功耗

          模拟外围设备功耗是ADC、温度传感器、内部偏置电压产生器及内部振荡器的功耗和,通常,只要ADC、内部振荡器或温度传感器被激活,内部偏置电压产生器就会自动被使能。ADC在转换期间的工作电流比ADC没有转换时的工作电流大30%-50%,SAR转换时钟频率与采样频率也影响了功耗的大小,由于增加SAR转换时钟频率或降低采样率会缩短每次A/D转换的时间,使系统在转换间隙有更多的时间处于空闲状态,因此会大大降低系统功耗。

          3 降低功耗的几点考虑

          要降低系统的平均功耗,需要从两个方面考虑:首先是适当调整在所有时间一直影响系统工作的参数,通常工作电压是重要考虑的参数,工作电压决定了系统是否能够处于正常运作状态,它可以由电压调整器或一个电池来提供,对于一个节能系统,工作电压应该被最小化,以节约能量。第二点就是构建合理的固件结构以降低功耗,要为系统设计两个工作模式:一个为高效的运作模式;另一个则是以降低功耗为目的的睡眠模式,两个模式的设计标准不同,但应尽量让系统在大部分时间内处于睡眠模式,以降低系统的总功耗,下面详细讨论这两个方面的设计。

          3.1 降低工作电压、减少工作电流

          工作电压对系统的总功耗起着举足轻重的作用,对于节能系统、应该尽量在保证系统安全可靠的前提下采用最低的工作电压。通常电压调制器会有10%的误差率,因此在设计工作电压时地最低的工作电压应该为3V,此时电压调制器的输出电压在2.7V与3.3V之间,也可以选择用电池。在这里推荐使用锂电池,锂锰二氧化氮电池能够无须任何调节地输出稳定的2.85V电压,并且该电池能够直接连接到设备的电源引脚,无须担心电池耗尽时会对系统工作有不良的影响,因此C8051F系列单片机中,片上电源监控器能够确保在电池耗尽后系统自动复位。

          由于工作电压通常是恒定的,因此经常通过减小平均电流来降低系统的总功耗,平均工作电流是系统在单位时间内消耗的电荷量,对一个系统来说,其总的运行时间应该被分为两个部分——高效工作期与低功耗休眠期,如图1所示,高效工作期的工作电流偏大,而休眠期的电流非常小,平均工作电流是系统在这两部分时间的总电荷量与时间相除所得的平均值,因此如果想减小平均电流值,唯有通过两种方法解决——缩短高效工作期的时间或减小高效工作期的峰值电流,设计者应该尽量从这两方面着手设计系统,以达到降低总功耗的目的。



          3.2 设计一个低功耗的休眠模式

          可以通过设计低功耗休眠模式,令系统在非工作期一直处于低消耗状态,从而达到减小整个系统工作电流的目的。休眠模式可以通过将电源管理模式设定为空闲或停止状态来实现,通常会设定空闲模式,因为该模式更容易被恢复,需要注意的是,在休眠模式下应该关闭所有不需要的外围设备,并配置休眠模式的时钟为外部振荡器,因为外部振荡器能够禁止内部振荡器的振荡,并能以非常低的时钟基准进行振荡,这里有两个可选的振荡器:36.728kHz晶振与单电容模式外部振荡器。

          外部电容模式振荡器消耗的功耗比晶振低,但没有晶振精确。其优势在于能够使钟控外围设备(如定时器)的频率低度低于10kHz,同时由于其组成只包含1个电容,相比于晶振的2个装载电容及1个电阻器结构,能够节省PCB板的空间,若在设计中使用了高频晶振,则可将装载电容连接到XTAL2引脚,作为外部振荡器使用,并可在C模式下为休眠模式提供一个较低频率的时钟。

          3.3 设计一个高效运作模式

          高效运作模式的设计应该以尽可能缩短完成作业所需时间为标准,使得系统能够尽快地恢复到休眠模式,模式的设计包括调整工作电流的峰值以及时钟频率,以减小高效工作期间的总电荷量,通常在高效工作模式下使用内部振荡器,更有益于系统总功耗的降低。

          下面以ADC采样为例,比较、分析两种设计中系统功耗的消耗率情况。

          片上温度传感器以10Hz速率采样,系统的外部晶振连接到XTAL与XTAL2之间,定时器2每100ms溢出产生一个中断,将系统从空闲模式唤醒。当系统被激活后,系统捕捉ADC采样数据,然后重新返回空闲模式,直到下一个中断发生。

          由于该系统是电池供电,因此系统应尽量减少每次A/D采样所消耗的电荷,由于电荷量是一段时间内电流的总量,因此可以通过缩短采样时间或减小采样时的峰值电流来节约能量。也就是说,在捕捉ADC采样数据时,系统可以选择转换到3MHz的内部振荡器,在短时间内使用大的电流,或是用外部32kHz的晶振作为系统振荡器,使单片机在长时间内使用较小的电流值。

          根据以上分析,进行了两种设计,一种设计是在采样时一直采用外部32.768kHz晶振作为系统时针基准,另一种设计是在采样时将振荡器转换到内部振荡器,以缩短A/D转换的时间,两个系统在不采样时都处于同样的空闲模式。

          第1个系统从空闲模式被唤醒后,系统直接启动了ADC设备开始采样,系统没有转换到内部振荡器,而是仍采用原来的32kHz晶振作为系统的时钟基准,A/D转换结束后,系统读取采样值,关闭ADC并重新进入空闲模式,为了捕捉采样数据,系统在峰值工作电流0.65mA上持续了1.5ms,第2个系统从空闲模式被唤醒时,系统启动内部振荡器与ADC,转换系统时钟基准为内部振荡器8分频模式,并开始ADC转换,转换完成后,读ADC数据,而后停止ADC及内部振荡器并令CPU回到空闲模式,为了捕捉ADC采样数据,系统在峰值工作电流2.2mA上持续了400μs,利用公式:

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

网站地图

Top