MPSL timeslot API stops TIMER10 at IDLE and doesn't restart it?

I'm porting some code from nRF52832/nRF52840 to nRF54L15 using the MPSL timeslot API. The old code uses MPSL version v2.5.1, the new v2.9.0.

The firmware opens a session and then schedules a timeslot. In the end the timeslot handler returns the END request, it gets a MPSL_TIMESLOT_SIGNAL_SESSION_IDLE and then it just returns NONE.

We don't close the session here.

Some time later we schedule a new timeslot with the same session id. The handler gets the START signal, but this time TIMER10 is not running. For nRF52, with the old version, TIMER0 was started for the new timeslot as well.

Is this a bug or is this the expected behaviour with v2.9.0?

Parents Reply Children
  • I don't have the time to make a proper minimal example right now, but I did add a check at the end of the timeslot handler just before returning the END request to see that the timer is still running. I did that by capturing the time twice with a busy wait between and then checked that the values differed.

    I also added that check when receiving the SESSION_IDLE signal and there the timer has stopped. We don't run any of our code between those two checks (except the low prio irq calling into mpsl).

    I also checked the whole codebase for TASKS_STOP, SUBSCRIBE_STOP, timer.*short and timer.*stop (case insensitive), we didn't have any code that could stop any TIMER.

    I'll try to create a small example. Do you have a good bare metal example for gcc to build upon?

  • Hi SebastianA,

    We unfortunately don't have such bare metal example.

  • Hi SebastianA,

    My apology for the last very short reply. I made a mistake and sent it before finishing all I wanted to do.

    Susheel is out of office, and while I am honestly quite new to the topic, I am trying to learn and substitute in for the mean time. I hope you can bear with me.

    While a bare metal example isn't available, is it possible to use the Timeslot sample to show the issue?

    Could you also see if the sample works correctly for the nRF54L15 on NCS v2.9.0 for you? It works fine for me.

    Is it possible to check if your timeslot implementation on NCS v2.9.0 works with the nRF52840 or nRF52832?

    Hieu

Related