nRF54L15 PDM — 48 kHz output sample rate listed in PS but not achievable from 32 MHz base clock? Also: maximum PDM clock frequency?

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:

  1. 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?
  2. If it is a documentation error, what is the correct statement of supported output sample rates?
  3. 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:

  1. Is there a specified maximum PDM clock frequency for the nRF54L15 PDM peripheral?
  2. 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?
  3. Is driving the PDM clock at 4.571 MHz (prescaler=7, 32M/7) a supported operating condition?
  4. 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

  • Hello, 

    Thank you for your patience. I wrote a reply last week, but unfortunately I forgot to send it then. Apologies for the inconvenience. 

    • 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?

    This is not a documentation error, but the sample rate accuracy is not 100%. You can see another example of this in the Master clock generator section for the nRF54L15 PDM interface, i.e the error column for requested fPDM = 1024000 Hz. The error you found with RATIO, PRESCALER = 48, 14 has a very similar error percentage. 

    • 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?

    The maximum is 8MHz, however, the RATIO and PRESCALER values limit the actual usable frequency to 6.4MHz or ∼4.57MHz, depending on how accurate you want the output sample rate to be. This limit is caused by the supported sample rates being limited to the ones listed in the datasheet.

    Is driving the PDM clock at 4.571 MHz (prescaler=7, 32M/7) a supported operating condition?

    Yes. 

    If the PDM clock can be high like above, can nRF54L15 support higher output sample rates such as 96kHz?

    No. 

    Thank you again for your patience, and please let me know if something is unclear or if you have further questions. 

    Best regards,

    Maria

  • Hi Maria,

    Thanks for your response.

    With respect to the higher sample rates, could you provide some visibility as to why higher sampling rates are not supported? Is there a particular block (e.g. sampling, PDM to PCM, Bandpass and decimation) which does not support the higher sampling rates?

    The reason I am asking is because I have experimentally tried sample rates such as 64ksps (prescalar=10, pdm ratio=50). In this case, the hardware does not hang and seems to produce output audio. What is the tradeoff of enabling this higher sampling rate which is outside of spec?

    Thanks again.

    Nandan

Related