Estoy buscando una manera de implementar un modo de ahorro de energía en un diseño existente. La situación actual es la siguiente:
-
MCU (STM32F413) y varios componentes externos comparten un riel de alimentación de 3.3V Vdd
-
MCU también tiene una fuente VBat separada
-
El carril de alimentación está regulado por un convertidor de refuerzo TPS61090 que tiene un modo de batería y una entrada externa de 12V
-
MCU tiene un GPIO en el dominio VBat para habilitar / deshabilitar el convertidor boost
El problema es el riel Vdd compartido entre la MCU y varios componentes externos. Para lograr un consumo mínimo de energía, los 3.3V deben retirarse de estos componentes. Esto se puede hacer si la MCU desactiva el convertidor de refuerzo, haciendo que la MCU caiga en el modo de potencia VBat. Para esto utilizo GPIO PC13 que mantiene su estado en modo VBat, conectado a través de una resistencia en serie al pin EN
en el TPS61090.
Aunque no es ideal, esto funciona. Cuando el 12V externo regresa, tiene un tirón más fuerte en el pin EN
, por lo que el reforzador se vuelve a habilitar, el 3.3V regresa y ocurre un encendido y reinicio.
Una adición que requiero es que el dispositivo pueda activarse en algún intervalo periódico. Parece que la alarma RTC Wakeup es perfecta para esto. Al inicializar la salida RTC con la función alternativa de reactivación en PC13 con alta polaridad, esta salida se restablece hasta que se active la siguiente alarma. Esto funciona bien mientras que el 3.3V está presente pero no parece funcionar cuando la MCU solo tiene potencia VBat. Si mantengo Vdd activo y controlo la salida de PC13, la función de activación funciona como se espera. Por lo tanto, mi pregunta es si las activaciones / alarmas de RTC pueden activarse desde el modo VBat, o si hay alguna otra construcción que funcione para mí.
Lamentablemente, no será posible separar las líneas de Vdd para que la MCU pueda extraer el suministro hacia los componentes externos mientras conserva el suyo.