大多数微控制器(例如AVR,MSP430,PIC等)都支持许多不同的睡眠模式。“最深”的睡眠模式声称功耗最低(例如“掉电”,“关闭”),但是所有时钟系统通常都在这些模式下停止运行,在我看来,唯一的方法是“ “唤醒”是通过外部刺激(例如,引脚更改中断,芯片复位)。我想念什么吗?是否有极低功耗的方法为MCU生成定期唤醒信号?
假设我的目标是最大程度地降低功耗(即,尽可能长时间地睡眠,尽可能短时间保持清醒),同时定期唤醒执行功能,实现这种行为的常用方法是什么?为了进一步简化问题,让我们假设我的函数是无状态的(执行该函数,我不必记住过去的任何内容)。
我在MSP430上使用WDT取得了一些成功。我只是以我的主要例程为函数,最后一行使看门狗定时器在一定时间后到期,并进入LPM4.5或称为“深度睡眠”模式的任何内容。最终结果是执行了该功能,MCU进入睡眠状态,WDT到期,并且芯片复位,令人作呕。似乎可以正常工作,只是想知道是否有“更好”,“更优雅”或“更节能”的方式来获得这种行为?
我还没有在AVR上尝试过这种方法,但是我认为WDT在AVR中比在MSP430上更“耗电”,因此对于低功耗工作可能没有吸引力。也许没有一种“通用”的低功耗方法,您必须使用给定产品线提供的工具吗?我知道新的picoPower系列具有许多事件处理系统和睡眠行走等超凡脱俗的功能,在某些情况下,如果您可以使应用程序适合该结构,则几乎不需要CPU处于唤醒状态。
够我流浪了,在这里让您不得不说:)
编辑 说明技术的具体示例也很酷!