nRF54H20 PDM DMIC only records noise.

Hi, 

We are almost ready with our first board around nRF54H20, only one issue is remaining. We have prepared a sample, that records PDM audio as PCM wave, and stream it over UART, and a python script to assemble and save it as wav file, to play and test.

1. We tried on-board PDM (CLK->P1.1 and DATA=>P1.4), and we are only getting white noise.
2. Then we tried external DMIC , (CLK->P2.2 and DATA=>P2.5), and getting same white noise.
3. Then we added support for nRF5340DK and tested same external DMIC, and both samples and DMIC is working as expected. (This step verifies DMIC and Sample)


Following is the overlay we are using with our custom board.
- if we use cpuapp_dma_region as memory-regions, then sample fail at memory allocation
- if we use "PCLK32M_HFXO" just like nRF5340 we get failed to request clock error in driver

&pinctrl {

	/omit-if-no-ref/ pdm0_default: pdm0_default {
		group1 {
			psels = <NRF_PSEL(PDM_CLK, 2, 2)>,
				<NRF_PSEL(PDM_DIN, 2, 5)>;
		};
	};
};

dmic_dev: &pdm0 {
	status = "okay";
	pinctrl-0 = <&pdm0_default>;
	memory-regions = <&dma_fast_region>;
	pinctrl-names = "default";
	clock-source = "PCLK32M";
};



Parents
  • Hi

    Susheel is out of office, so I'm trying to get a grip of DMIC on nRF54H20 in his absence. The audio team has not worked on DMIC on the nRF54H20 yet, so the feature is not fully implemented yet, and so the support is only experimental yet.

    Some general notes on what you can try:

    Use a logic analyzer on the pins to ensure clocking and data output is within the microphone's specifications. You can also try to have no data in to the SoC (break and ground the data lines to see if you then get silence, or if there's still noise). 

    I'll try do some more digging, but can't promise anything soon I'm afraid. Thank you for your patience.

    Best regards,

    Simon

Reply
  • Hi

    Susheel is out of office, so I'm trying to get a grip of DMIC on nRF54H20 in his absence. The audio team has not worked on DMIC on the nRF54H20 yet, so the feature is not fully implemented yet, and so the support is only experimental yet.

    Some general notes on what you can try:

    Use a logic analyzer on the pins to ensure clocking and data output is within the microphone's specifications. You can also try to have no data in to the SoC (break and ground the data lines to see if you then get silence, or if there's still noise). 

    I'll try do some more digging, but can't promise anything soon I'm afraid. Thank you for your patience.

    Best regards,

    Simon

Children
No Data
Related