Startup Problems at Low Battery Voltage with nRF52811

Hello,

I am using the nRF52811 on a keyfob that transmits short packets when a button is pressed. The button directly connects power to the MCU, and the firmware immediately enters the main thread's infinite loop to start transmitting periodically. However, I have noticed an issue with program startup when the battery is slightly depleted (around 2.85V). According to the manual, the MCU should operate down to 1.7V. We have also implemented the DCDC option in the hardware, which I enable at the beginning of the main function using: nrf_power_dcdcen_set(NRF_POWER, true);

  1. I am unsure if enabling the DCDC converter affects the minimum voltage at which the MCU operates. I enable the DCDC only at the first line in the main function. Additionally, I am using Zephyr, so the main is not exactly "main," and it takes a while after a reset for the program to reach the point where it turns on the DCDC. The problem is that around batt voltage = 2V, the device often fails to start up or does not complete the esbInit() or buttonInit()  initialization. However, at 3V, there are no issues
  2. I am also unsure how to set the Brown-Out Reset (BOR) or something similar that the nRF52811 has in these cases (Power-fail comparator?).
Could you advise on the proper setup or modifications to ensure reliable operation at lower voltages?

void main(void)
{
	dataQueue rxd;
	tMainData glData;
	uint32_t txDoneCnt=0;

	nrf_power_dcdcen_set(NRF_POWER, true);

	if(ledInit() != true)	LogError(1);	

	if(esbInit())	LogError(2);
	
	if(btnsInit() != true)	LogError(4);

  • Hi

    First off, what SDK are you using for development here? 

    My first thought when reading this is that maybe the voltage rise time isn't within the specs when the battery is operating near depletion. According to the Recommended operating conditions, the Supply rise time from 0V to 1.7V should never be more than 60ms, and if that is, the power-on reset circuitry may not function properly.

    The threshold VPOF is set in the POFCON register. If the POF is enabled and the supply voltage falls below VPOF, the POFWARN event will be generated. The brown-out will always be enabled and always trigger if the voltage goes below 1.7V during run time.

    Best regards,

    Simon

Related