cancel
Showing results for 
Search instead for 
Did you mean: 

Standalone application doesn't run unless NRST is forced to 0V

Hicham Chaabane
Associate III
Posted on April 30, 2018 at 13:32

Hi guys,

I'm using the  

STM32L475RCT

 in a custom board. When using the JLink everything is working fine but when I discounnect the Jlink and power cycle the board the application doesn't work at all. Each time I have to force NRST to 0 and release it in ordre to make the application works.

I have 100nF capacitor between the NRST pin and GND as recommended in ST  datasheet(

6.3.15

).

I checked the voltage on the NRST pin and it seems correct : it goes from 0.358V to 3.1V  in ~4ms at board power up which follow the required low level voltage ( VIL(NRST)  =0.3?VDDIOx = 0.984V) and high level reset voltage  ( VIH(NRST) = 0.7?VDDIOx = 2.29V).

Any thoughts on where the problem might be ?

#stpm32-reset #reset #stm32l4 #nrst #reset-problem
1 ACCEPTED SOLUTION

Accepted Solutions
Hicham Chaabane
Associate III
Posted on May 02, 2018 at 13:06

Guys, I figured out.

I connected the BOOT0 to GND and the standalone application started working without the JLINK.

Not sure the reason of this since in the manual leaving BOOT0 NC won't have an effect on the startup sequence ! I think I'll need to do more reading on this subject.

Thank you for the help

View solution in original post

11 REPLIES 11
Posted on April 30, 2018 at 14:31

I would look at what you are doing with the supply pins, especially VDDA, and if you have multiple supplies. Check initial rise times on a scope with respect to NRST.

Consider using a POR chip like the MCP120 to threshold on the slowest supply.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on April 30, 2018 at 15:20

Thank you for your response,

I have a single 3.3V powering all the VDD and VDDA pins with 100nF capacitor for each pin.

I forget to mention that I checked both the V3.3 and NRST rise time and they were fine. here is a screenshot

0690X00000604YcQAI.jpg

I have the same circuit working with no issues on the STM32F417 !

Posted on April 30, 2018 at 15:41

Double-check if all the ground (including analog) and supply pins are connected - this includes checking for bad solder joints.

JW

Posted on April 30, 2018 at 15:42

>>I have the same circuit working with no issues on the STM32F417 !

Well not work here, so you'll need to change something.

I would suggest a 10K pull-up on the NRST pin, and a 10K pull-down on BOOT0

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Posted on April 30, 2018 at 17:20

Thx,  I did and circuit seems okey. I have the same issue with the 4 prototype boards !

Posted on April 30, 2018 at 17:27

I have tried 10K pull up on the NRST and connecting the BOOT0 to GND (I do that on other boards) and still getting the same behavior!

Wonder If a delay between the rising of the V3.3 and NRST is necessary ? I doubled checked the curves and got the below figure :

Blue : NRST

red : 3.3V

When I force the NRST to 0 and turn on the power supply and just after I release manually  the NRST pin, the application run right away!

0690X00000604eOQAQ.jpg
Posted on April 30, 2018 at 18:39

Are you sure it is not running, and just stuck somewhere early in your code?

I would try perhaps adding a delay in Reset_Handler, driving a GPIO, or jumping to the System Loader ROM, and seeing if I could get the USART to respond or USB/DFU coming up. Sorry, got very little insight into your design.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
T J
Lead
Posted on May 02, 2018 at 02:53

I use a reset chip.

https://www.digikey.com.au/product-detail/en/microchip-technology/MIC803-29D4VM3-TR/576-3806-1-ND/2567031

 

2.93V before 1.2Second timer then it releases Reset.

never have a problem with Reset again.

Posted on May 02, 2018 at 10:50

Clive One wrote:

Are you sure it is not running, and just stuck somewhere early in your code?

I would try perhaps adding a delay in Reset_Handler, driving a GPIO, or jumping to the System Loader ROM, and seeing if I could get the USART to respond or USB/DFU coming up. Sorry, got very little insight into your design.

I tried to turn on an LED first thing in main() but it didn't work.

I introduced a delay aswell (in main) but still not working.

Are you interested in checking the design ?