The nRF54L15 Product Specification lists the following PDM feature:
"8 kHz, 16 kHz, 32 kHz, or 48 kHz output sample rate"
"Supports digital microphone clocks at 768 kHz, 800 kHz, 1. 024 MHz , 1.536 MHz, 2.048 MHz , 3.072 MHz , 1.28 MHz, and 2.56 MHz"
However, when working through the actual hardware, I cannot find a way to achieve exactly 48 kHz. I want to confirm whether this is a documentation inaccuracy or whether I'm missing a clock source. I also have a second question about the maximum PDM clock frequency.
Question 1: 48 kHz output sample rate
The PDM20 peripheral on nRF54L15 has a single PRESCALER.DIVISOR register (integer, range 4–126) that divides PCLK32M (32 MHz). There is no MCLKCONFIG or CLKSELECT register in the SVD — only the prescaler. The supported decimation ratios are 32, 48, 50, 64, 80, 96, 100, and 128.
For exact 48 kHz output, we need:
32,000,000 / prescaler / ratio = 48,000
→ prescaler × ratio = 666.666...
This is not an integer for any combination of integer prescaler and supported ratio. The closest achievable values are:
| Ratio | Prescaler | Actual rate | Error |
|---|---|---|---|
| 48 | 14 | 47,619 Hz | −0.80% |
| 64 | 10 | 50,000 Hz | +4.17% |
By comparison, 8 kHz (32M/40/100), 16 kHz (32M/25/80), and 32 kHz (32M/20/50) are all achievable exactly.
What I've ruled out:
I checked whether nRF54L15 has an AUXPLL that could supply an audio clock (as seen in dmic_nrfx_pdm.c's #elif DT_NODE_HAS_STATUS_OKAY(NODE_AUDIO_AUXPLL) path). The AUXPLL DTS node does not appear in any nRF54L15 DTS files — it's only present for nRF54H20, nRF7120, and nRF9280. Zephyr's dmic driver confirms this by hardcoding DMIC_NRFX_CLOCK_FREQ = MHZ(32) for nRF54L15 with no audio clock fallback.
Questions:
- Is the "48 kHz" bullet in the PS a documentation error, or is there a clock source on nRF54L15 that enables it that I'm not seeing?
- If it is a documentation error, what is the correct statement of supported output sample rates?
- Is there any planned errata or PS update to address this?
Question 2: Maximum PDM clock frequency
The PRESCALER.DIVISOR field has a documented minimum of 4, which implies a theoretical maximum PDM clock of 32 MHz / 4 = 8 MHz. However, I cannot find a specified maximum PDM clock frequency for the nRF54L15 PDM peripheral anywhere in the PS or datasheet.
We are considering a microphone rated for PDM clocks up to 4.8 MHz, so we'd like to drive the PDM clock as high as the nRF54L15 can reliably support.
Questions:
- Is there a specified maximum PDM clock frequency for the nRF54L15 PDM peripheral?
- If the minimum prescaler is 4 (8 MHz theoretical max), is the full range actually usable in practice, or is there an undocumented upper limit we should observe?
- Is driving the PDM clock at 4.571 MHz (prescaler=7, 32M/7) a supported operating condition?
- If the PDM clock can be high like above, can nRF54L15 support higher output sample rates such as 96kHz?
SDK version: NCS v3.2.4