This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

minimum current for TX tag (nrf51)

Hi!

Is this correct scenario to minimize battery usage for radio tag transmitting 8 byte packets at 3 Hz?:

setup:

  • turn LFCLKSRC on with CLOCK_LFCLKSRC_SRC_Xtal
  • enable RTC with correct prescaler and CC regs.
  • enable HFCLK
  • power on radio
  • configure radio registers
  • enable RADIO interrupts
  • power off radio
  • enable RTC interrupts
  • start RTC

within RTC interrupt handler:

  • power on radio
  • TXEN

within RADIO interrupt handler: (DESABLED event)

  • power off radio
  • NRF_POWER->TASKS_LOWPWR = 1

Will this work in the sense of power saving?

Parents
  • Hi

    I suspect the radio transmitter example in nRF5 SDK would be a good start for this setup. However, it is not power efficient by default, mainly because it has UART enabled, which keeps the HFCLK enabled, and adds ~1mA of current consumption.

    A radio shortcut connects a radio event with a radio task and does not need CPU activity, opposite to setting up interrupt handlers. PPI channels do also connect events with tasks, but can connect event of one peripheral to a task of another peripheral.

    I would suggest to start out with the radio transmitter example and set up some shortcuts to save even more power. The send_packet function in the example is triggered in the while loop, but you could trigger it in an RTC handler instead, or even better, connect RTC event with radio start task, using PPI channel. You could also enable radio shortcuts to skip the waiting steps implemented in the send_packet function.

    Update 20.4.2016 Yes, forgot to mention that disabling the HFCLK crystal is important when not using the radio, in order to save current. The HFCLK consumes a lot of current when enabled, so this an important factor. Note that the crystal typically takes 800 us to start up (see table 22 in nRF51822_PS_3.2) but that is dependent on the chosen crystal. Starting the 16MHz crystal 1500 us before starting the radio should be safe. So perhaps the approach is this:

    • Have RTC running when radio inactive, and stay in low power mode (__WFE())
    • On RTC interrupt, start the HFCLK crystal, set another RTC interrupt after 1500 us, and enter low power mode again.
    • On second RTC interrupt, start the radio with shortcuts/PPI described earlier.
    • On radio disabled event, stop the HFCLK. You can do that with PPI channel connecting the NRF_RADIO->EVENTS_DISABLED event to the NRF_CLOCK->TASKS_HFCLKSTOP task.
  • Awesome, Stefan! Exactly what I need. Thank you again

Reply Children
No Data
Related