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.

[参考译文] DP83640:PTPClockStepAdjustment()不调整1588时钟

Guru**** 2390755 points
Other Parts Discussed in Thread: TMS570LS3137, DP83640

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1034605/dp83640-ptpclockstepadjustment-doesnt-adjust-the-1588-clock

器件型号:DP83640
主题中讨论的其他器件:TMS570LS3137

我需要相位对齐主时钟。  

当我根据 AN-1729应用手册进行计算时、我得到一个值并调用此函数。

PTPClockStepAdjustment (&pObj、0、Abs (校正)、false);

为了检查此函数是否起作用、我再次执行相同的操作、但校正值接近于第一个函数。 所以我不能调整时钟。

此外、在同步算法之后、我会得到一个调整值、但仍然无法使用此函数调整时钟。

我通过 TMS570LS3137的 MDIO 寄存器检查了该寄存器、因此我确认可以正确写入数据。

但是、在调整时钟时设置 PTP_CTL 寄存器的 PTP_STEP_CLK 位后、即使数据表显示该位是 SC、PTP_STEP_CLK 本身也不会自清零。

我应该遵循哪些步骤来解决此问题?

提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  

    请参阅以下链接中的文档和代码,这些文档和代码应该有所帮助。

    https://www.ti.com/tool/DP83640SW-LIB

    此致、

    Sreenivasa

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,再次

    是的、我也关注该文档。 我想、在我计算和执行阶跃调整后第二次计算相位差时、我不应该得到准确的值(由于10MHz 时钟输出、该值变为0-100)。

    在执行这些步骤时,PSF 也被禁用。 那么、什么会导致这种情况呢?

    任何帮助都很好。

    提前感谢、

    Furkan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Furkan、  

    请您详细说明 您所面临的问题。 这是您的定制板吗?  ID 可能写入一个简单的草图。

    请提供有关 您所使用驱动程序的更多详细信息。

    此致、

    Sreenivasa

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用的是 TMS570LS3137HDK。 我的主要目标是使该板的相位对齐并与板载 DP83640芯片同步2。

    我使用 EPL 库访问 PHY 的寄存器。 我可以使用 CLK_OUT 引脚获得10MHz 时钟输出、以便库正常工作。  

    此外、我还为 PHY 创建了一些 UDP PTP 头(仅用于同步消息)以进行时间戳并使用 lwIP 发送它。 我可以在从板中获取 DELAY_RESP 消息并计算时钟调整值。 我还可以在 PC 的 Wireshark 中看到标记为 PTPV2的消息。 但是当我调用  PTPClockStepAdjustment 函数时、我假设时钟不会改变、因为我看不到示波器发生变化。

    我还注意到 PTP_STEP_CLK 位在该函数中无法自行清除。 数据表显示、读取该位将返回0、但我可以看到1。 我附加了一张图片来展示这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、 Furkan、  

    感谢您的参与。

    让我回顾一下这些意见、下周早些时候再次向您介绍。

    此致、

    Sreenivasa

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    当我将时钟源更改为 PGM 时、问题就会得到解决。 我可以更改 PTP 时钟并进行确认。

    我的系统就像这样。

    1 -从机和主机 PTP 都被启用并提供10MHz 的时钟输出

    2-主器件发送带有时间戳1 (T1)的同步消息

    3-从机保存时间戳1、receiveTime (T3)

    4-从机发送 DELAY_REQ 并保存 sentTime (T3)

    5-主设备发送带有时间戳4 (T4)的 DELAY_RESP

    执行计算获取差值(T5)并调用和偏移 PTP 时钟。

    但我在示波器屏幕上看不到任何变化。(我从他们的 CLK_OUTPUT 引脚获取输入)

    我正在尝试使用 PTPGetReceiveTimestamp()获取主站的时间戳。 它是否正确、或者我是否必须创建 UDP 解析器才能获取时间戳?

    提前感谢、

    Furkan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您 好、 Furkan、  

    感谢您的参与。

    您是否了解过使用 PHY 状态帧?

    此致、

    Sreenivasa

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、很抱歉由于周末的原因回复较晚。

    我对 UDP 使用 lwIP 原始 API。 当我接收到 UDP 数据(例如同步消息)时、我将该数据放入 isPhyStatusFrame 函数中、如果是、我会调用  GetNextPhyMessage 来查看传入消息。 有时我会将 PHYMSG_STATUS_TX 作为 MessageType 获取、但在检查我收到的 PTP 消息(SYNC 或 DELAY_RESP)时、我没有得到合理的值。

    因此、我不知道如何实现这些功能。

    此致、

    Furkan

     

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我有一个开关来确认消息是否正确发送、我意识到了这些消息。

    dResp is 54byte PTP Delay_Resp struct
    MsgDelayResp is 54 byte PTP Delay_Resp struct
    MsgSync is 44 byte PTP Sync message struct
    ptpHeader is 34 byte PTP Header struct

    设置 DR_INSERT 并随其发送  

    udp_dRespSend(&dResp, multicast_ip, port_319 ,sizeof(MsgDelayResp));

    未设置 DR_INSERT 并与之一起发送  

    udp_dRespSend(&dResp, multicast_ip, port_319 ,sizeof(MsgDelayResp));

    请注意:我只能根据消息类型更改 PTP 标题

    未设置 DR_INSERT 并与之一起发送  

    udp_HeaderSend(&ptpHeader, multicast_ip, port_319,sizeof(MsgDelayResp));

    设置 DR_INSERT 并随其发送  

    udp_HeaderSend(ptpheader, multicast_ip, port_319,sizeof(MsgDelayResp));

    如何配置 phy 以正确设置时间戳 DELAY_Resp 消息

    我发送类似这样的 SYNC 和 DELAY_REQ 消息、它们正常工作  

    udp_HeaderSend(&ptpHeader, multicast_ip, port_319, sizeof(MsgSync));

    但是、当涉及 delay_resp 时、它会像上图那样为我提供该输出

    我的截止日期很短、因此我解决这个问题很重要。

    提前感谢

    Furkan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Kallikuppa、

    项目的截止日期即将结束、因此、如果可能、您可以帮助我快速解决问题吗?

    此致、

    Furkan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Furkan、  

    我已咨询  TMS570LS3137HDK 团队来提供所需的支持。

    此致、

    Sreenivasa

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否已解决问题?  老实说,我不熟悉1588号议定书。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我可以使用硬件时间戳 RN、但在调整 差异的同时、我计算偏移量大约为0.5秒、这是因为我无法执行同步过程。 我的执行逻辑在我的评论中。 因此、项目会挂起一段时间。