La MCU STM32F4 tiene una función de restablecimiento de caída de tensión. Según el manual , apartado 5.2.2, cuando la tensión de alimentación VDD cae por debajo del umbral VBOR seleccionado, se genera un reset del dispositivo. Después del reinicio, puedo verificar el indicador BORRSTF en el registro RCC_CSR (consulte la sección 6.3.21 del manual) para ver si el reinicio se debió a un apagón.
Me gustaría simular este comportamiento en el STM32F100, que carece de una función de restablecimiento de caída de tensión. Mi idea es usar el detector de voltaje programable (sección 4.2.2 en el manual ) para generar una interrupción en la línea EXTI 16. Cuando se llame al controlador de interrupciones, generaré un reinicio de software; Puedo verificar, después del reinicio, que el motivo fue un reinicio de software a través de la bandera SFTRSTF en el registro RCC_CSR (consulte la sección 6.3.10 del manual). Dado que no genero un reinicio de software en ningún otro lugar de mi código, puedo estar seguro de que se debió a un apagón.
Esto es lo que estoy buscando saber:
No veo ningún defecto importante en este diseño, pero considero algunas limitaciones:
Por lo que sé, los indicadores de reinicio deben borrarse manualmente (al menos en F4), así que: