通过 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 设为三态来避免对缓冲器的需求,从而产生大致相同的效果。