一:首先了解芯片的内部功耗
芯片制作完整过程包括 芯片设计、晶片制作、封装制作、成本测试等几个环节,其中晶片片制作过程尤为的复杂。首先是芯片设计,根据设计的需求,生成的"图样"开发一个手持设备,有一个设计重点问题是必须要重视和解决的。那就是在待机状态下如何做到省电,即在待机状态下如何做到尽可能的低功耗,比如用芯唐科技的Cortex-M0内核的NUC100做手持电台的开发,
1、首先要了解的就是该芯片在深度休眠或睡眠模式下功耗是多少(即该模式下的工作电流时多大,注一般的芯片都是uA级别的)。
通过查看NUC100芯片资料(在每个芯片手册电气特性或DC电气特性一节会有说明)了解到该芯片的工作电流(体积小、低功耗、效率高、低闸极数、指令精简的处理器,8位机价格,32位机效能,C-语言,与Cortex-M3开发工具以及二进制程序代码兼容,便利的开发环境Keil? RVMDK 和IAR EWARM,180 uLL制程并运用ARM标准单元资源库,低闸极数的空间内,功耗低到85 microwatts/MHz以下,NUC1xx系列包括:NUC100/ NUC120/NUC130/NUC140,NUC100 Cortex?-M0内核系列可运行至50MHz外部时钟。)和深度休眠模式下的功耗 (功耗有Ipwd1,Ipwd2,Ipwd3,Ipwd4,表示NUC100内部的模块工作需要外部提供四个VDD接口,计算功耗时要把他们累加起来,这里给出了每个VDD接口的休眠模式下功耗值,当然如果芯片可以关闭某个模块的对应的VDD,那就可以降低更多不必要的功耗了)
2、首先要了解的就是该芯片在深度休眠或睡眠模式下功耗是多少。
通过查看NUC100芯片资料了解到该芯片的工作电流(即功耗)和深度休眠模式下的功耗 .
二:电路供电系统的功耗分析
下图是7R手台控制电路(用2个端口做开关机判断处理,按键开关机时波形图(开/关机波形一样))
上图的工作原理是这样的:
当POWER_KEY按下不,TP1点就持续高电平(下面示波器波形图的下面一个通道的波形图),
由于C1两端电平不能突变,所以C1在POWER_KEY按下瞬间其两端都是高电平(其实C1起到加速作用),这样三极管Q1的由于基极出现高电平会瞬间导通,然后,TP2点出现低电平,然后C1会通过Q1的基--Q1发射--R1--C1构成一个回路进行放电,注意C2电容的容量相比C1很小,0.1u=100000p,估计C2在此电路的作用就是滤除高频成分的目的。
(这里容易糊涂:C1不能突变,POWER_KEY按下瞬间C1两端不能突变,可是C2两端也不能突变,所以C2两端都是低电平,那C1和C2的交点电压就打架了?,因为C2电容量相比C1的电容量很小,几乎对C1不会产生影响,当然如果C1和C2都是0.1uf,这POWER_KEY1导通瞬间,由于C1 C2两端电压都不能突变,则他们的交点电压应该是2.5V)
下面用一个端口实现的开关机功能(因为INT0和PB14功能可以做程序中作改变):
程序控制流程稍好加上:
分析:
根据系统功耗要求,MCU在待机模式下不能工作。如何通过长按按键开启系统,并能够在释放按键后系统也能正常工作?然后在开机后,再次长按按键后又可以进入0uA的超低功耗下面待机。
MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。对于无片内ROM型的芯片,必须外接EPROM才能应用(典型芯片为8031)。带片内ROM型的芯片又分为片内EPROM型(典型芯片为87C51)、MASK片内掩模ROM型(典型芯片为8051)、片内FLASH型(典型芯片为89C51)等类型,一些公司还推出带有片内性可编程ROM(One Time Programming, OTP)的芯片(典型芯片为97C51)。MASKROM的MCU价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合;FALSHROM的MCU程序可以反复擦写,灵活性很强,但价格较高,适合对价格不敏感的应用场合或做开发用途;OTPROM的MCU价格介于前两者之间,同时又拥有性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。
解决:
系统在待机状态时,当POWER_KEY1按键被长按。Q2导通,电池输入电压的高电平信号直接供到MCU芯片电源端,然后MCU一个GPIO端口立即输出一个高电平使Q2的基极持续高电平,目的是锁住Q2持续工作,这样MCU就持续有电供电,这样,按键即使被释放后,也能保证系统一直处于工作状态。
当需要关闭系统时,还是长按POWER_KEY1按键,这样会通过INT0中断检测到这个中断,然后GPIO不在输出高电平锁存Q2的基极,这样松口当POWER_KEY1就可以关闭系统了。这样关闭系统后,也没什么功耗了,
注:下图只是提供一个思路,这个电路还有待完善,GPIO这样连接是否安全,比如Q2换用MOS管,各个电阻的值也要根据实际电路选区,或增加电阻,电容等器件,这个系统才能完美工作!
三:设计低功耗常用思路
如何利用万用表测试一台机器在稳定电压下的功耗:把FLUK万用表跳到电流档(注意表笔的插头摇换到电流档)的红表笔接到电源的正极(用黑表笔接正也不会有危险),然后用黑表笔接到机器的正极,然后把电源的负极接到机器的地端,就可以测电流了。
四:设计低功耗常用思路
降低功耗不光能够大大的节约电能还能简化电源部分的设计,甚至可以用于手持设备上面使用,这些都已经越来越成为未来产 品的设计方向了^_^
1 降低功耗从MCU选型开始,一开始选型的时候就应该考虑选择低功耗的MCU比如MSP430一类的为低功耗设计的CPU. 强烈不建议使用51一方面是因为51速度慢,还有一点就是51的运算速度实在是太慢了,很多运算用51都需要很高的 主频而主频高了就意味着高的功耗。
2 选择器件用电电压,很明显降低器件的用电电压能够明显的降低器件的耗电比如说ATmega8和ATmega88虽然芯片大致内部结构 一致但是后者可以工作在1.8V的超低电压下而前者就不行,综合考虑下当然还是选择后者。
3 尽量降低器件的工作频率,大家都知道CMOS电路的工作电流主要来此于开关转换时对后输入端的电容充放电,如果能够 降低MCU的工作频率自然耗电也就下来了。要知道当AVR工作在32.768Hz时和工作在20Mhz时的工作电流差异可不是一般的小啊 .
4 尽量使用中断让处理器进入更深的睡眠,众所周知睡眠模式和掉电模式能够大大的降低MCU的工作电流,聪明的单片机设计师能够充分的利用MCU的中断功能让MCU周期性的工作和睡眠从而大大的降低MCU的工作电流。
5 尽量关闭MCU内部不用的资源,这个吗,地球人都知道的好处,我说这个有点像废话一样,不用的东西你干吗开着呢 ?比如ATmega8内部的模拟比较器,默认是开着的还有ATmega88内部的大多数资源都可以在不用的时候用软件关闭。
6 尽量使用VMOS做为外部功率扩展器件,道理很简单VMOS驱动的时候是电压行器件驱动是几乎不产生功耗,要比普通的晶体管 省电多了。而且由于VMOS的导通内阻低通常只有几十个毫欧,在小电流的时候器件自身发热也小,尤其是小电流是效率远比 传统晶体管要高的多的多。这里还是建议使用高速VMOS,因为高速VMOS在开关速度相当高的PWM时效率会更高。
7 片外IC的电源都能由MCU的IO控制比如说我们常用的24C02,由于它是掉电记忆的,所以我们完全可以在它不工作的时候 对它关电源,以节约电流还有比如说我们常用的6116的SRAM我们完全可以用单片机来控制它的片选端口来控制它的工作与休 眠从而节约电流。
8 这招也是毒辣的一招通常我们驱动一些LED器件,完全可以通过PWM来控制从而省略限流电阻,要知道当器件选定后它的内 阻也就已经确定,如果用户使用的是电池,我们完全还可以不定期的对电池电压进行检测然后改变占空比,从而恒定负载上 面的电压,达到电源的利用率。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。