从 GPIO 线为 IC 供电

电器工程 低电量
2022-02-04 23:15:07

我有一个低功耗应用程序,它将由锂纽扣电池供电。我使用我选择的 MCU 获得了令人满意的睡眠电流。

然而,应用 ADC IC 是另一回事:900µA 不活动——对于纽扣电池应用来说太多了。

所以我想为什么不在 ADC 不使用时隔离它的电源。想到了两个想法:ADC 的 Vdd 上的高侧 FET 或仅将 ADC 的 Vdd(或 Vss)引脚连接到 MCU GPIO 引脚之一(假设电流在 MCU 的源/汇规格范围内)。

我以为会有很多文章、应用笔记等讨论这个想法,但我还没有在网上找到任何东西。在我开始试验之前,谁能指出我在线上的任何相关文章/应用笔记?或者这只是一个坏主意?如果是这样,为什么?

(是的,知道大多数 MCU 都内置了 ADC。由于超出查询范围的原因,我真的必须使用这个外部 ADC IC。)

谢谢!

3个回答

通过 GPIO 引脚为设备供电通常是个坏主意。在非常低功率的情况下,也许你可以摆脱它,但除非你有非常严格的限制,否则我不会推荐它。

您已经注意到您已经检查过 ADC 的要求低于引脚的驱动能力。这通常是很多人不屑于检查的。如果消耗量在要求的限制范围内,那么您可能就可以接受。但是,请确保 ADC 的任何瞬态电流要求也包含在 GPIO 驱动能力中。您至少需要对 ADC 电源进行相当重的去耦。请记住,GPIO 输出不是低阻抗电源线,对瞬态电流要求的响应速度较慢。

其次,由于您使用的是 ADC,并且没有内置在 uC 中的 ADC(这将是您应该为非常低的功耗做的事情),我假设您有一些要求t 由内部 ADC 满足。GPIO,不是电源线,更重要的是,作为微控制器的 GPIO,肯定会被至少 uC 的时钟频率、其谐波和可能的次谐波污染。由于您还将通过它驱动一些大量电流,因此如果也引入其他影响,我不会感到惊讶。你甚至可能最终看到你的 SPI/I2C 的小组件/你有什么供应,这取决于你使用的 GPIO 和去耦的重量。如果 ADC 分辨率和噪声性能很重要,

高端 FET 是一个更好的选择,而且更安全。您还可以考虑使用任何数量的具有启用控制的电源相关 IC,例如 LDO 等。靠近 ADC 电源的 LDO 也可能有助于提高性能。但请注意,这意味着您的 ADC 必须在稍低的电压下运行。这也将发生在一个简单的晶体管开关上,而在一个低 Rdson FET 的情况下,效果会,诚然,要小得多,但它会存在。

您应该注意的一件事是,将未供电 IC 的数字线连接到供电 uC 的 GPIO 并不是一个好主意。您最终将通过其数字 IO 为您的 ADC 供电,并导致奇怪且具有潜在危险的行为。具体来说,如果您的 ADC 即使在关闭时也没有响应,我会感到惊讶。这会导致长期退化,并首先削弱省电的优势。为了使其良好关闭,您应该为两者之间的每条数字线使用电平转换缓冲器,并能够禁用(三态)输出。这可以通过使用 EN 引脚来完成,或者使用带有其他机制的缓冲器来禁用(例如,如果一侧的电源被拉到地,则 SN74LVC1T45 处于三态)。该方案是否有用取决于缓冲器在其关闭状态下的消耗、在其打开状态下的消耗、占空比(您希望将其打开的时间分数)以及 ADC 消耗 (900uA)你可以通过这样做来节省。如果您非常小心,您可以通过在关闭 ADC 之前将连接到 ADC 的 uC IO 设为三态来避免对缓冲器的需求,从而产生大致相同的效果。

是的,您可以这样做,只要确保满足所有约束条件即可。我已经这样做了几次。使用微控制器输出实际为小电路供电而不是切换其电源可能是节省空间的有用方法。我在一个项目中使用了它,例如,仅在需要时打开超声接收器模拟前端。

除了输出引脚可用的电流有限这一明显问题外,您还必须注意来自微控制器的噪声进入开关电路并处理电路吸收的瞬态电流。在数字输出引脚上添加一个接地电容有助于解决这两个问题,但您还必须考虑微控制器在打开或关闭线路时可以驱动多少电容。

这不是你应该轻易做的事情,你需要仔细考虑问题,但在你做完功课之后,它仍然有道理,那就去吧。

是的,你可以这样做。许多人都有。例如,Adafruit 展示了这是在 adruino 上为 ds1307 RTC 完成的,由两个 gpio(作为 vcc 和 gnd)供电诺基亚 LCD 也是如此,它只需要 1 mA 的屏幕电流(背光 LED 是另一回事,但仍然可以通过 gpio 完成)。

电源是电源。只要您的电流消耗较低,(或者您可以容忍由于 MCU 端口引脚上的电流消耗而导致的电压下降),您就可以做到。

现在,它确实取决于 gpio 输出的干净程度。与其他 IC 相比,一些 IC 不太可能抱怨线路有点脏。ADC 可能不是最佳选择之一。脏源可能会影响 ADC 的分辨率或可靠性。它可能会使外部 ADC 比内部 ADC 更差。就像其他人提到的那样,上限可能会有所帮助。

不太可能炒掉ADC,所以最好的选择?将其连接起来,并通过一些校准测试运行它。如果它有效,那就去吧。如果没有,请使用 npn 晶体管或类似的 FET 来切断电源。就一件事。确保在 IC 关闭时将数据引脚切换为输入,并等到打开电源引脚之后再将它们切换到所需的模式。