Skip to main content
Associate III
July 24, 2025
Solved

STM32N6 cubeMX do not generate HAL_DCMIPP_MspInit for parallel DCMIPP interface

  • July 24, 2025
  • 4 replies
  • 437 views

Hello,

If DCMIPP parallel mode is selected then CubeMX do not generate HAL_DCMIPP_MspInit function to initialize and enable DCMIPP CLK, pinout, IRQ, there is only weak empty declaration in stm32n6xx_hal_dcmipp.c, without initialization settings nothing works...

I do not checked other modes.

Best answer by Imen.D

Hello @TheImmortal 

This issue in fixed in the latest release of STM32CubeMX v6.16.0 which is available in st.com page.

Thank you for having reported this.

4 replies

Associate III
July 24, 2025

Maybe it helps, I created HAL_DCMIPP_MspInit initialization settings, now DCMIPP is working, adjust by you HW.

/* USER CODE BEGIN 4 */
void HAL_DCMIPP_MspInit(DCMIPP_HandleTypeDef *hdcmipp) {
	GPIO_InitTypeDef GPIO_InitStruct = { 0 };
	RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = { 0 };
	//if (hdcmi->Instance == DCMIPP) {

	__HAL_RCC_DCMIPP_CLK_ENABLE();
 __HAL_RCC_DCMIPP_FORCE_RESET();
 __HAL_RCC_DCMIPP_RELEASE_RESET();
 HAL_NVIC_SetPriority(DCMIPP_IRQn, 3, 0);
 HAL_NVIC_EnableIRQ(DCMIPP_IRQn);

 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_DCMIPP;
 PeriphClkInitStruct.DcmippClockSelection = RCC_DCMIPPCLKSOURCE_IC17;
 PeriphClkInitStruct.ICSelection[RCC_IC17].ClockSelection = RCC_ICCLKSOURCE_PLL3;
 PeriphClkInitStruct.ICSelection[RCC_IC17].ClockDivider = 4;
 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) {
 Error_Handler();
 }

	__HAL_RCC_GPIOF_CLK_ENABLE();
	__HAL_RCC_GPIOA_CLK_ENABLE();
	__HAL_RCC_GPIOG_CLK_ENABLE();
	__HAL_RCC_GPIOB_CLK_ENABLE();
	__HAL_RCC_GPION_CLK_ENABLE();
	/**DCMI GPIO Configuration
	 PF1 ------> DCMI_D7
	 PA1 ------> DCMI_D0
	 PG3 ------> DCMI_HSYNC
	 PG15 ------> DCMI_D4
	 PA10 ------> DCMI_D1
	 PG1 ------> DCMI_PIXCLK
	 PG10 ------> DCMI_D2
	 PG2 ------> DCMI_D6
	 PB4(NJTRST) ------> DCMI_VSYNC
	 PN9 ------> DCMI_D5
	 PA4 ------> DCMI_D3
	 */

	GPIO_InitStruct.Pin = GPIO_PIN_1;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF9_DCMIPP;
	HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);

	GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_10 | GPIO_PIN_4;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF9_DCMIPP;
	HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

	GPIO_InitStruct.Pin = GPIO_PIN_3 | GPIO_PIN_15 | GPIO_PIN_1 | GPIO_PIN_10 | GPIO_PIN_2;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF9_DCMIPP;
	HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);

	GPIO_InitStruct.Pin = GPIO_PIN_4;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF9_DCMIPP;
	HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

	GPIO_InitStruct.Pin = GPIO_PIN_9;
	GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
	GPIO_InitStruct.Pull = GPIO_NOPULL;
	GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
	GPIO_InitStruct.Alternate = GPIO_AF10_DCMIPP;
	HAL_GPIO_Init(GPION, &GPIO_InitStruct);
}

 

Technical Moderator
July 27, 2025

Hello @TheImmortal 

Are you using the latest release of CubeMX v 6.15?

"When your question is answered, please close this topic by clicking ""Accept as Solution"".ThanksImen"
Associate III
July 28, 2025

Hi,

it's latest v 6.15

Technical Moderator
August 11, 2025

Hi @TheImmortal ,

I reproduced this issue and escalated it through internal ticket number 215575.

Our Dev team is now aware of this issue and is working to resolve it.
Thank you for your contributions and for your understanding while we work on this.

PS: Internal ticket number 215575 is only for reference and not accessible outside of ST.

"When your question is answered, please close this topic by clicking ""Accept as Solution"".ThanksImen"
Imen.DBest answer
Technical Moderator
November 20, 2025

Hello @TheImmortal 

This issue in fixed in the latest release of STM32CubeMX v6.16.0 which is available in st.com page.

Thank you for having reported this.

"When your question is answered, please close this topic by clicking ""Accept as Solution"".ThanksImen"