实现微控制器电源开关并将按钮重新用于其他功能

电器工程 微控制器 电压调节器 开关 ADC
2022-01-28 07:49:11

这与其他问题类似,但我觉得它不同,因为“电源”按钮的重复使用。

我想要一个“锁定”瞬时电源按钮。

行为:

  1. 用户按下瞬时按钮,必要时按住,设备开机。

  2. 在开机和关机之间,同一个按钮将被重新用于其他功能

  3. 当它被按住 5 +/- 秒时,微控制器将自行关闭。

设计约束:

  1. 电池在其使用寿命期间提供 3.7V 至 2.9V 之间的电压

  2. 电压调节器要求启用引脚上的 Vin +/- 0.3V,3.1V 输出。

  3. 微控制器工作电压为 3.1V

  4. 微控制器输出引脚高电平状态为 2.7V Max

去抖:在这种情况下,我不关心开关的去抖,如果用户没有按住它足够长的时间让微控制器将其数字输出引脚设置为高电平,则设备不会开机。

我已经制定了以下示意图,哪种可行。

我的原理图的 Falstad 电路模拟器

它假定电池电压为 3.7V。使用电源按钮的模拟输入,然后使用电压变化来确定按钮是否被按下。在当前的设计中,差异是 0.12 V(从 3.4 到 3.52),但是微控制器有一个 12 位 ADC,所以这应该不是问题,此外我可以调整 ADC 的灵敏度范围。

问题:

现实和模拟器有什么区别?

有没有更好的办法?

如何在按钮输入上获得更大的电压差?我尝试了许多不同的组合,但它们将电压范围增加到数据表中指定的 3.6V 输入高最大值以上。

当 uC 控制的电源引脚为低电平时,我对“泄漏电流”并不感到兴奋,有什么建议吗?

感谢您的任何想法/建议/答案。

3个回答

这是我对这个问题的回答的变体。和 Mike 一样,我也在使用 P 沟道 MOSFET。OP 声明:“电压调节器要求启用引脚上的 Vin +/- 0.3V”,以及“微控制器输出引脚高电平状态为 2.7V Max”。因此,当电池电压高于 2.7v 时,µC 将无法提供满足 Enable 引线电压规格所需的电压。所以我使用 µC 的控制线来控制 MOSFET,然后将电池电压(或 Vin)切换到 Enable 线。

最初,来自 µC 的控制引线被配置为输入。按下按钮时,通过肖特基二极管(保持 Vf 低于 0.3v)提供电池电源以启用调节器。然后,µC 将控制引线配置为输出并将其接地,通过 MOSFET 使使能引线保持高电平(将电压保持在电池电平)。同时,按钮可以用作输入。

假设稳压器在 Enable 引线为低电平时完全关闭,则当 µC 断电时,电路应消耗非常少的功率(小于 1 µA)。

这消除了 LTC2954 芯片的成本,该芯片以 500 个单位的数量运行超过 2 美元。该电路的数量应低于 10 美分(开关和稳压器除外)。 在此处输入图像描述

许多微控制器,特别是为低功耗设计的微控制器,例如 MSP430,都具有零功耗中断。CPU 进入睡眠状态,而不是完全断电。在这种模式下,它需要几个 uA。当按下按钮时,它会被中断唤醒(即,就用户而言,开机),之后它可以监视引脚的某些输入,并根据引脚被按下的方式关闭或执行一些其他功能.

无需任何外部电路(按钮除外)。

有关示例,请参阅TI 应用说明

您可能需要一个按钮控制器,例如LTC2954-1它们在 TSOT-23 中小批量供应,每片约 5 美元。这将比试图让你的 MCU 不让电池下雨要好得多。是的,模拟可能足够接近现实。

LTC2954 典型电路

VIN 可以一直下降到 2.7 V,它仍然可以工作。上面的电路显示了一个用于打开或关闭稳压器的 PFET,但如果您的稳压器具有低电平有效输入,您可以直接连接 EN。EN是开漏引脚,不用担心高压是什么;调节器需要自己拉其 EN 引脚,或者您可以放入一个上拉电阻。如果它具有高电平有效启用(其中没有看到很多),您可以在控制器 EN 和转换器 EN 之间放置一个 NFET 和几个上拉电阻以反转电平。

当您的系统正在运行时,短按该按钮会将 INT 拉低。同样,这是一个开漏引脚,它不关心您的 VCC 是什么,只需添加一个上拉电阻即可。此外,还有一个 KILL 输入,MCU 可以使用它来自行关闭电源。PDT 上的电容器设置“短”INT 按压与“长”OFF 按压的时间。

凌力尔特制造了几款具有各种特性的类似控制器芯片(均为 LTC295_ 编号);仔细查看它们以确保找到正确的。