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.

[参考译文] DP83848Q-Q1:替换 TLK110 后、使用 DP83848Q-Q1 进行 ET1100 - EtherCAT 问题

Guru**** 2842970 points

Other Parts Discussed in Thread: TLK110, DP83848Q-Q1

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1585615/dp83848q-q1-et1100-with-dp83848q-q1-after-replacing-tlk110---ethercat-problems

器件型号: DP83848Q-Q1
主题中讨论的其他器件: TLK110

您好:

由于器件淘汰、我们已在现有设计中将以太网 PHY TLK110 替换为 DP83848Q-Q1、并且 EtherCAT 通信存在问题、我们目前正在进行故障排除。

我们还更换了应用中的处理器 (MPC5534MVZ80 -> SPC564A80B4CFA)、并使用了新处理器但仍使用旧的 PHY TLK110 进行了测试、其中未发生 EtherCAT 问题、因此我们得出结论:问题是由 PHY 引起的。

我们的设计具有 3 个以太网端口、PCB 用于有关 ET1100 通信的两种配置、这两种配置通过焊接桥和两种不同的软件配置(闪存内容)进行区分。 有关 ET1100 <->处理器通信的两种配置是:

  • 3 个带 SPI 接口的以太网
  • 2 个具有 MC 接口的以太网

由于这两个版本、第三个 PHY 通过总线开关连接到 ET1100、并且在 2x 以太网版本中断开了 MII 连接。

这种情况在某种程度上被 PCB 的上电所锁 — 如果 PCB “决定“不在上电时工作、没有任何帮助(例如重新启动 EtherCAT 主站)、但对 PCB 进行(或更多)下电上电、这可能会导致工作行为。

在更换 PHY 之前、我们没有遇到此类问题、而且我们确实使用了 1 个以太网的设计、其中相同的“新“PHY 在 ET1100/EtherCAT 通信方面不会带来任何问题。  

已经采取的措施:

  • 对 ET1100 使用 PHY 地址偏移 16、并将 PHY 地址设置为 16、17、18
  • 由于我们在新 PHY 上面临不同的时序 (25MHz 来自连接了晶体的 ET1100)、因此将 ET1100 上的 TX 延迟设置为 20ns
  • 按照 ET1100 PHY 选择指南中的建议、在 PHY X1 时钟输入处添加了下拉 2K2
  • 将处理器复位时间延长至 3 秒 — ET1100 将执行其自身的上电复位并直接连接到所有 3 个 PHY(--> PHY 和 ET1100 将比我们的处理器更早退出复位状态)。 我们认为这改善了局势、但我们仍然没有解决这个问题
    • -->由 ET1100 直接无任何延迟地重置 PHY
  • 已在 ET1100 配置中激活增强型链路检测

阅读数据表、PHY 选择指南等后 我想出了流行语:

  • PHY X1 上的稳定输入时钟的时间 xxx 以及如何保持该时间
  • 延长 PHY 和/或 ET1100 的延迟时间可能会有所帮助吗?
  • 在 PHY 地址偏移为 16 时、增强型链路检测可能会出现问题?

由于我们的想法已过时、我恳请您审查我们的设计、并希望能指出我们似乎忽视的设计错误。

我想分享我们的设计文件(原理图和布局)、但不能公开分享。

此致

Patrick

 

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

    尊敬的 Patrick:  

    请接受我的友谊请求。 您可以将原理图/布局私信给我进行审查。  
    您面临的具体问题是什么? 是链路问题、还是 EtherCAT 通信期间出现数据包丢失? 是 PHY 上电问题吗?
    我们没有听到 PHY 寻址导致的任何问题。  
    您能否验证 PHY 复位时序是否遵循下图?


    此外、我们建议 PHY 在理想情况下上电之前具有稳定的 XI 时钟。 否则、可能需要进行第二次复位。 您是否尝试过在 PHY 完全打开后复位 PHY?


    最后、如果您能为我们提供一个 ET1100 和 PHY 之间连接的简单方框图、这将非常有助于理解您的问题。  

    请告诉我。  

    此致、
    j

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

    尊敬的 J:

    感谢您的回答。 我将通过 PM 发送文件、但希望我们能在这个“公共场所“解决问题。

    对于您的问题(链路问题,丢失的数据包等) 不幸的是、我还没有准备好回答、因为我处理软件部件的同事尚未进行详细调查、我是“唯一的硬件人员“。 我们正在处理此问题、我将 尽快提供同事结果的最新信息。

    请查看随附的方框图、我希望我不会错过任何详细信息。

    e2e.ti.com/.../BLOCK_5F00_DIAGRAM_5F00_ET1100_5F00_PHY_5F00_2025_2D00_11_2D00_11_5F00_UPLOAD.pdf

    现在、我将使用示波器研究 X1 时钟时序与电源电压以及硬件复位信号。

    需要我理解的一个问题 — 如果我们在启动时遇到 X1 时钟不稳定的问题:

    -如果我们在 ET1100 和 PHY 之间放置一个复位控制器(而不是 0 欧姆电阻器)、使 PHY 的复位输入保持低电平的时间更长、是否可以解决问题

    我们是否需要一个实际的“第二个复位脉冲“?

    PHY 和 ET1100 通过相同的 3、3V 电源轨供电,因此启动时的时钟可能不稳定 — ET1100 是时钟源。

    此致

    Patrick

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

    这里可以明显看出:由于 ET1100 和 PHY 共享相同的 3、3V 电源、PHY X1 的输入时钟在电源电压上升一段时间后(大约 90ms 后)开始振荡。

    下面是另一个屏幕截图、其中显示了 ET1100 发送到 PHY 的时钟 X1 与复位信号 — 复位在时钟开始振荡大约 80ms 后释放(由于人手不足,我一次只能执行 2 个信号):

    采取措施的方式是否正常?

    我们可以:

    -延长 PHY 或的复位持续时间

    -在这个程序之后触发另一个复位?

    第一个选项 对我们来说是更简单的方法。

    您是否对如何解决该问题有建议(原理图)?

    此致

    Patrick

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

    尊敬的 Patrick:  

    感谢您的详细答复。 那么、如果我正确理解了这一点、PHY 一段时间没有上电?  

    数据表指出、在器件上电之前、XI 时钟必须稳定至少 167ms。 这可能是 PHY 未正确启动的原因。  


    对于我们的较新器件、它可能具有类似的 POR 电路、已报告所有信号加载后的第二个复位脉冲可解决此问题。 遗憾的是、延长复位信号并不能解决该问题。  

    否则、PHY 将必须在 ET1100 上电后上电、并为 PHY 提供 XI 时钟。  

    您能尝试一下这些解决方案吗?

    此致、
    j

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

    尊敬的 J:

    是的、PHY 上电的延迟不会有些延迟、我们为其提供与 ET1100 相同的 3、3V 电源轨、遗憾的是、布局中没有 0 欧姆电阻器等 、因此我们可以调整该值、例如使用稍后出现的第二个稳压器。

    到目前为止、我们唯一的选择是进行重置。  出于测试目的、我们将包含一个带手动复位按钮的复位控制器 (TPS3808G33DBVR)、可能会发现一些处理器 GPIO 可能会针对我们的原型自动执行该操作。

    我会随时更新您的信息。

    此致

    Patrick

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

    尊敬的 Patrick:  

    请让我了解最新信息。  

    此致、
    j

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

    尊敬的 J:

    我在 SW 部门的同事病假、因此我们无法继续。

    我们成功 地安装了复位控制器、该控制器在我们的处理器初始化序列之后立即获得其触发信号。 除了由 ET1100 启动的初始复位外、我们还将同时复位 ET1100 和 PHY。

    发送到 ET1100 和 PHY 的复位脉冲持续约 6ms、这会在上电后约 4、4 秒内被触发(电源电压为 3、3V 时为上升沿)。

    我包括 2 个示波器屏幕截图。

    额外复位不会带来任何改进。

    此外、我们发现问题与第三个端口直接相关、第三个端口是通过总线开关路由 MII 的端口。  我们使用 6 个原型进行了测试设置、我的同事使用了低级工具来读取 EtherCAT 从站信息、计数器值等、只要我们仅使用第一个和第二个端口、就没有问题。

    一旦我们使用第三个端口,在某个地方建立原型之间的连接,我们有两个症状:

    1.(> 95%的情况):整个通信开始失败、低级工具不再能够检测任何从设备。

    2.第三个端口有点“失效“- 其链路 LED 指示灯未亮起,且通过该故障端口连接的设备无法到达,其余的工作正常。

    因此、似乎不是 由 PHY 直接引起的、而是由我们的“第三端口情况“中的连接引起的。

    你有什么想法吗?

    -通过总线开关的传播延迟是否会导致故障?

    -我们可能有布局问题吗?

    -..

    此致

    Patrick

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

    尊敬的 Patrick:  

    不幸的是、第二次重置没有解决这个问题。  

    感谢您提供有关第三个端口的更多信息。  

    那么、所有六个原型都显示出与第三个端口相同的问题?  

    -通过总线交换机的传播延迟是否会导致问题?

    这应该不是链路 LED 亮起的问题。 链路 LED 指示 MDI 侧存在有效链路、无论其与 MAC 的连接如何。 但是、通信可能仍然无法正常工作。  

    如果通信失败、PHY 上是否存在链路? 如果是、寄存器的读数是 14h 和 15h? 该寄存器保存 MDI 侧 PHY 虚假载波检测和接收错误计数的数据。 它将跟踪任何符号错误。  


    我看了一下布局、布局肯定不是最佳布局。 但是、我怀疑这会导致其他端口上的链路故障(除非存在接地短路)、但我怀疑情况如此、因为所有三个端口都具有相同的布局。  

    如果可能、您能否通过探测第三个端口上的变压器来测量第三个端口上的 MDI 信号? 我想看看是否有任何链路脉冲、或者是否有链路、是否发送了任何标准信号。 这样、我们就可以排除端口上是否存在连接问题。  

    请告诉我。  

    此致、

    j

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

    尊敬的 J:

    请原谅您的延迟。

    我们对该问题进行了一些进一步调查、使我们从调查 MDI 信号后退了一步:

    我的 SW 同事创建了一个调试例程、用于读取并显示 ET1100 的一些寄存器(从处理器端)、其中一个是地址 0x0E00/0x0E00 处的 POR(上电寄存器) 、其中 ET1100 的读取 strap 配置存储在此处。

    经过一些下电上电后、我们发现 ET1100 的搭接配置在某些情况下会出错、尤其是在 PCB 很冷的情况下。 在某些情况下、PHY Strap 配置也会出错。 以下是一些我所关注的信号(不是一个可能出错的完整列表-我确信可能会影响更多的信号):

    ET1100 搭接引脚 PHY 信号 注释
    C25_ENA PHY0_TX (0) 通过读取 ET1100 POR 进行检查
    C25_SH[1] PHY0_TX (3) 通过读取 ET1100 POR 进行检查
    C25_SH[0] PHY0_TX (2) 通过读取 ET1100 POR 进行检查
    PHY0_AN0/LED_LINK 检查参数
    无 — 未连接到 ET1100 CRS/CRS_DV/LED_CFG

    检查参数

    导致未连接网络时链路指示灯闪烁

    我得出的结论是、PHY 确实(例如,TX 信号应该是 PHY 上的输入)在上电后、在 25MHz 存在之前被驱动至某种(随机)状态。  

    这是因为我们违反了 T2.1.1/T2.1.2 注释中隐藏的“上电时时钟 X1 必须稳定在 167ms 以上“规则。

    我们将包含一个额外的晶体振荡器、该振荡器在 PHY 和 ET1100 之前就已通电、以便保持 167ms X1 时钟标准并进行进一步调查。

    长说 — DP83848 需要 X1 时钟电源的电源时序。

    下面是我们方法的简图 — 您对此有任何顾虑吗?

    我们希望避免 PHY 的延迟上电、因为:

    -我们在原型上没有这样做的巧妙的选择,因为 PHY 在供电线路缺少 0 欧姆电阻器

    -我们担心 PHY 在未通电状态下的行为也会以更无证的方式影响 ET1100 捆扎

    此致

    Patrick

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

    尊敬的 Patrick:

    美国办事处因感恩节而关闭。 下次再来星期一 Dallas 时、我会回顾一下并联系您。

    此致、

    j

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

    尊敬的 J:

    好了,祝你感恩节快乐!

    此外、我想补充一些我提出的想法。

    使用自身的晶体连接到 X1、X2:

    如果我们将 PHY 与自己的晶体一起使用 X1 在上电前稳定 167ms  无法维持标准、因为晶体将在 PHY 上电后立即开始振荡。

    问题:

    我是否误解了 T2.1.1 和 T2.1.2 的评论中所说的话? 在为 PHY 供电之前、我确实需要提供 167ms 的时钟(未上电的器件应该如何处理?)吗?

    或者、这是否意味着“上电时必须有稳定的时钟可用“、167ms 只是两个时序 T2.1.1 和 T2.1.2 的复制粘贴值?

    我很难理解这个问题、而当 PHY 有自己的晶体、并且我 “拒绝“相信、时钟供电的电源时序确实是必不可少的。

    我们使用另一个 EtherCAT-PCB 进行了测试、从中“窃取“ 3、3V CMOS 25MHz 时钟信号。

    手动进行电源时序控制(打开时钟源->打开原型)时、我们的 PCB 拒绝显示先前的错误、只需查看配置 (strap) 配置(为正)即可。 不过:通过将这个外部时钟连接到未供电的 PCB、我们的 3V 电压轨已经上升到大约 500-600mV、具体如下所示:

    -告诉我,我们可能会使时钟源过载,因为它似乎是寄生供电的整个 3,3V 轨

    -我担心 会导致副作用,如复位行为问题与我们的 PCB 上的其他 IC。

    结论

    我们真的不希望遵循 我之前介绍的电源时序路径。

     如果我们放置了一个与 PHY 和 ET1100 提供相同 3V 电源的晶体振荡器、您能否检查它是否合适? 我们发现稳定时间为 5ms。

    这将是 我们的“最干净“和微创解决方案。

    我绘制了 所述案例中的通电情况示意图。

    - PHY 可以在加电 5 毫秒时以“尚不稳定“的时钟运行吗? (应类似于 PHY 有自己的晶体时的情况)

    -在 ET1100 读取 Strap 配置时, PHY 输入是否会初始化为高阻抗状态(输入不得被驱动 — 通过电阻器外部上拉/下拉必须在这里工作) ? (根据我在示波器上看到的,它看起来像 X1 时钟的第一个,也许第二个上升沿已经在执行操作了)

    此致

    Patrick

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

    尊敬的 Patrick:  

    很抱歉耽误你的时间。  

    我理解这里的问题。 遗憾的是、DP83848 是一款非常旧的器件、因此目前对该器件的支持仅限于现有文档。 因此、我无法验证 T2.1.1 和 T2.1.2 是否相互复制、或者是否是为覆盖 PHY 中的某些极端情况而放置的任意数字。  

    我同意、具有较短稳定时间的时钟肯定会有所帮助、同时使用 XI 和 XO 引脚(将使用 PHY 的反馈环路向 PHY 提供 clk 信号)的晶体可能会以 167ms 的要求消失、因为由于反馈环路的性质、时钟只有在 PHY 导通后才会稳定。  


    -在 ET1100 读取 Strap 配置时、PHY 输入是否会初始化为高阻抗状态(不得驱动输入 — 通过电阻器外部上拉/下拉必须在此处起作用) ? (从我在示波器上看到的情况来看,它看起来像是 X1 时钟的第一个,也许第二个上升沿已经在发挥作用)

    在这种情况下、 如果 PHY 处于数据表第 3 节所述的复位模式、则 PHY 输入初始化为内部上拉/下拉状态:


    最后、如果可行、我们建议改用我们的新款器件、如 DP83826A、这种器件在我们看来得到更好的支持  

    此致、
    j

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

    尊敬的 Patrick:

    是否有任何更新?

    此致、

    j

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

    经过很长一段时间我没有回应, J 是如此善良,再次解锁线程,所以我可以写一个结论的结果。

    我们能够使用晶体振荡器返修我们的原型、这解决了我们的问题。 非常感谢您的支持! 我们所面临的问题实际上是由使用 ET1100 的 CLK25OUT/CLK25OUT2 引脚作为 PHY 的时钟源引起的、再加上 PHY 的(对我来说有点„奇怪)“I/O 行为。

    发生了什么事呢?

    PHY 和 ET1100 都使用在上电时锁存的搭接选项:

    ET1100 开始直接提供时钟信号 ( 80ns ) 之后  它的捆扎。

    到目前为止,那么好–直到这里,一切似乎是合乎逻辑的,应该工作,但:

    PHY 数据表中没有明确指出的是、PHY 的 I/O、包括用于 Strap 配置的引脚(上电期间具有一些„Ω 随机“状态)、根据我的测量结果可以看出引脚(甚至是 PHY 的输入!!!) 具有类似具有随机逻辑电平的输出、直到 X1 时钟存在并且复位输入对此没有影响(预期的行为应该是:  I/O 上的 RESET 有效->高阻态)。 这会影响端口 0、1 和 2 MII 接口上的 ET1100 搭接选项、以及 PHY 自身的搭接引脚(不可再生)。 这会导致电路在上电时锁存到某种错误状态。 与 ET1100 结合使用 时、甚至会导致这样的情况:PHY 甚至在 X1 处没有与 25MHz 一起提供、因为它已覆盖 ET1100 的搭接引脚 (C25_ENA、与 TX_D (0)[0]共享)、从而启用时钟输出。

    如何解决/避免?

    当 ET1100 与 DP83848 结合使用时、 请勿将 ET1100 用作 PHY 的时钟源 使用晶体振荡器 而作为共享时钟源、该时钟与 ET1100 和 PHY 一起上电、以便在 Strap 配置开始之前提供时钟。

    a. 都可以实现电源时序控制 -正如我之前所写的 — 是 不需要 并且 实际上没有意义(通过 I/O 线的寄生电源等)

    这将在 ET1100 旁边也适用于加电后不开始振荡的所有其他时钟源。

    我通读了其他一些 TI PHY 的数据表(例如 J 推荐的 DP83826A)、因此在我看来、它们都有这一要求。 我的建议是:

    当上电时序中提到 X1 时钟时、请将晶体振荡器用于时钟电源(例如,TLK110 没有提到,我们之前使用的没有问题)

    我在时钟供应上附加了一张草图、因为我们已经完成了(以及如何不这样做)。

    此致

    Patrick