嵌入式学习小组
直播中

李笑才

7年用户 151经验值
私信 关注

请问ATmega168减少功耗的方法有哪些?

ATmega168减少功耗的方法

回帖(1)

张子晶

2020-11-23 14:17:59
  试图降低AVR控制系统的功耗时需要考虑几个问题。一般来说,要尽可能利用睡眠模式,并且使尽可能少的模块继续工作。不需要的功能必须禁止。下面的模块需要特殊考虑以达到尽可能低的功耗。
  模数转换器
  使能时,ADC在所有休眠模式下都继续工作。为了降低功耗,在进入休眠模式之前需要禁止ADC。重新启动后的第一次转换为扩展的转换。详见P217“模数转换器”。
  模拟比较器
  ATmega168在ADC噪声抑制模式下也是如此。在其他休眠模式模拟比较器是自动关闭的。如果模拟比较器使用了内部电压基准源,则不论在什么休眠模式下都需要通过程序来关闭它。否则内部电压基准源将一直使能。请参见P214“模拟比较器”以了解如何配置模拟比较器。
  掉电检测BOD
  如果系统没有利用掉电检测器BOD,这个模块也可以关闭。如果编程熔丝位BODLEVEL使能BOD功能,它将在各种休眠模式下继续工作,从而消耗电流。在深层次的休眠模式下,这个电流将占总电流的很大比重。请参看P40“掉电检测”以了解如何配置BOD。
  片内基准电压
  当使用BOD、模拟比较器或ADC时可能需要内部电压基准源。若这些模块都禁止了,则基准源将被禁止,从而不会消耗能量。重新使能后用户必须等待基准源稳定之后才可以使用。如果基准源在休眠过程中是使能的,其输出立即可以使用。请参见P43“片内基准电压”以了解基准源启动时间的细节。
  看门狗定时器
  如果系统无需利用看门狗,这个模块就可以关闭。若使能,则在任何休眠模式下都持续工作,从而消耗电流。在深层次的睡眠模式下,这个电流将占总电流的很大比重。请参看P44“看门狗定时器”以了解如何配置看门狗定时器。
  端口引脚
  ATmega168进入休眠模式时,所有的端口引脚都应该配置为只消耗最小的功耗。最重要的是避免驱动电阻性负载。在休眠模式下I/O时钟clkI/O和ADC时钟clkADC都被停止了,输入缓冲器也禁止了,从而保证输入电路不会消耗电流。在某些情况下输入逻辑是使能的,用来检测唤醒条件。用于此功能的具体引脚请参见P63“数字输入使能和休眠模式”。如果输入缓冲器是使能的,此时输入不能悬双VCC/2,否则输入缓冲器会消耗额外的电流。
  模拟输入引脚的数字输入缓冲器应一直禁用。否则,即使当输入引脚工作于模拟输入状态,当模拟信号电压接近VCC/2时输入缓冲器需要消耗很大的电流。可以通过操作数字输入禁止寄存器(DIDR1与DIDR0)来禁止数字输入缓冲器。具体参见P216“数字输入禁止寄存器1–DIDR1”与P231“数字输入禁止寄存器0–DIDR0”。
  片上调试系统
  如果通过熔丝位DWEN使能了片上调试系统,当芯片进入休眠模式时主时钟保持运行。在休眠模式中这个电流占总电流的很大比重。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分