Search code examples
stm32hardwareresetcortex-m

How to extend reset time during MCU software reset? (STM32F427)


I am solving a problem with the software reset of the STM32F427 microcontroller. Doing a software reset of the MCU is not a problem, it works great and the MCU boots up nicely.

During the software reset, the processor pulls its reset pin to zero. This reset pulse is now a few milliseconds long. I am working on how to make this reset signal longer. I would need it to be about 10ms long.

Does anyone know if and how this signal could be extended by modifying the software? (some wait instructions at the very beginning of the run, modification in the options byte, change in the system initialization code)

This is what the MCU pin reset signal looks like during a software reset. enter image description here

Background of the problem: I have a finished hw that runs normally and sometimes it is necessary to do a sw reset (fw update, untreated error, etc.). This hw has a COMMON reset pin for MCU and another chip (hw reset pins of both chips are connected). An RC element is connected to this signal so that the sources have time to warm up before the MCU starts up. It's fine on a cold start, but the SW reset has a reset pulse too short for the second chip. This second chip will then remain in a strange (non-functional) state. Therefore, I would need to extend the reset signal. The HW is finished, it can no longer be modified. The reset connection was a bad idea.


Solution

  • When nRST pin is low no software is executed as the processor is in the reset state.

    The only way to keep the nRST low for a long time is to have an external circuit to detect when nRST is pulled down and keep it for the required 10ms.

    The HW is finished, it can no longer be modified. The reset connection was a bad idea.

    I am afraid you have to patch your hardware (you see it very often in production boards when errors are found too late)