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

nRF52833 development

Hello all,

I am working on low power sensor development with nRF52833 as target. I have some questions but I'm not sure it this was addressed in some other posts.

1. I don't have nRF52833 DK but instead I use nRF52840DK for development under SES environment. What in particular should I be aware of when generating target code for nRF52833?

2. I wan't to place sensor in sleep state for longer period of time. From product spec I understand that I should use wake on RTC and no RAM retention for lowest possible power. Because of no RAM retention, I need CPU to restart after timeout, not to go to application timer timeout handler but to top of main. How can I set this up?

Thanks

Parents
  • Hi

    Thank you for clarifying. When you're sleeping with no RAM retention, the RAM block(s) will be disabled and powered off. So when you wake up again, you would necessarily have to reinitialize your application again, either by doing a reset or by running the necessary init functions upon wake-up.

    Best regards,

    Simon

  • I am sorry for bothering you, but I think there is still a problem with sleep-wakeup sequence:

    1. When sleep timer is created, pointer to sleep timer callback routine is stored in RAM (by calling app_timer_create)
    2. RAM retention is turned OFF and device sleep timer starts counting. (by calling app_timer_start)
    3. If there is no active task (for example advertising), device will go to low power mode. All RAM content will be lost
    4. When sleep timer expires, CPU will have to fetch pointer to sleep timer callback routine (created in step 1.)

    But at step 4 all RAM data is lost, including pointer to sleep timer callback routine. How can program execution go to sleep timer callback routine if pointer to it is destroyed

    Best regards

Reply
  • I am sorry for bothering you, but I think there is still a problem with sleep-wakeup sequence:

    1. When sleep timer is created, pointer to sleep timer callback routine is stored in RAM (by calling app_timer_create)
    2. RAM retention is turned OFF and device sleep timer starts counting. (by calling app_timer_start)
    3. If there is no active task (for example advertising), device will go to low power mode. All RAM content will be lost
    4. When sleep timer expires, CPU will have to fetch pointer to sleep timer callback routine (created in step 1.)

    But at step 4 all RAM data is lost, including pointer to sleep timer callback routine. How can program execution go to sleep timer callback routine if pointer to it is destroyed

    Best regards

Children
No Data
Related