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

nRF52840 NRF_RADIO->SHORTS Register

Hi,

I want to use NRF_RADIO->SHORTS register in my standard BLE application.

I am using nRF5 SDK15.

When I write in to this register before enabling the Softdevic, it does write to the register .

But It is resetting the NRF_RADIO->SHORTS register after enabling the softdevice 

Is there a way I can set the device to use the Shorts after enabling the softdevice ?  Or any other means to do so.

Parents Reply Children
  • Thanks for the prompt response.  

    Basically we would like the CPU load to be reduced to enable time for our application.  For this, we want to eliminate the time that the CPU spends in the setting the Radio from end state to Disable state and Ready to Start states ( eliminate the time the Radio is in the RXIDLE and TXIDLE states ) of the Radio. Believe the Shorts aid in this. These state transitions are handled by interrupts to the CPU, I believe.  Eliminating these interrupts will aid in getting more time for our application. Since the Radio is capable of handling these by just setting the registers, we would like to take advantage of that.

    The shorts we are trying to implement is described in Fig 114 ( for Tx ) and Fig 117 (for Rx ) in the Ver 1.5 specification sheet of the nRF52840.

    We want to do this through the softdevice only so that we dont break anything in the system.

    Hope there is a mechanism to achieve this .

  • The SoftDevice is already highly optimized to limit CPU time and keep power consumption as low as possible. The shorts you mention are already used by the SoftDevice, so you do not need to enable them manually.

    You can check this by enabling the Radio Notification feature, then read out the RADIO->SHORTS register using a debugger when hitting a breakpoint in the radio notification handler:

  • Thanks for the response.

    I have checked the register by using the ble_radio_notification_evt_handler, as you said that the values are correct. READY_START and END_DISABLE is True.

Related