cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F107 reset failed via NRST pin

410409285
Associate
Posted on October 20, 2016 at 05:54

Background:

       1.5% of products which use STM32F107 totally dead after using 3 months;

Problem:

       The NRST reset not function. After disconnecting the power and connecting again, the chip could recover and work again. And this problem could not be reproduced in our lab condition.

information:  the chip use STANDBY mode to shut down and use WAKE UP pin back to work.

The schematic is attached below.(Only the core components displayed)

Is the schematic wrong or did I missed something?

0690X000006058PQAQ.png

#stm32f107 #reset-failed
3 REPLIES 3
Walid FTITI_O
Senior II
Posted on October 20, 2016 at 17:51

Hi wenqiang.liu, 

It can be a software related issue in your code. To get more help, Please, share the part of your main code ( power initialization , wakeup pin configuration , standby configuration, enter and exit routines of standby mode) with the interrupt handler called.

-Hannibal-

410409285
Associate
Posted on October 21, 2016 at 09:18

Thanks for your response;

But I really don't think this is a software issue; I know well the issue about using more than one wakeup soure; According IO signals detected by myself, the chip stay in reset mode; The reset pin voltage is 3.3V, and it could go to 0.0V when I short the capacitor; Here is the code related init and standby routine.

//Core init routine
//fault config
uint32_t SHCSR = SCB->SHCSR;
SCB->SHCSR = SHCSR | (SCB_SHCSR_BUSFAULTENA | SCB_SHCSR_MEMFAULTENA | SCB_SHCSR_USGFAULTENA );
/* Use CMSIS function Setup STM32 system (clock, PLL and Flash configuration) */
/* External Crystal @ 25MHz Core frequency 72MHz */
SystemInit();

//Enter standby mode routine
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
/* Allow access to BKP Domain */
PWR_BackupAccessCmd(ENABLE);
/* Reset Backup Domain */
BKP_DeInit();
BKP_WriteBackupRegister(BKP_DR2, 0xA6A6);
/* Enable WKUP pin */
PWR_WakeUpPinCmd(ENABLE);
/* Request to enter STANDBY mode (Wake Up flag is cleared in PWR_EnterSTANDBYMode function) */
PWR_EnterSTANDBYMode();

DevSys
Associate

HI, The same issue we are also facing and couldn't reproduce the same in lab . Did you find any solution ?