I set up my nrf52 self board with internal LDO using reference schematics with internal LDO setup.
Im entering the power safe mode using __WFE instruction
if(lpm_flag) { nrf_gpio_pin_clear(LED_0); retry_cnt = 0; nrf_esb_disable(); // останавливаем while(!nrf_esb_is_idle()); NRF_RADIO->POWER = RADIO_POWER_POWER_Disabled << RADIO_POWER_POWER_Pos; // Уходим в спящий режим если ничего не приняли clocks_set(XTAL_LF, true); clocks_set(XTAL_HF, false); // разрешаем прерывания от кнопки и геркона NVIC_EnableIRQ(GPIOTE_IRQn); //NRF_POWER->TASKS_LOWPWR = 1UL; // #ifdef NRF52 // NRF_POWER->RAM[0].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[1].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[2].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[3].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[4].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[5].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[6].POWER = RAM_RETENTION_OFF; // NRF_POWER->RAM[7].POWER = RAM_RETENTION_OFF; // #endif //NRF52 // NRF_POWER->SYSTEMOFF = 0x1; // (void) NRF_POWER->SYSTEMOFF; // while (true); // ждем события __WFE(); __SEV(); __WFE(); }
Also i did the same with nrf51 but it has DC/DC converter mode. In nrf51 case current consumtion is 1.5 - 2 uA, in nrf52 case 10 - 14 uA. Is it influence of LDO ?