Lamentablemente, la serie STM32F103 no ofrece un canal ADC interno conectado a VBAT, por lo que tiene que conectarlo externamente.
El problema surge tan pronto como se apaga el microcontrolador. Si tuviera que conectar el VBAT directamente a otro pin del STM32 y apagar la fuente de alimentación principal, los diodos de protección comenzarán a conducir e intentarán alimentar el STM32. Por lo tanto, daría lugar a un consumo excesivo de corriente en tu dominio de copia de seguridad.
Una solución simple podría ser poner una resistencia grande en serie.
simular este circuito : esquema creado usando CircuitLab
Con esta configuración, limita la corriente máxima a un máximo de 3µA. Será menos, pero predecir cuánto es un poco difícil.
Ahora medir la batería con una resistencia de 1MegOhm no es la mejor idea, es fácil obtener distorsiones y hay que tener cuidado de seleccionar una frecuencia de muestreo lo suficientemente larga para cargar el condensador de muestreo. Entonces, ¿podemos hacerlo mejor?
Lo primero que viene a la mente es usar un interruptor analógico. Algo así como un TS5A3160 de Texas Instruments (hay muchas alternativas disponibles, esto probablemente no será la mejor parte disponible).
Ahora, como es un IC, lo más probable es que se especifique de manera similar a un microcontrolador, que no haya entrada por encima del riel de suministro. Una mirada en la hoja de datos muestra que este es el caso. Así que tenemos que alimentarlo desde la batería.
La corriente de suministro para esta parte es realmente baja. Solo un máximo de 100 nA en todo el rango de temperatura (tenga cuidado con la condición actual del suministro que se ve en la hoja de datos, me refiero a las páginas de 3.3V). Así que eso no es una reducción inmediata.
Lo siguiente que queremos vigilar es la corriente de fuga de las entradas, que podría ser mayor que la corriente de suministro en este caso. Es un poco difícil saber qué número estamos viendo, así que primero déjame explicarte cómo lo conecté:
simular este circuito
Tan pronto como apague el microcontrolador, la resistencia desplegable se asegurará de que el interruptor analógico pase al pin normalmente cerrado, el cual atamos a tierra con otra resistencia de 100k, para que no flote. En este estado, solo la corriente de suministro y la corriente de fuga del NO-pin agotan la batería (y, por supuesto, el dominio VBAT del STM32).
Entonces, el chip está encendido y estamos buscando la corriente de fuga del NO-pin. En la hoja de datos, esto corresponde a \ $ I_ {NO (OFF)} \ $ (y no a \ $ I_ {NO (PWROFF)} \ $). Y resulta ser realmente bajo, un máximo de 50 nA en todo el rango de temperatura.
Al final, estamos viendo un máximo de 150 nA, 12 nA típico a 25 ° C de drenaje adicional de la batería con este interruptor analógico. Proporciona una ruta agradable de baja impedancia para medir el voltaje del ADC. En comparación con el máximo de 2.2µA dibujado por el dominio VBAT, esto no es un impacto demasiado pesado.
La desventaja es, por supuesto, la complejidad agregada en el tablero, necesita otro pin para cambiar la batería al ADC y los costos. Puedes probar y ver qué pasa con la solución de resistencia simple, podría funcionar y estar bien, pero quería mostrarte una alternativa.