This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM64X: CPSW/CPTS GENF产生PPS,但PPS起点一直在偏移,请问如何调整使之稳定

Part Number: PROCESSOR-SDK-AM64X

SDK:mcu_plus_sdk_am64x_08_06_00_45

CCS:12.3

功能移植于 C:\ti\mcu_plus_sdk_am64x_08_06_00_45\examples\networking\enet_layer2_multi_channel

开发板:SK-AM64B 

希望通过网络中的标准时钟源,基于PTP Layer2,实现多台设备之间的时间同步以及采样同步。

目前已借助CPSW中的CPTS GEN功能产生了PPS脉冲,并通过TIMSESYNC Router输出到GPIO上,用示波器进行测量。但是发现PPS的起始位置(脉冲上升沿)一直移动。

PPS路径:CPSW(CPTS)->GENF0->TIMESYNC-ROUTER21->GPIO

GENF disable PPM

按照TRM中这里描述的,我的理解是当TIME_STAMP[63-0] = CPTS_GENFn_COMP[63-0]时,就会产生脉冲,脉冲的周期只与CPTS_GENFn_LENGTH[31-0]有关,即

1)PPS产生的其实时间时TIME_STAMP[63-0] = CPTS_GENFn_COMP[63-0]时,一旦产生了后续就自动持续产生PPS,与TIME_STAMP[63-0] 的值就无关了

2)PPS的周期之与CPTS_GENFn_LENGTH[31-0]有关,只要CPTS_GENFn_LENGTH[31-0]值不被修改,PPS的起始时间(上升沿)应该一直不变

3)CPTS会和网络时间持续同步,导致TIME_STAMP[63-0]的值一致被调整,但是CPTS_GENFn_LENGTH[31-0]是计数CPTS_REF_CLK,所以产生的PPS 频率和周期不受TIME_STAMP[63-0]的值影响

请问我的理解正确吗?

如果理解正确,那么问题来了。

一开始,两块SK发出的PPS脉冲上升沿基本一致,无偏差,持续运行后,肉眼可见,两块SK产生的PPS脉冲上升沿在示波器上有了显著的偏差。感觉上,CPTS_REF_CLK的似乎被动态调整了,因为CPTS_GENFn_LENGTH[31-0] 初始化后就一直未曾被修改。

这个问题对我们很重要,请务必确认、回复,谢谢!