电路功能
开机按键实现一键上电启动之后,作为普通按键使用
电路原理图
功能实现
- 按键SW2按下后接地,PMOS的G极接地,PMOS导通
- VBIN给后级电路供电,通过LDO(建议选用最小压差小的,如RT9013)产生3v3的电压(如果你的后级电路(3v3网络)供电大于200mA且动态响应大,建议先将VBIN升压至5V后再使用AMS117等LDO芯片)
- 3V3的电源给主控MCU供电,MCU上电启动,将GPIO(PWR_ON)拉高,三极管导通,PMOS的G极接地,此后按键松开,VBAT依旧给VBIN供电
这段代码优先初始化,这里PWR_ON用的PA11
void power_pin_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;//PA11 POWER控制端口
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;//推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_11);//拉高
}
- 此后SW2作为普通按键,连接到GPIO(SW2_MODEKEY)上。若需要关机,直接软件将PWR_ON拉低即可,此时PMOS关断,VBIN后级电路断电。复位也会导致关机(复位键可以当做开关键使用),因为复位(此时SW2未被按下状态)导致PWR_ON状态为高阻态,PMOS关断。
补充说明
- 如果需要对供电电源(USB(5V)和电池(3.7V左右))进行选择可对上述电路进行改进。
- 如果你使用TP4057(TP4056发热有点严重)对你的电池进行充电管理,那么就不需要上述1中的电源转换电路。
因为当USB插上时,VBUS会通过TP4057在3脚产生4.2V的VBAT一边给电池充电,一边通过一键开机电路给后级供电,因此不需要电源选择电路。