Hello, recently I bought the Seeed XIAO nrf52840 because I read in the datasheets the power consumption of the microcontroller is 400 nA typical in SYSTEM OFF mode without RAM retention and peripherals and 3.3V
However, when I measure the power consumption using the Power Profiler Kit II, the consumption is of 10uA running the following code:
void setup() { NRF_UART0->ENABLE = 0; /*medicion de temperatura usando registro del sensor*/ int32_t temp; NRF_TEMP->TASKS_START = 1; while(NRF_TEMP->EVENTS_DATARDY == 0){} temp = NRF_TEMP->TEMP; NRF_TEMP->TASKS_STOP = 1; /*deshabilitar ADC y apagar secciones de RAM*/ NRF_SAADC->TASKS_STOP = 1; NRF_SAADC->ENABLE = 0; NRF_NFCT->TASKS_GOSLEEP = 1; NRF_NFCT->ENABLE = 0; //power of RAM sections to avoid consumption in system OFF for(size_t i = 0; i<9; i++){ NRF_POWER->RAM[i].POWER = 0; } // Put the device in system off mode NRF_POWER->SYSTEMOFF = 1; } void loop() { // Empty loop, as the device is in system off mode }
The code is loaded from Arduino IDE. If I try to flash the equivalent code from VSCode using the nRF Connect SDK 2.6.1 extension, the system doesn't even go into SYSTEM OFF mode.
These are the measurements I obtained. Consumption averages at 10.76uA with minimums around 10.12uA and I assume the spikes are caused by an internal regulator.
To measure the consumption, I am using source mode with output enabled connecting V_out PPK2 to the 3.3V pin of the SeeedIA and bothNDs connected together Everything is on a breadboard.
I would like to the source of this high power consumption. Is the method I am using to power off peripherals effective, or could they still be on?
I am aiming to reach500nA if, but powering off peripherals doesn't seem to impact the consumption in any meaningful way.