cancel
Showing results for 
Search instead for 
Did you mean: 

NRST Pin of stm32F103C8T6 gets pulled to low after some time. Why does this happen?

vishweshgm
Associate II

I have PCB made for STM32F103C8F46 with the attached schematic. At first I use ST-LINKV2 debugger to connect to the target. It connects successfully and able to flash the code as well. and it works well. But after some-time (like 5-10minutes) of keeping poweredon, voltage at the NRST pin of micro gets pulled to low and some short amplitude random pulses are seen at pin if I put scope.

Once I see NRST getting pulled low, then no-matter what I do it doesnot go back to normal. I replaced controller on the PCB and tried . But same behaviour again, first it works properly and then NRST held low. I had another blank PCB where I only put controller+debug bergsticks and tried connecting. This time I didn't even flash my code, just kept it powered on . Same behaviour occurred.

so totally I wasted 5 controllers debigging this.

When irrecgular behaviour occurred, I tried to load bootloader of STM using Boot0 held high. It sometimes gets connected and sometimes doesnot. When gets connected, I am able to flash hex. But after resetting Boot0 to low and running program, it resets back again. Really can't say whats happening.

So conclusion is either my schematic or PCB hardware has some fault. So please go through my schematic and point out mistakes if any.

3 REPLIES 3
Peter BENSCH
ST Employee

First of all, NRST does not need a pull-up resistor, as was common with MCUs of the last century, because there is already a pull-up in the STM32. However, a capacitor of 10...100nF should be connected to NRST against GND.

Furthermore, NRST acts not only as an input, but also as an output. It can put several internal reset sources as a pulse of about 20µs to the outside circuitry, as you can find in RM0008 under Power Reset. For example, you may have activated the watchdog WWDF or IWDG, which triggers a reset if the watchdog has not been triggered before.

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
vishweshgm
Associate II

@Peter BENSCH​ , I agree. In one of my trials, I completely removed 10k resistor and put 100nF. But still it behaved same. I have gone through RM0008 document, and the following scheamtic. It is less likely that any of this happening as I have used brand-new controller on a fresh pcb and didn't een flash any code. From your reply can I assume there's no issue with my schematic? (i mean from VDD, VSS connections point of view). If this still happening.. there might be some issue with PCB itself and may be I can safely go for another PCB manufacturer...

0693W00000LvinoQAB.png

Peter BENSCH
ST Employee

I don't see any serious problems in your schematics. You will only not be able to start the internal bootloader because BOOT0 is fixed at GND, but with e.g.R16=100k and BOOT0 = 1 at reset, this would be possible.

The IWDG and WWDG are disabled after reset if the option bytes (see PM0075, section 2.5) have not been changed (they contain 00FF5AA5 00FF00FF 00FF00FF 00FF00FF when fresh). The other reset sources should also behave quietly when unprogrammed.

If it's not your other environment that's haunting the circuit (interference pulses, other couplings, etc.), I suspect that it's not so much a problem with the board, but rather with the STM32103 - at the moment you can find a lot of offers with fakes because of the extremely tight supply situation. Are you 100% sure that they are not fakes/counterfeits?

Regards

/Peter

In order to give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.