Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs

APP_TIMER_V2 does not appear to generate timer interrupts

I am using SDK 17.1.0 with an nRF52832 design similar to the P10040.

I was previously using the original timer application and things were looking good.
I decided to upgrade to SDK 17.1.0 and am using the uart example under 'ble_peripherals' to boot strap my project.

Based on another project using SDK 17.1.0, I decided to move up to the newer version of the application timer.
I defined the symbols 'APP_TIMER_V2' and 'APP_TIMER_V2_RTC1_ENABLED' in the build.

My first question is:  I do not quite understand "why do I need to enable the RTC1"?  -- and when I try to build without using this symbol then I get a build error that there is no RTC instance defined in the build.

My next comment (based on observations) is that when I enable RTC1 then I notice that the processor enters the nrf_power_mgmt phase but never fires the timer handler that I expect to be triggered every 1 second. I have validated that
    a) the firmware has indeed called the 'app_timer_init()' function, 
    b) that this 1-second timer has been created as a 'repeat-mode' timer with a 1 second timeout with no errors, and
    c) that the timer has indeed been started.

I am sure that I am missing something here -- likely some kind of connection between the hardware RTC and the firmware handler but am still struggling to nail it down.

Cheers
RVM

Parents
  • I am happy to hear that you were able to pinpoint the root of your issue, and that it is now working as intended, great! :)

    Hi Karl,

    There was, however, one more thing that I had to take care of before I got this fully working and that had to do with a bug in the RTC clock driver in SDK v17.x.y, as documented here: here

Reply
  • I am happy to hear that you were able to pinpoint the root of your issue, and that it is now working as intended, great! :)

    Hi Karl,

    There was, however, one more thing that I had to take care of before I got this fully working and that had to do with a bug in the RTC clock driver in SDK v17.x.y, as documented here: here

Children
  • Hello again, RMV

    Thank you for your extreme patience with this.

    RVM said:
    On a different, but related, note I want to understand what it means when the documentation says:
    "The RTC library does not directly start or stop the RTC but rather schedules a request to do so in the future".

    Could you pinpoint exactly where in the documentation you read this, so that I may take a look?
    The app timer definitively starts the RTC (if it is not already running), but perhaps this is referring to the case when the SoftDevice is present and enabled, in which the application looses all access to direct clock control, and may only 'request' clock operations through the SoftDevice API?

    RVM said:
    There was, however, one more thing that I had to take care of before I got this fully working and that had to do with a bug in the RTC clock driver in SDK v17.x.y, as documented here: here

    Aha - I see. I was not aware that you were using FreeRTOS + the watchdog module. I see that an update has been requested in the ticket, and that my colleague Susheel will be back in office next week. You can subscribe to the ticket in order to receive a notification whenever there is an update, if you would like.

    Best regards,
    Karl