我正在开发一个基于 AVR 的低功耗电池项目,该项目集成了一些不同的设备,包括 neopixel strip 和Adafruit pixie。当整个设备处于静止状态时,我希望它消耗小于 0.1mA 的电流,以最大限度地延长 LiPo 电池寿命。
我让这一切正常工作(测量为 0.035mA),但我不确定我是否一定以“正确”的方式做到了这一点,并且我计划基于此构建产品,所以我想把它做好。
我关心的核心问题是当 VCC 通过从数据引脚流出的电流断开时设备的“寄生”供电。例如,Pixie(通过串行通信)没有断电模式,即使“关闭”时也会消耗大约一毫安。所以我放了一个小继电器来断开它的 VCC,发现串行引脚实际上仍在为小精灵供电。其他地方的提示表明,许多芯片都有一个二极管将其数字输入引脚分流到 VCC 作为电源保护。为了解决这个问题,我不得不在睡眠期间暂停串行库和实际的 digitalWrite( PIN, LOW )。
与 WS2812b 条相同 - 断开 VCC 仍然允许设备从数据引脚供电。在其他设计中,当我用 N 沟道 MOSFET 断开 GND 时,我看到了相反的情况——电流通过数据线回流到地!(这必须通过 PJRC 上的帖子使用二极管来解决。) WS2812b 实际上每个都需要大约 1 毫安,即使在未点亮的情况下,
所以问题是:当混合中有数据引脚时,是否有一种通用的“干净”方法可以在系统睡眠期间将 VCC 和 GND 与项目的某些部分断开连接。最佳做法是什么?
一些想法:
- 强制 VCC 到 GND(不确定如何?Hbridge?)。(如果我这样做,高数据引脚会发生什么情况?)
- 在所有数据引脚和这些设备之间放置一个三态缓冲器,在睡眠期间将三态缓冲器置于高阻抗状态,仅与 P 或 N MOSFET 断开 VCC 或 GND
- 仅使用 N mosfet 断开 GND,并在所有数据引脚上放置二极管
- 是否有某种电源锁存器可以断开 VCC 和 GND 并将它们置于“高阻抗”状态(如电源的三态缓冲器?)这样电流就无法从数据线“流出”。
有人能告诉我处理这种“负载断开”问题的最干净、最可重复的方法吗?(不用说,我花了几个小时在谷歌上搜索这个问题,但运气不佳,虽然我确实找到了这个关于负载切换的技术说明,但它没有解决反馈和寄生电源)