cancel
Showing results for 
Search instead for 
Did you mean: 

Micro only starts with debugger or nRST manually pulled low

kylepennington
Associate III
Posted on December 12, 2016 at 00:44

I am using the STM32F469 on three devices. One device works fine and starts normally after the power is applied. The other two only start operating after the nRST pin is briefing pulled low. There is 3.3V on nRST after powering it up, indicating the power on reset is ok, but the micro fails to start running.

Attaching the STM debugger and checking the MCU core it says it is halted. Clicking run starts the device working.

What could cause the device to power up correctly but not start the program running?

1 ACCEPTED SOLUTION

Accepted Solutions
Posted on December 14, 2016 at 04:58

I measured the resistance between the BOOT0 pin and GND and found it was around 40K. There was dodgey connection between the jumper pin and the pull down resistor. Hardwiring the jumper pin to the pulldown resistor fixed the problem.

Thanks for your suggestions.

View solution in original post

17 REPLIES 17
Posted on December 12, 2016 at 02:31

Anything else driving the pin in your circuit? You don't want any other push-pull drivers on the pin, the pin should have it's own pull-up.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on December 12, 2016 at 02:55

No, the pin is currently floating.

Posted on December 12, 2016 at 22:29

I've tried a 10nF to ground as well but that doesn't change anything.

Posted on December 12, 2016 at 22:36

It is probably not related to that, but I'm not much for 'guess what's wrong with my mystery board'.

If you want me to look at the schematic, or portion of it, you can post that.

Things to be looking at are the analogue supply side (used by the reset circuitry), how the supplies ramps as power is applied, the value of capacitors on VCAP pins, and voltage measured there. Look at what is going on with the low-power domain pins, PC13, 14 and 15

Make sure BOOT0 and BOOT1 have defined states a boot up. Pull BOOT0 low.

Add code real early in the ResetHandler to checkpoint execution via a GPIO, LED or USART. Requires some skill with assembler to pull off.

If you have a whole bunch of supply rails, consider putting a proper power-on-reset circuit on your board to threshold supplies, and hold reset low for ~100ms after they are solid.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on December 12, 2016 at 23:43

Thanks Clive, that's just what I was looking for, areas that could affect this to investigate.

VCAP_1 and 2 are 2.2uF. 1.32V on both.

PC13, 14 and 15 are being used a chip selects and measure 9mV on startup. What are their importance?

BOOT0 and 1 are pulled low.

I have a status LED that I can set. I'll look into implementing that during the resethandler.

The 3.3V supply is ramping on in about 2ms. Is that possibly too fast?

0690X00000605qkQAA.png0690X00000605lMQAQ.png0690X00000605qpQAA.png
John F.
Senior
Posted on December 13, 2016 at 08:58

Remove 10k pull-up resistor from MCU_RST (pin 31) and add 100n capacitor from pin 31 to Ground (0V digital). Device has internal pull-up.

Tuttle.Darrell
Associate II
Posted on December 13, 2016 at 20:47

I had a board that had a little trouble with power-on reset (STM32F407). I ended up correcting the problem by programming the brownout reset level (level 3 in my case).

Posted on December 13, 2016 at 20:11

Yeah sorry that resistor has already been removed. I tried adding the 100nF cap but it didn't change anything.

Posted on December 13, 2016 at 20:36

- have you implemented that LED just after reset, BEFORE setting PLL or whatever clock (otherwise we won't believe you it does not start)

- option bytes are set how?

- put one scope probe on NRST other on VDD and take the waveform

- DS states VDD ramp min.20us/V so 2ms/3.3V should be OK

- pull down BOOT0 harder (don't be shy to ground directly)

- try shorting FB4

- I've never seen 2uF2 style of separating decimals (only 2u2 or 2.2uF, or 2M2/2.2M although this is perhaps not used since 80s) - made me think initially what the 2 suffix might meant... 🙂

JW