正在构建一个带有微控制器的简单设备,我希望能够使用“按住按钮2秒”技巧来打开和关闭它现在在如此多的消费设备上找到(蓝牙耳机,USB powerbank) ,智能
手机..浮现在脑海中)。这个功能似乎被称为“软功率锁定”,但我可以找到实现它的所有原理图都有缺点,使得它们对于这样的应用程序来说是不切实际的,例如:
- 过于复杂,太多的组件用于小型PCB,例如蓝牙免提耳机
- 有时在某些边缘用例中出现不稳定的行为,例如当前抽奖的高峰期
- 需要两个单独的按钮用于打开和关闭,或作为立即响应,并且不允许2秒钟的延迟
- 在开启或关闭状态或两者都消耗不可忽略的电流量。
我认为很容易在这种应用的小型IC中实现这样的功能,例如,具有用于按钮的上拉输入,用于配置延迟的外部电阻器/电容器以及用于控制延迟的开漏输出。传输晶体管或EN引脚。在我的情况下,还需要一个允许软件关闭的清除输入引脚,一种能够通过微控制器将按钮用作用户输入的方法,以及一种检测即将关闭以执行清理程序的方法。但是我找不到这样的芯片(授予我可能没有使用正确的关键字)。我发现的最接近的是
MAX16054 但这种功能有点贵,并且不允许2秒保持延迟(在按钮旁边增加一个电容似乎有点hacky因为它依赖于IN引脚的激活电压)。
因此,我想象一个更简单/更小/更便宜的
电路,看起来它符合所有要求,但我想对它有一个外部意见,因为我感觉不对,因为我无法找到任何类似的记录这样一个有用且广泛的功能:
它的工作原理如下:
- LDO的EN被R3拉低,并且R2被阻塞状态拉至R2,确保LDO默认关闭
- 当按下按钮时,Q1的栅极被拉低,使其导通并将EN拉高,从而为微控制器供电
- MCU等待两秒钟然后在其PIN0上输出一个低电平状态,即使按钮被释放也永久使能LDO,允许延迟锁存行为(如果在延迟之前释放按钮,则没有锁存:LDO是立即禁用)
- 按钮上的电压再次被R1拉高,并且与Q1的电网独立为D1,允许MCU通过PIN1使用
- 该软件负责执行所需的关闭行为,通过读取PIN1并在执行所需的清理后释放PIN0以关闭自身
因此,我的问题是:
- 这个电路会起作用吗?我有没有想到的缺点?
- 为什么不存在这种简单实用的IC以及如何在消费类设备中实现?(或者,我是不是在搜索?)
上面的电路不起作用,因为当LDO被禁用时,微控制器中的ESD二极管会将线路拉低。这是一个应该解决问题的更新版本: