超低功耗控制电路及程序设计思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈低功耗控制电路和程序设计思路
一:首先了解芯片的内部功耗
芯片制作完整过程包括芯片设计、晶片制作、封装制作、成本测试等几个环节,其中晶片片制作过程尤为的复杂。首先是芯片设计,根据设计的需求,生成的"图样"开发一个手持设备,有一个设计重点问题是必须要重视和解决的。那就是在待机状态下如何做到最省电,即在待机状态下如何做到尽可能的低功耗,比如用芯唐科技的Cortex-M0内核的NUC100做手持电台的开发,
1、首先要了解的就是该芯片在深度休眠或睡眠模式下功耗是多少(即该模式下的工作电流时多大,注一般的芯片都是uA级别的)。
通过查看NUC100芯片资料(在每个芯片手册电气特性或DC电气特性一节会有说明)了解到该芯片的工作最大电流(体积小、低功耗、效率高、低闸极数、指令精简的处理器,8位机价格,32位机效能,C-语言,与Cortex-M3开发工具以及二进制程序代码兼容,便利的开发环境Keil?RVMDK和IAR EWARM,180uLL制程并运用ARM标准单元资源库,低闸极数的空间内,功耗低到85microwatts/MHz以下,NUC1xx系列包括:NUC100/
NUC120/NUC130/NUC140,NUC100Cortex?-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导通瞬间,由于C1C2两端电压都不能突变,则他们的交点电压应该是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尽量使用中断让处理器进入更深的睡眠,众所周知睡眠模式和掉电模式能够大大的降