We are using nRF54L15 with Zephyr + (NCS) for a low-power application.
Our firmware performs the following cycle repeatedly:
-
Wake up from System OFF
-
Perform data acquisition and program flow
-
Configure a GRTC wakeup interrupt for the next wake-up period
-
Enter System OFF again
The wake-up timing is controlled through GRTC interrupts.
Observed Issue
The system runs correctly for the initial cycles (typically for ~3 days of operation). After this, we observe that one of the timers fails — the GRTC interrupt is generated, so the device wakes up, but one of the main timers our application uses does not generate interrupts which is an important base for our application resulting in application halt.
Our usage -:
While investigating, we found that this behavior appears related to the following erratum:
-
nRF54L15 Rev2 anomaly L15_25
https://docs.nordicsemi.com/bundle/errata_nRF54L15_Rev2/page/ERR/nRF54L15/Rev2/latest/anomaly_L15_25.html
The errata describes a scenario where the compare event may fail to trigger, and it lists several workarounds.
We would appreciate guidance on the following :
-
Implementation in Zephyr/NCS:
The errata describes the workaround in terms of bare-metal handling. What is the recommended way to implement this workaround when using Zephyr + NCS, where Timers are typically managed by zephyr apis? -
Reliability after applying workaround:
Once the workaround is implemented, is the GRTC interrupt mechanism considered fully reliable for long-term periodic wake-up from System OFF, or are there any additional precautions recommended?
Any clarification on the correct approach for implementing the errata workaround in a Zephyr-based firmware would be greatly appreciated.
Thanks.