Implement GRTC auto-reload without using interrupts

HI

I am currently using NRF54L15 with SDK version 3.0.0, and I want to implement GRTC auto-reload without using interrupts. My main goal is to reduce CPU usage and utilize the peripheral DPPI for operations as much as possible.

  1. The manual states that only Channel 0 supports hardware auto-reload, while other channels can be configured via the CC_ADD register. However, in Zephyr, Channel 0 is already used for RTOS timing, so I am applying for other channels for comparison.

  2. For other channels, I am trying to implement GRTC auto-reload using DPPI, but there seems to be no CC_ADD operation among the tasks.

Does this mean I cannot avoid interrupts to achieve GRTC compare reloading?

Thanks.

Parents
  • Hello,

    That seems to be the case.. You cannot achieve true auto-reload (periodic compare) on GRTC channels other than channel 0 without CPU intervention. Only Channel 0 supports true hardware auto-reload via the INTERVAL register, which allows periodic compare events without CPU or software intervention. For channels other than 0, you must use an interrupt to update the compare value (via CCADD or direct CC write), as there is no DPPI/PPI task for CCADD. Thus, you cannot avoid interrupts for auto-reload on these channels.

    Regards,

    Swathy

Reply
  • Hello,

    That seems to be the case.. You cannot achieve true auto-reload (periodic compare) on GRTC channels other than channel 0 without CPU intervention. Only Channel 0 supports true hardware auto-reload via the INTERVAL register, which allows periodic compare events without CPU or software intervention. For channels other than 0, you must use an interrupt to update the compare value (via CCADD or direct CC write), as there is no DPPI/PPI task for CCADD. Thus, you cannot avoid interrupts for auto-reload on these channels.

    Regards,

    Swathy

Children
Related