Greetings to everybody!
There is some question about nRF54L15-DK board measured current consumption.
I measure current via the P6 connector, that is, I measure current within the VDDM_nRF cirquit.
Which is precisely the nRF54L15's MCU consumption. This goes to pin 48 (VDD). While the rest VDD pins (47, 10, 22, 36) are named VDD_nRF
and used to derive the VDDIO voltage (as well as VDD_DBGR) via the NPN-Transistor/OA buffer. So, VDDIO is actually drawn from the +5V VBUS, not from the VDD_nRF. VDD_nRF is used solely as a reference level.
The board has QSPI flash chip, but it is powered from VDDIO line, thus no consumption influence inside the measured cirquit (VDDM_nRF). Same with LEDs - those are outside the VDDM_nRF power domain.
I have Nordic nRF Connect SDK v.3.0.2 installed (in c:\ncs folder). I use SystemInit() from the system_nrf54l.c file ("c:\ncs\v3.0.2\modules\hal\nordic\nrfx\mdk\system_nrf54l.c")
I have created a simple IAR project which contains the main.c file with almost empty main function, the system_nrf54l.c is addded to the IAR project tree.
In the IAR's Project Options/C++ Compiler/Defined Symbols I defined minimum required things required for nordic's nrf.h and system_nrf54l.c to recognize nRF54L15's Cortex-M33 core correctly.
(like NRF54L15_XXAA and __ARM_FEATURE_CMSE)
In startup.s file I call "bl SystemInit" - so the very first instruction after reset calls the SystemInit, which in its turn, the official Nordic startup code.
This code initializes clocks, enables Debug AP, turns on DCDC. Without SystemInit(), the current consumption is about 820uA. Right after the DCDC is enabled inside the SystemInit(), the current drops to ~35uA.
Then the main() function is finally called and there I just have:
while (true)
{
SCB->SCR |= SCB_SCR_SLEEPDEEP_Msk;
__WFE();
}
System definitely stays in the sleep mode. After reset no peripherals are touched, since this is uber simple IAR project, it just goes to main after SystemInit().
But no matter what I do, I have 35 uA consumption. I would expect in sleep mode current to drop to about 1-2 uA.
I would like again to stress out the fact that this is the IAR ARM project, it is uber simple, it is not zephyr compiled project. In IAR project I'm 100% sure that after reset,
the MCU just executes SystemInit() and then goes into main(). Thus no hidden or forgotten code which could init or power some power domain which could be the reason of 35uA consumption.
The asm startup code is this:
......
pubweak Reset_Handler
section .text:CODE:REORDER:NOROOT(2)
Reset_Handler
bl SystemInit
b __iar_program_start
......
Maybe MCU after reset and Nordic's SystemInit() still has some powered peripheral which needs to be shut down? But what this could be, since I'd expect after reset MCU is in its less used power state.
Please suggest where could be the problem?





