我正在尝试获取PTP
时间戳STM32H743 Nucleo
。LwIP
到目前为止,以太网驱动程序没有问题,除了PTP
. IEEE 1588 timestamping
我遵循了参考手册 ( ) 上的说明 ( 58.9.7 Programming Guidelines for ) RM0433
,如下所示。
CLEAR_BIT(heth->Instance->MACIER, ETH_MACIER_TSIE);
SET_BIT(heth->Instance->MACTSCR, ETH_MACTSCR_TSENA);
WRITE_REG(heth->Instance->MACSSIR, 20);
WRITE_REG(heth->Instance->MACTSAR, 894784853); // 2^63 / 20 / 480M
SET_BIT(heth->Instance->MACTSCR, ETH_MACTSCR_TSADDREG);
while(READ_BIT(heth->Instance->MACTSCR, ETH_MACTSCR_TSADDREG));
SET_BIT(heth->Instance->MACTSCR, ETH_MACTSCR_TSCFUPDT);
WRITE_REG(heth->Instance->MACSTSUR, 0x01);
WRITE_REG(heth->Instance->MACSTNUR, 0x02);
SET_BIT(heth->Instance->MACTSCR, ETH_MACTSCR_TSINIT); // If one-step timestamping is required follow reference manual
// TODO: configure pps
但是,系统时间秒数寄存器 ( ETH_MACSTSR
) 不计数,只是将初始值加载到系统时间秒数更新寄存器 ( ETH_MACSTSUR
) 中。在参考手册中没有关于时钟源的明确信息PTP
。在中,时钟配置页面中有如下图所示STM32F7
的时钟路径。PTP
CubeMX
但是,如下图所示, PTP
in没有时钟路径。STM32H7
我是否遗漏了一些关于从寄存器中获取系统时间的ETH_MACSTSR
信息ETH_MACSTNR
?