Skip to main content
Associate
August 31, 2026
Question

STM32H5 PTP | Clock does not run & no PPS output

Hi there,

 

I am trying to to set up IEEE 1588 PTP time synchronisation with the Netx Duo IP-Stack. I want to port the STM32N6 example (https://github.com/STMicroelectronics/STM32CubeN6/tree/main/Projects/NUCLEO-N657X0-Q/Applications/NetXDuo/Nx_PTP_Client) to my STM32H563 / Nucleo-H563ZI.

To my understanding, the H5 Series support PTP and should be able to run the example. The programm runs and prints out the MAC-clock, but the time does not increment and stays always on the same value of 0 seconds and 0 nanoseconds.

I also tried to examine the PPS Signal on PG8 with an oscilloscope but as there is no running MAC clock, I get no PPS Signal.

To fix this issue I tried different clock increments, thread-priorities. My guess is that the PTP clock in the MAC and the PPS output have to be activated seperately, but I wonder how?

 

Thanks

1 reply

ST Employee
October 13, 2026

Hello,

Thank you for your report.

The timestamp unit is clocked by a dedicated RCC clock (ETHPTP) that you can configure it separately from the MAC/TX/RX clocks  via HAL_RCCEx_PeriphCLKConfig(). If it is not selected/enabled, the timestamp counter does not advance and no PPS is produced. Note also that the identifier differs between the two families (N6: RCC_PERIPHCLK_ETH1PTP, H5: RCC_PERIPHCLK_ETHPTP).

For reference, the STM32CubeH5 Ethernet examples configure it in HAL_ETH_MspInit():

RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};

PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_ETHPTP;
PeriphClkInitStruct.EthptpClockSelection = RCC_ETHPTPCLKSOURCE_HCLK;
PeriphClkInitStruct.EthptpClockDivider = RCC_ETHPTP_CLK_DIV_1;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}

With Regards,

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