nrf52840 locks up if battery too low, does not recover after charging.

I have a custom board using the reference design for power, but with an i2C accelerometer, and NFC antenna, plus some LEDs etc. The board is powered via a rechargable CR2032 cell battery (nominal 3.7V) via a 3.3V regulator.

The firmware uses a timer interrupt to increment some variables every 60 seconds, a pin change interrupt setting s flag from the interrupt output from the accelerometer (after threshold exceeded), and the main thread just wakes every 20ms, checks the int flag, and if set, fully wakes the accelerometer to read the metrics and animates the LEDs if needed. If also handles NFC interrupts in the usual way, passing recorded data for reads, and resetting data when it's "written to" by the external reader.

This is all working UNLESS the battery power drops below a minimal level - unsure what this is, but must be below 3.3V, and the chip must brown-out. After this, it is completely unresponsive even if recharged fully - checked voltages after charging and the MCU is being powered correctly. As I cannot remove the battery I must then ground the reset pin to start the MCU again. 

On other architectures the MCU would just restart after the brown-out voltage is exceeded, is there something I need to change on the nRF52840 to enable this behavior? This design will go into a casing so there will be no way to access it to reset the MCU if the battery level falls too low.

EDIT: I have been Googling around and it looks like the nRF52480 switches to a permanent reset state in case of a brownout. What are the options for rebooting from this state? Assume removing the battery is not possible as it's soldered to the PCB.

Related