单片机单键开关机电路,模仿手机电源键功能 - 实现长按开机、长按关机、轻触开关锁屏
分享一个自己电路中的 单键开关机电路,需要与单片机的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
上一篇: UART与TTL是什么(两者是一回事吗)
下一篇: 中国跨境电商时代是不是真的到来?