2016-12-11 03:44 PM
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?
Solved! Go to Solution.
2016-12-13 08:58 PM
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.
2016-12-11 05:31 PM
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.
2016-12-11 06:55 PM
No, the pin is currently floating.
2016-12-12 02:29 PM
I've tried a 10nF to ground as well but that doesn't change anything.
2016-12-12 02:36 PM
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.
2016-12-12 03:43 PM
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?
2016-12-12 11:58 PM
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.
2016-12-13 11:47 AM
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).
2016-12-13 12:11 PM
Yeah sorry that resistor has already been removed. I tried adding the 100nF cap but it didn't change anything.
2016-12-13 12:36 PM
- 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