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

Are All Interrupts diabled during a BLE event?

I have implement the systick with the idea to use it for delay functions. The systick is running normal if no BLE Events occur, but during a BLE event it seems to be stopped. Are all interrupts disabled during a BLE event from the softdevice? What is the best method to implement mS delays during a BLE event?

Parents
  • Hi Ronny,

    What do you mean by "a BLE event" ? It's when the radio active and communicate or when the application receive the interrupt event ?

    I don't think all the interrupt will be disabled during BLE event. Of course the softdevice has higher interrupt priority level than application. But you should receive your interrupt after the softdevice finish with its interrupt handler.

    Please be noted that on the nRF52 Systick will be paused when the CPU sleeping. This should not be the issue if you keep the CPU on. This may not related to your issue.

    For your purpose, I think the best way is to use the RTC timer (or use our app_timer) to implement mS delay.

Reply
  • Hi Ronny,

    What do you mean by "a BLE event" ? It's when the radio active and communicate or when the application receive the interrupt event ?

    I don't think all the interrupt will be disabled during BLE event. Of course the softdevice has higher interrupt priority level than application. But you should receive your interrupt after the softdevice finish with its interrupt handler.

    Please be noted that on the nRF52 Systick will be paused when the CPU sleeping. This should not be the issue if you keep the CPU on. This may not related to your issue.

    For your purpose, I think the best way is to use the RTC timer (or use our app_timer) to implement mS delay.

Children
  • With BLE event i mean the function that is called from the softdevice on the moment a write is received from the client. So what i conclude now is that the event function is called via a interrupt and that the interrupt level of this event is higher than the interruptlevel of the systick, so on that moment the systick will be stopped and is not usable for delay functions. I will look to use RTC timer or app_timer to create delay functions if needed.

  • Hi Ronny,

    Please be noted that same applied for RTC, there still a latency can cause by softdevice when it has to take care of the BLE event. The maximum latency is described at chapter Interrupt model and processor availability in the softdevice specification.

  • Ok, thanks for the extra info I will study the information about the Interrupt model and processor availability in the softdevice specification in detail

Related