This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF51822 sometimes won't respond to hardware reset

On our custom board, we have a dedicated hardware reset IC which toggles the nRF51822's nRST line low in response to a magic button press. The nRST line has an external 100k pullup to VDD.

In several months of regularly using this circuit to reset the nRF51, thrice I have seen the chip get into a state where pulling the nRST line low does not reset the chip. Once this occurs, nothing will reset the chip short of disconnecting the power; even manually shorting nRST to ground has no effect. The firmware and everything else continues to run normally, however, since the nRF51 will not reset I cannot reprogram the firmware until I cut the power.

I suspect the problem may be related to pin latchup given the sporadic nature of the issue. There are a few suggestions in the DevZone about adding --pinreset to nrfjprog.exe (here) and installing a bypass capacitor (here), both of which I've added to a test board with no luck.

Short of modifying the electrical design to actually disconnect the power for a reset, is there anything else I can do that might mitigate the problem?

Parents
  • @Nick Pelis: I am suspecting that you chip might accidentally enter debug mode, maybe because of an ESD pulse happens on the SWDCLK pin.

    Why do you have 100k pullup on the nRRST line ? There is already a 12k pull up internally. I would suggest you to try adding a pull down resistor on the SWDCLK pin to have more resistance over ESD, try 470 Ohm. The draw back will be it could be harder for the programmer to flash the chip.

    Also please let me know your chip version (laser marking). On our chip version 3 you should be able to trigger a pin reset when in debug mode.

Reply
  • @Nick Pelis: I am suspecting that you chip might accidentally enter debug mode, maybe because of an ESD pulse happens on the SWDCLK pin.

    Why do you have 100k pullup on the nRRST line ? There is already a 12k pull up internally. I would suggest you to try adding a pull down resistor on the SWDCLK pin to have more resistance over ESD, try 470 Ohm. The draw back will be it could be harder for the programmer to flash the chip.

    Also please let me know your chip version (laser marking). On our chip version 3 you should be able to trigger a pin reset when in debug mode.

Children
No Data
Related