Other Parts Discussed in Thread: SK-AM64B
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] 初始化后就一直未曾被修改。
这个问题对我们很重要,请务必确认、回复,谢谢!