Hi Support Team
How is the current consumption for GRTC PWM OUT of nRF54L15? Thanks.
Hi Support Team
How is the current consumption for GRTC PWM OUT of nRF54L15? Thanks.
I am not sure what you mean by GRTC PWM OUT, but you can achieve 0.8uA in SystemOff mode with GRTC enabled
Hi Susheel
Sorry for the unclear description. We want to know the current consumption for enabling GRTC with PWM output. Many thanks.

We have not measured this ourselves, yet and it seems like these numbers for peripherals are not available in datasheet also to be able to calculate ourselves.
I will try to ask my colleague who had worked on some power consumption stuff on this chip to know if he knows more. I will come back to you mostly tomorrow with more info if possible.
I see that I missed to see the system on idle current with GRTC is mentioned in the front page of the datasheet
For the PWM details I need to enquire this internally with the team that might have access to the info. But I need to create an internal ticket. I will be back to you when I have some more info from them.
I see that I missed to see the system on idle current with GRTC is mentioned in the front page of the datasheet
For the PWM details I need to enquire this internally with the team that might have access to the info. But I need to create an internal ticket. I will be back to you when I have some more info from them.
Sorry to revive an old thread. I'm replying here as I'm interested in the answer to OP's question (Current consumption of GRTC PWM Out) and it didn't seem like it was definitively answered. Any updates here?
not with the GRTC and PWM combination. Should be able to test it yourself with simple test like with below
#include <zephyr/kernel.h>
#include <hal/nrf_grtc.h>
#include <hal/nrf_pwm.h>
static void grtc_on(void)
{
/* Make sure LF source is ready before starting. */
nrf_grtc_task_trigger(NRF_GRTC, NRF_GRTC_TASK_LFCLKSTART);
while (!nrf_grtc_event_check(NRF_GRTC, NRF_GRTC_EVENT_LFCLKSTARTED)) {
}
nrf_grtc_task_trigger(NRF_GRTC, NRF_GRTC_TASK_START);
}
static void grtc_off(void)
{
nrf_grtc_task_trigger(NRF_GRTC, NRF_GRTC_TASK_STOP);
nrf_grtc_task_trigger(NRF_GRTC, NRF_GRTC_TASK_LFCLKSTOP);
}
static void pwm_on(void)
{
NRF_PWM_Type *pwm = NRF_PWM120; /* pick the instance you want to measure */
nrf_pwm_disable(pwm);
pwm->PRESCALER = PWM_PRESCALER_PRESCALER_DIV_8; /* any value is fine */
pwm->COUNTERTOP = 16000;
pwm->MODE = PWM_MODE_UPDOWN_Up;
pwm->PSEL.OUT[0] = PWM_PSEL_OUT_CONNECT_Disconnected;
pwm->SEQ[0].CNT = 1;
pwm->SEQ[0].REFRESH = 0;
pwm->SEQ[0].ENDDELAY = 0;
pwm->SEQ[0].PTR = (uint32_t)&pwm->COUNTERTOP; /* dummy constant */
pwm->SEQ[0].MAXCNT = 1;
nrf_pwm_enable(pwm);
nrf_pwm_task_trigger(pwm, NRF_PWM_TASK_SEQSTART0);
}
static void pwm_off(void)
{
NRF_PWM_Type *pwm = NRF_PWM120;
nrf_pwm_task_trigger(pwm, NRF_PWM_TASK_STOP);
while (!nrf_pwm_event_check(pwm, NRF_PWM_EVENT_STOPPED)) {
}
nrf_pwm_disable(pwm);
}
void main(void)
{
k_sleep(K_SECONDS(5));
grtc_on();
k_sleep(K_SECONDS(5));
grtc_off();
pwm_on();
k_sleep(K_SECONDS(5));
pwm_off();
/* stay idle so you can measure post-test baseline if needed */
while (true) {
k_sleep(K_SECONDS(1));
}
}