背景
类似于手机的开机按键,我们希望在单片机电路上也能实现类似的低电量自动关机、通过按键而不是自锁开关来上电开机。
软开关电路
电路图如下:
- 当按键按下时,Q1导通,R18右侧变为低电平,进而Q2导通,系统上电
- 系统上电后,立刻控制PWR_CTR为高电平,此时松开按键,系统依旧保持上电状态。
- 当系统主动关机时,控制PWR_CTR为低电平,系统断电。
电压采样电路
我们在加了软开关之后,就可以在软开关后面加采样电阻采样电量,这样不会导致电池一直被放电。
使用一个引脚实现
在上述电路中,有2个问题:
- 当按键按下时,单片机PWR_CTR引脚会受到外部输入POWER_IN的电压,如果电压高于5V,会打坏单片机。
- 必须通过PWR_CTR控制软开关开断,再通过另外一个引脚对电池电压进行采样,这样就整个需要2个引脚。
我们可以对电路做如下修改:
- 输入到PWR_CTR引脚的电压,被电阻R18和R19分压,不会打坏电阻。
- 当按下按键时,单片机上电,首先初始化PA1为ADC,此时松开按键,由于ADC为输入,不会输出电平,所以ADC_PA1端的电平为高电平,可以保持单片机一直上电。当检测到电池电压过低时,将PA1初始化为输出,输出低电平,给电源断电。