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

RADIO Power Control for Register reset

Hello, I'm working on timeslot and RADIO on nRF52840.

I found a sample code which sets 1 to "NRF_RADIO->POWER" to initialize RADIO peripheral.

-------------------------------------------------
/* Reset all states in the radio peripheral */
NRF_RADIO->POWER = 1;
-------------------------------------------------

However, the description in "6.20.14.39 POWER" is somewhat different.

-------------------------------------------------
Peripheral power control. The peripheral and its registers will be reset to its initial state by switching the peripheral off and then back on again.
-------------------------------------------------

It is clearly saying that the POWER should be set to "0' and then "1" like following, isn't it?

-------------------------------------------------
/* Reset all states in the radio peripheral */
NRF_RADIO->POWER = 0;
NRF_RADIO->POWER = 1;
-------------------------------------------------

  • Hi,

     

    jake.yoon said:
    Do I have to reset the RADIO registers by myself whenever timeslot starts?

    No, that should not be necessary. You only need to power it on.

    jake.yoon said:
    Or SD(Soft Device) resets them or powers down RADIO before calling my timeslot start routine(NRF_RADIO_CALLBACK_SIGNAL_TYPE_START)?

     The Softdevice will power off the RADIO peripheral after every connection interval is finished, to ensure it starts from a known position on the next connection interval it should handle. A timeslot is scheduled after a BLE operation is finished, so the timeslot will be opened up with .POWER=0.

    For an example implementation, you can have a look at this blog post:

    https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/running-micro-esb-concurrently-with-ble

     

    Kind regards,

    Håkon

  • Oh, I got it.

    Thank you very much for the link.

    Best regards,

    Jake

1 2 3