This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

RTC fails to wake chip from SystemON Sleep nrf52840

Hello,

We have a product that sends out an ESB message approximately ever second, it does this using the RTC timer with the following setting:

static void rtc_config(void)
{
    uint32_t err_code;

    //Initialize RTC instance
    nrf_drv_rtc_config_t config = NRF_DRV_RTC_DEFAULT_CONFIG;
    config.prescaler = 4095;
    err_code = nrf_drv_rtc_init(&rtc, &config, rtc_handler);
    APP_ERROR_CHECK(err_code);

    //Enable tick event & interrupt
    //nrf_drv_rtc_tick_enable(&rtc,true);

    //Set compare channel to trigger interrupt after COMPARE_COUNTERTIME seconds
    err_code = nrf_drv_rtc_cc_set(&rtc,0,COMPARE_COUNTERTIME * 8,true);
    APP_ERROR_CHECK(err_code);

    //Power on RTC instance
    nrf_drv_rtc_enable(&rtc);
}

It sends the message then, goes into SystemOn sleep using the power manage function:

void power_manage( void )
{
    __WFE();
    __SEV();
    __WFE();
}

We had a batch go out and now a month later they have all stopped functioning, we believe that the processor is stuck in systemOn sleep as the included 3V cell batteries still have charge.

Has anyone come across a similar issue in the past or has any idea how to debug this?

One idea we have had is running a watchdog timer to make sure that the process never stalls for more than 2 seconds, but would still be nice to know what's causing the issue.

Any help appreciated!

Parents Reply Children
No Data
Related