Skip to main content
Associate
April 2, 2025
Solved

Initializing the HDP on STM32N6

  • April 2, 2025
  • 1 reply
  • 461 views

I wanted to use the HDP (Hardware Debug Port) peripheral on the STM32N6 MCU (Nucleo N6 board), but CubeMX does not generate the MX_HDP_Init() function for it and does not initialize the peripheral either.

Based on the reference manual, I tried configuring the peripheral at the register level but was unsuccessful.
My example:

LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_HDP);
*(uint32_t*)(HDP_BASE_NS + HDP_MUX) = 0xffffffffUL;
*(uint32_t*)(HDP_BASE_NS) |= 0x1UL;
*(uint32_t*)(HDP_BASE_NS + HDP_GPOSET) = 0xff;

uint32_t hdpval = *(uint32_t*)(HDP_BASE_NS + HDP_VAL); // read back the HDP_VAL register

My question is: how can I enable the "(from BSEC) HDPEN" signal shown in the diagram below?

 

Thanks:

Peter

 

 

hdp1-issue.png

 

This topic has been closed for replies.
Best answer by KDJEM.1

Hello @pdemeter and welcome to the community;

 

First of all I apologize for my late reply.

Which STM32CubeMX version are you using? 

I enabled HDP with STM32CubeMX 6.14.1 version and I can see the MX_HDP_Init() function in the generated code.

In addition, I got the GPIO configuration.

 /* set up GPIO configuration */
 /* GPIOC Non Secure Ports Clock Enable */
 __HAL_RCC_GPIOC_CLK_ENABLE();
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_1,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_6,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_7,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_11,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_12,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 /* GPIOD Non Secure Ports Clock Enable */
 __HAL_RCC_GPIOD_CLK_ENABLE();
 HAL_GPIO_ConfigPinAttributes(GPIOD,GPIO_PIN_6,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOD,GPIO_PIN_12,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 /* GPIOH Non Secure Ports Clock Enable */
 __HAL_RCC_GPIOH_CLK_ENABLE();
 HAL_GPIO_ConfigPinAttributes(GPIOH,GPIO_PIN_9,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);

Thank you.

Kaouthar

 

1 reply

KDJEM.1
KDJEM.1Best answer
ST Technical Moderator
May 15, 2025

Hello @pdemeter and welcome to the community;

 

First of all I apologize for my late reply.

Which STM32CubeMX version are you using? 

I enabled HDP with STM32CubeMX 6.14.1 version and I can see the MX_HDP_Init() function in the generated code.

In addition, I got the GPIO configuration.

 /* set up GPIO configuration */
 /* GPIOC Non Secure Ports Clock Enable */
 __HAL_RCC_GPIOC_CLK_ENABLE();
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_1,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_6,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_7,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_11,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOC,GPIO_PIN_12,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 /* GPIOD Non Secure Ports Clock Enable */
 __HAL_RCC_GPIOD_CLK_ENABLE();
 HAL_GPIO_ConfigPinAttributes(GPIOD,GPIO_PIN_6,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 HAL_GPIO_ConfigPinAttributes(GPIOD,GPIO_PIN_12,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);
 /* GPIOH Non Secure Ports Clock Enable */
 __HAL_RCC_GPIOH_CLK_ENABLE();
 HAL_GPIO_ConfigPinAttributes(GPIOH,GPIO_PIN_9,GPIO_PIN_NSEC|GPIO_PIN_NPRIV);

Thank you.

Kaouthar

 

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.