本笔记整理自微芯官网:http://ww1.microchip.com/downloads/en/AppNotes/00606B.PDF文档编号:AN606
PIC单片机的低功耗设计
简介
功耗是设计一个系统的一个重要的参数,尤其在电池供电系统中。
PIC家族的芯片提供低价格,低功耗和高性能的解决方案,为了使系统工作在最低功耗的模式,设计者必须正确的配置芯片,本笔记针对低电流功耗,以及电池供电系统的一些建议,用来整体减少系统的功耗。
设计工艺技术
很多技术可以减少系统功耗,最主要的是睡眠模式和外部事件。
工作在睡眠模式下,可以通过看门狗和外部事件来唤醒芯片,执行完代码后,继续工作在睡眠模式,睡眠模式下,主时钟关断,此时电流很小,典型的睡眠模式下的电流只有几uA。
如果工作在RC震荡模式下,同时不是睡眠模式时,可以通过并联一个电阻来减小时钟速度,从而减小功耗。当某个事件发生时,可以继续工作在全速模式。
这种模式的电路如下:
外部电路来减少功耗的办法如下图,这种方法通过一个逻辑门的芯片来导通和关断电源,从而减少功耗:
降低系统供电电压,典型使用3V供电,是另外一种降低功耗的办法,这种方式用在用电池供电的系统中。
大量的器件包括运放和AD模块等CMOS模块采用CMOS工艺的设计,从而降低了系统功耗,具体TTL和CMOS的功耗区别如下:
1)TTL电路是电流控制器件,而CMOS电路是电压控制器件。
2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。
3)CMOS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。
同时芯片引脚提供一个20mA的输出,使得外部电路更加简化,同时不需要使用的外设可以关掉,来降低功耗。
温度是影响功耗的另外一个方面,更高的温度下,芯片的功耗也越大。
上面IPD和VDD,与温度的曲线可以在手册中查找到。
如何测试芯片的IPD故障?
测试IPD可以采用以下的电路,来测试RP和RG的电流,如果发现测试的电流有问题,可以按照一下的步骤来进行排查:
- 复位是否连接正常?VDD的上升值是否低于0.05V/ms,VDD是否从VSS开始,然后再上升?可以参考AN522提供的文档了解芯片的上电顺序。
- 是否所有的引脚都拉低或者拉高?如果引脚悬空,在数字输入缓冲中会有一个开关电流,尤其是引脚被配置为一个模拟输入的时候,在上电复位和振荡器启动的时候,悬浮的引脚会有功耗。
- 建议所有未使用的一家配置为输出,并设置为一个固定电平。
- PIC16C5X芯片要求T0CKI为一个固定电平。
- 如果引脚配置为模拟输入,显然会带来更大的功耗。
- 所有的外设是否关闭?
- PORTB是否有上拉设置?
- 上电的定时器是否使用?
- 如果RP不等于RG,显然是有引脚输出了电流,此时要关掉有电流输出的引脚。
电池供电系统的设计:
如果设计的系统采用电池供电,设计者必须考虑尽可能降低系统功耗:电压,产品外形和重量,操作温度,和工作频率。
设计完成以后,设计者还需要提供如下的参数输出:典型操作电压,电流的输出效率,尺寸的约束条件,系统工作时长,电池类型,系统工作的温度。
要形成电池的选择标准是很困难的,例如电池的工作电压不同,锂电池提供的电压为3.0V,而镍锌电池提供1.2V,另外,锂电池和镍锌电池的充电电流相差很大,设计这需要考虑左右的参数来做一个选择,附录里面有选择电池的一个介绍,可以作为参考。
在低功耗设计的时候,还有一个重要的工作就是计算电池的容量,下面的图中,我们可以计算出系统在各种状态下的功耗大小,根据系统要求工作的时长,估算出一个电池的大小
下面的例子,如果系统要求工作6个月,可以按照上面的方式进行计算:
上面的计算方式没有考虑系统的电源利用效率和温度的影响,在选择电池的时候,需要将这两个参数考虑进去。
设计实例:
PIC16C54工作于32.768频率下,一个12位的AD用来采集温度数据,数据通过LED以300的波特率发送到接收器,AD,运放,温度传感器通过IO供电,看门狗使能用于周期性唤醒MCU来采集数据,下面是这个方案的原理图:
此电路有两个工作模式:激活状态和睡眠状态。没有明显的上电区间,电路通过电池进行直接供电,激活状态的电流为8mA,而睡眠状态为6.5mA,外部模块通过IO供电,在激活状态工作电流为4mA,而睡眠状态为0.5uA,这样,容量的计算如下:
计算激活和睡眠状态的百分比,然后计算需要工作的时长,通过市场,百分比和电流来计算容量,然后将每一个时段的计算相加。
如果采用松下的BR2325锂电池,参数为6V,165mAh,通过计算可知每一充电,工作在22℃环境下,可以使用24.2天。
附注:
2、如果需要上面例子的程序以及选电池的参考意见,请详看上面的手册。
文章评论(0条评论)
登录后参与讨论