以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!
试图降低AVR 控制系统的功耗时需要考虑几个问题。一般来说,要尽可能利用睡眠模式,并且使尽可能少的模块继续工作。不需要的功能必须禁止。下面的模块需要特殊考虑以达到尽可能低的功耗。
模数转换器
使能时, ADC 在睡眠模式下继续工作。为了降低功耗,ATmega32在进入睡眠模式之前需要禁止ADC。重新启动后的第一次转换为扩展的转换。具体请参照P192“ 模数转换器” 。
模拟比较器
在空闲模式时,如果没有使用模拟比较器,可以将其关闭。在ADC 噪声抑制模式下也是如此。在其他睡眠模式模拟比较器是自动关闭的。如果模拟比较器使用了内部电压基准源,则不论在什么睡眠模式下都需要关闭它。否则内部电压基准源将一直使能。请参见P187“ 模拟比较器” 以了解如何配置模拟比较器。
掉电检测BOD
如果系统没有利用掉电检测器BOD,AVR这个模块也可以关闭。如果熔丝位BODEN 被编程,从而使能了BOD 功能,它将在各种休眠模式下继续工作。在深层次的休眠模式下,这个电流将占总电流的很大比重。请参看P37“ 掉电检测” 以了解如何配置BOD。
片内基准电压
使用BOD、模拟比较器和ADC 时可能需要内部电压基准源。若这些模块都禁止了,则基准源也可以禁止。重新使能后用户必须等待基准源稳定之后才可以使用它。如果基准源在休眠过程中是使能的,其输出立即可以使用。请参见P39“ 片内基准电压” 以了解基准源启动时间的细节。
看门狗定时器
如果系统无需利用看门狗,这个模块也可以关闭。若使能,则在任何休眠模式下都持续工作,从而消耗电流。ATmega32在深层次的睡眠模式下,这个电流将占总电流的很大比重。请参看P39“ 看门狗定时器” 以了解如何配置看门狗定时器。
端口引脚
进入休眠模式时,所有的端口引脚都应该配置为只消耗最小的功耗。最重要的是避免驱动电阻性负载。在休眠模式下I/O 时钟clkI/O 和ADC 时钟clkADC 都被停止了,输入缓冲器也禁止了,从而保证输入电路不会消耗电流。在某些情况下输入逻辑是使能的,用来检测唤醒条件。用于此功能的具体引脚请参见P51“ 数字输入使能和休眠模式” 。 如果输入缓冲器是使能的,此时输入不能悬空,信号电平也不应该接近VCC/2,否则输入缓冲器会消耗额外的电流。
JTAG 接口与片上调试系统
如果通过熔丝位OCDEN使能了片上调试系统,当MCU 进入掉电或省电模式时主时钟保持运行。在休眠模式中这个电流占总电流的很大比重。下面有三种替代方法:
· 不编程OCDEN
· 不编程JTAGEN
· 置位MCUCSR 的JTD
当JTAG 接口使能而JTAG TAP 控制器没有进行数据交换时,引脚TDO 将悬空。如果与TDO 引脚连接的硬件电路没有上拉电阻,功耗将增加。器件的引脚TDI 包含一个上拉电阻,因此在扫描链中无需为下一个芯片的TDO 引脚设置上拉电阻。通过置位MCUCSR寄存器的JTD 或不对JTAG 熔丝位编程可以禁止JTAG 接口。
|
可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48
ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162
ATmega169 ATmega169P ATmega8515 ATmega8535
ATtiny13 |
ATtiny24 |
ATtiny44 |
ATtiny84 |
ATtiny26 |
ATtiny2313 |
ATmega48 |
ATmega88 |
ATmega168 |
ATmega8 |
ATmega16 |
ATmega32 |
ATmega64 |
ATmega128 |
ATmega162 |
ATmega169 |
ATmega8515 |
ATmega8535 |
ATmega32 减少功耗的方法
——