欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

单片机单键开关机电路,模仿手机电源键功能 - 实现长按开机、长按关机、轻触开关锁屏

程序员文章站 2022-06-15 22:07:25
分享一个自己电路中的 单键开关机电路,需要与单片机的I/O配合,可实现手机电源键功能,如长按开机、长按关机、轻触开关锁屏或其他自定义功能。电路需求电路需要使用:带有EN使能引脚的电源芯片,如图中的MP2144,用于将VIN降压到3.3V,给单片机系统供电。还要使用单片机的两个I/O,KEY_ON 与 PWR_EN。其中KEY_ON配置为输入引脚,PWR_EN配置为推挽输出。(VIN为电源,当SW-PB按下后,D3导通,SW_EN电平为高,MP2144工作,会输出3.3......

 

分享一个自己电路中的 单键开关机电路,需要与单片机的I/O配合,可实现手机电源键功能,如长按开机、长按关机、轻触开关锁屏或其他自定义功能。并且静态功耗极低,最大uA级,非常适合电池供电。

 

单片机单键开关机电路,模仿手机电源键功能 - 实现长按开机、长按关机、轻触开关锁屏

 

电路需求

电路需要使用:带有EN使能引脚的电源芯片,如图中的MP2144,用于将VIN降压到3.3V,给单片机系统供电。还要使用单片机的两个I/O,KEY_ON 与 PWR_EN。其中 KEY_ON配置为输入引脚,PWR_EN配置为推挽输出。

(VIN为电源,当SW-PB按下后,D3导通,SW_EN电平为高,MP2144工作,会输出3.3V电源给单片机供电,使其工作。)

 

实现原理

按键开机过程

1. VIN为电源,当SW-PB按下后,D3导通,SW_EN电平为高,MP2144工作,会输出3.3V电源给单片机供电,使其工作。

2. 单片机上电后,KEY_ON设置为输入,PWR_EN设置为初始状态为0的推挽输出。持续检测KEY_ON引脚电平。此时SW-PB的状态为按下,Q2导通,KEY_ON被拉低为低电平。

3. 如果检测到KEY_ON引脚持续xS时间均为低电平,且此时系统状态为关机,则判断用户正在执行长按开机。单片机会执行开机过程:将 PWR_EN设置输出高电平,系统持续供电,之后单片机正式初始化其他外设并运行系统。开机过程完毕。

D3、D4的作用相当于或门,只要有一端输入为高电平,SW_EN都会为高电平。而只要SW_EN为高电平,MP2144就会为系统持续供电。(MCU控制PWR_EN输出高电平,SW_EN就会为高电平,MP2144就会一直给单片机供电。即使松开按键,单片机依旧可以保持正常供电。除非单片机设置PWR_EN输出低电平)

 

按键事件过程

1. 开机过后,单片机建立一任务,持续检测 KEY_ON的电平和时间。

2. 如果KEY_ON电平为低,且持续时间较短,只有几百ms以内。则判断用户此时正在单击按键,可执行对应的处理事件,例如开/关屏幕,触发系统设置等功能。

因为有 D3、D4,单击按键不会对MP2144的使能状态造成影响,也不会烧毁单片机的PWR_EN引脚,同时还能独立检测KEY_ON的电平,用于判断按键事件。

 

按键关机过程

1. 用户长按按键,KEY_ON被拉低。

2. 如果此时系统状态为开机中,检测到KEY_ON电平为低,且持续时间较长,大于xS时间。则判断用户此时正在长按按键,可执行关机过程:将开关机标志位设置为待关机,执行关机过程,如保存用户数据、载入关机动画等。待所有准备过程完毕后,将PWR_EN引脚输出为低电平,系统进入关机状态,MCU设置为掉电模式。待用户松开按键后,SW_EN将为低电平,MP2144不会继续供电,系统会彻底掉电。

 

设计要点

电路的功能没有问题,电源芯片一定要 带有EN使能引脚,唯一需要考虑就是静态功耗。

关机状态下的静态功耗仅与电源芯片的关断电流有关,所以关断电流越小越好。例如MP2144,关断电流仅为0.1uA。而其他部分电路在未开机的时是没有任何功耗的,十分适合电池供电。

单片机单键开关机电路,模仿手机电源键功能 - 实现长按开机、长按关机、轻触开关锁屏

 

开机状态下的静态功耗,与电源芯片的Iq(静态电流)、Q2-MOS的漏电流(nA级别)、系统功耗都有关系。如果整体的静态功耗需要控制在uA级别,不是很推荐使用DCDC做电源,可以选择LDO,例如SPX3819、MIC5205。

本文地址:https://blog.csdn.net/Mark_md/article/details/108549625