Unexpected Spikes in SAADC Output When Using Noise Shaping on nRF54L15

Unexpected Spikes in SAADC Output When Using Noise Shaping on nRF54L15

Hi everyone, I’m working on the nRF54L15 DK with the SAADC peripheral and have encountered an interesting issue when enabling noise shaping. Here’s my setup:

  • Platform: nRF54L15 DK
  • SAADC resolution: 12-bit
  • Input range: Single-ended input, 0~VDD (3.3V)
  • Gain setting: 1/4
  • Sampling rate: 10k samples/sec
  • Buffer size: 1 sample (streamed continuously using TIMER + GPPI)
  • Mode: Advanced mode with noise shaping enabled

After converting the signed 12-bit samples to unsigned using 2’s complement mapping, I expected a clean sine wave ranging from 0 to 4095. However, the resulting waveform contains occasional sharp spikes, which seem to appear periodically or randomly and do not correspond to the analog input signal.

Here’s what I’ve verified so far:

  1. Without noise shaping, the waveform is clean and matches the input.
  2. With noise shaping, the overall shape is correct, but spikes appear.
  3. Spikes occur even when the input is a low-noise sine wave (from a function generator).

I’m wondering:

  1. Is this expected behavior when using noise shaping on the nRF54L15 SAADC?
  2. Are there any known limitations or special considerations when using noise shaping with TIMER + PPI triggering?
  3. Is there a recommended method to reduce or filter these spikes in software or hardware?

The code I’m using is attached. Any insights or suggestions would be greatly appreciated!

Thanks in advance!

Best regards,
Kyle Anderson