2025-07-23 11:05 PM
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.
2025-07-24 6:13 AM
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);
}
2025-07-27 8:47 AM
Hello @TheImmortal
Are you using the latest release of CubeMX v 6.15?
2025-07-27 10:05 PM
Hi,
it's latest v 6.15
2025-08-11 2:23 AM
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.