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

Softdevice uses CPU resources for hardware based events (PPI w/out IRQs...) - why?

NRF52840 - SDK 15.0 + Some register based custom functions.  S140, 6.0.0.

In order to work around some of the hardware limitations with SPIM in the context of a project, we've built a solution that uses PPI to drive a chain of peripherals. 
In a non-softdevice application it works flawlessly - only using CPU after a number of data transfers have been executed. 

In the Image below we have 8 groups of 16 individual chip selects, all driven via PPI - at the end of the 8th transfer an actual IRQ is issued, a software flag is set and we block process all of the data. The top line is the SPI CS toggling, and the bottom is CPU active low  - it's pretty clear the CPU is only active during the IRQ and block processing.

SoftDevice Off

Once SoftDevice is enabled, we appear to see "responses" to every single event generated, even though none of the peripherals used in the PPI chain have hardware IRQs enabled - is this expected / normal? If so, why?

Softdevice ON

Related