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

sd_radio_request maximum rate

I am working on an application where the nRF52832 is being used to control external hardware that requires fairly precise timing. Specifically, I use sd_radio_request to allocate timeslots of 1.2 mS each. During the allocated timeslot the timer peripherals are used to perform the timing of the specific hardware requirements. In normal use, a timeslot will be allocated with a second timeslot requested 4 mS later. The first timeslot is then reallocated at an interval after the first pair determing by a BLE characteristic value.

If I fake out the interval between timeslot pairs to cause timeslots to be allocated with 10 mS between pairs with no BLE device connected, the system performs at the selected 100 Hz rate. However, the moment I connect a BLE device, the rate immerdiately drops to 33.3 Hz (i.e. 30 mS between timeslot pairs.)

Am I running into a limit in how fast the Softdevice can allocate timeslots or is there something I can do to get faster timeslot allocation?

I just remembered to check the allocation time for the second timeslot in a pair relative to the first. When no BLE device is connected, the interval between the timeslots is 4 mS as expected. When a BLE device is connected, the interval between the timeslots in a pair goes up to 6 mS.

Related