单按键一键开关机电路分享-已用于产品

我们的手机开关机按键,就是一种非常典型的一键开关机,长按开机,长按关机。除了手机以外的其它电子产品,也可以使用这种方法,来节约按键数量,给用户良好的体验。

电路需要硬件和软件配合实现。

首先看硬件,如图1。这个电路图瑞生已经在商用产品上批量使用,没有问题。您可以放心参考。

图1 一键开关机硬件电路

图1中左上角的R14、D3、Q3是用来切换内部锂电池供电和外部USB供电方式的,具体原理请看《USB外部电源与锂电池切换供电电路设计》

其余部分,就是用来实现上面的单按键开关机需求的。SW1就是用于开关机的按键。网络标号PKEY_STA处和POWER_HOLD处连接到单片机的GPIO引脚。D4、D5是两个二极管,Q4是一个PMOS管,Q5是一个NPN三极管。另外还有一些电阻组成。

产品处于关机状态时

此时单片机还是断电状态,不会运行程序。POWER_HOLD此时为高阻态,三极管Q5的B极被下拉电阻R22拉成了0V,即低电平,三极管Q5不导通。PMOS管Q4的G极被R18这个上拉电阻拉成了高电平,MOS管Q4不导通。所以VCC上没有电压。

按键开机原理

按键SW1按下后,把PMOS管Q4的G极变成了低电平,PMOS管Q4导通。也就是说,当按键按下去之后,VCC立马就会有电压了。此时单片机和电路板上的其它芯片已经处于有电状态,有人此时会有疑问“那怎么实现长按开机?”,其实,我们看产品有没有开机,一般看的是产品上的屏幕或者其它显性的器件有没有被点亮,我们只要让单片机上电以后,先初始化好所有芯片之后,再延时一定时间点亮屏幕,就可以实现长按开机的效果了,至于多长时间,完全由你在单片机程序中掌控。

不过,此时需要注意一个问题,如果你把按键放开,电路板会立即断电,也就说,此时,电压不能维持。效果就是按键按下有电,断开就没有电了。

这时候,就需要连接到POWER_HOLD这个网络标号的单片机引脚上场了。单片机必须在按键按下并且延时后,把这个引脚设置为输出高电平,让三极管Q5导通,好让PMOS管Q4的G极在按键放开以后,还是低电平,即Q4还导通。这样,放开了按键,电路板依然有电。电路就可以开始正常工作了。

按键关机原理

根据刚才的开机原理,你就可以知道了,其实在按键放开以后,只需要把POWER_HOLD引脚变成低电平,就会断电。

现在的问题是,我们要通过按键告诉单片机,我要断电。这时候二极管D4和网络标号PKEY_STA就派上用场了。

把连接到PKEY_STA的单片机引脚设置为低电平中断。在单片机运行的情况下,当按键按下的时候,就会发生中断,然后通过延时查看是否还是低电平,就可以让单片机知道,我们要它关机,于是,控制POWER_HOLD引脚变低,就关机了。