cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F072 reset (NRST) not being released after short power outage or dip

jmalton
Associate II
Posted on March 03, 2015 at 15:44

Hello

I am using an STM32F072 in a simple application.  I have an open-drain reset supervisor on board monitoring a power rail and a pushbutton, driving the same net as the MCU NRST pin, and with an additional 100k pull-up to VDD.  Following a brownout and VDD recovery to 3.3V (or even a power outage of less than about 20 seconds), the supervisor correctly releases the reset signal, but the MCU holds it active (low).  Sometimes it releases it after a few tens of seconds, but often it never does.  (I know it's the MCU, because the behaviour doesn't change if I take my supervisor off the board.)

If I leave the supply off for, say, about a minute or longer, then following re-power up, the MCU does not hold NRST active beyond the external supervisor's timeout period, and the MCU starts up as expected.  There is no JTAG or other emulator attached.

I know about the multiple reasons for the MCU to drive the NRST pin, but I don't think any of them applies in this case.  The problem is present on boards with both new (never-programmed) parts, and with parts in which I have disabled the VDDA monitor through the User Byte of the Option Register.

I have VDD, VDDIO2, VBAT, and VDDA all tied directly to a well-decoupled power plane, and VSS & VSSA to the corresponding common plane.  There are discrete capacitors near each pin, and the power supply appears clean, sourced by a LM25017 buck regulator.

The problem is still present even if I short the power rail to force capacitor discharge while the supply is off, then switch it back on.  The power rail rise appears very clean and monotonic.

The BOOT0 pin is connected to VSS (plane) with 10k.

The manual says that VDDA should be present before VDD.  The Discovery board, however, provides a ferrite bead and 1u/100n filter on VDDA.  I have simply connected VDDA to VDD, since the Discovery solution is in slight contravention of the user guide.

Does someone have any similar experiences or suggestions?

Thanks

#reset-nrst-vdda
10 REPLIES 10
jmalton
Associate II
Posted on March 05, 2015 at 18:56

The problem is resolved.

Part of my circuit that drives two ADC inputs to the MCU, and is designed to drive them only to positive voltages relative to COM (of course), was actually trying to drive them negative (below the MCU COM reference), and the MCU doesn’t like that at all.  This was due to a floating input on my board.  When I tie that input, the problem does not recur.

This accounts for all the bizarre behaviour, such as the ‘scope probe sometimes apparently fixing it, or the problem going away if I touch the ground point, or the very intermittent nature of the problem itself.

Thank you for all your help.