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.

[参考译文] DP83826E:DP83826E EtherCAT 不能与 F28P650DK9NMR 配合使用

Guru**** 1797760 points
Other Parts Discussed in Thread: C2000WARE, DP83826E
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1395786/dp83826e-dp83826e-ethercat-does-not-work-with-f28p650dk9nmr

器件型号:DP83826E
主题中讨论的其他器件:C2000WARE

工具与软件:

大家好!

我们有一个基于 Launchpad F28P65的设计。 我们基本上复制了电路板的原理图、但无法使 EtherCAT 通信正常工作。 唯一的区别是使用分立式磁性元件、但这适用于之前的 EtherCAT 设计(使用 DP83822IRHBR PHY 和 LAN9254 Microchip)、因此我认为这不是问题。

尝试f28p65x_cpu1_pdi_hal_test_app从 C2000Ware_5_02_00_00中使用时、当我们尝试在闪存中编译时、我会收到错误消息:"Target is TMS320F28P650DK9.ccxml、并且报告了上述错误。 "找不到 CPU CPU1_CLA1的驱动程序。" 我从此处添加了配置文件:

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1325578/launchxl-f28p65x-cannot-find-a-driver-for-cpu-cpu1_cla1

构建良好。 我添加了#define _LAUNCHXL_F28P65Xdevice.h、以按照与 LaunchPad 相同的方式设置 GPIO。

刷写 CPU、然后在调试模式下进入、ESC_EEPROM_LOAD_ERROR红色 LED 错误亮起

我们能够读取 ESC 寄存器:

我们知道 DP83826ERHBR 存在很多问题、因此我还在这里尝试了软件补丁
https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1325322/faq-launchxl-f28p65x-how-do-i-fix-the-ethercat-issue-where-the-launchpad-cannot-be-scanned-in-twincat

使用软件补丁:

内置闪存、然后在调试模式下、我可以看到 RX_MsgBuffer 仅将所需的最小字节加载到 EEPROM 中。

然后、我刷写代码 ethercat_slave_cpu1_hal_phy_check.c、在调试模式下、它也会卡在 esc_eeprom_load_error 中、而红色 LED 错误会亮起

        return(ESC_EEPROM_LOAD_ERROR);

 

上电时、未连接 RJ45电缆、两个 LED (P0链路状态和链路活动)亮起。 当我们连接 RJ45时、LED (P0 Link Status 和 Link Active)熄灭、表示检测到某些东西、但我看不到任何从器件。

我们的 PHY 上的标记是"826E TI 198 ALSF G4"、我们看到了文章、其中器件具有完全相同的标记存在问题:
https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1303041/dp83826e-possibly-broken-parts-from-supplier

如果我们进行探测:

  • 引脚21 PWRDN 位于3V3
  • 引脚32 RST_N 位于3V3
  • 引脚31 CLKOUT/LED 为0V
  • 引脚19 RX_CLK 显示了一个漂亮的50MHz
  • 引脚9 XIN 显示25MHz
  • 引脚10的 RBIAS 电压为0V

最后要提到的一点:电路板最初采用的是40MHz 晶体、而不是25MHz。 我们稍后移除了40MHz 晶体、并用25MHz 晶体替换它。 我不认为这可能会损坏 PHY、但我想提一下。

我们是有点想法。 如有任何帮助、将不胜感激。

附件是我们的 schematics.e2e.ti.com/.../1565.SCH.PDF

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

    您好!

    感谢您分享这些信息

    • 可能会问、链路伙伴是否也是 DP83822?
    • 我可以问、您是否能够看到链接?
    • 如果可能、您能否在 DP83822上共享寄存器0x0000至0x001F?
    • 如果可能、您能否尝试移除 ESD 二极管、看看这是否有助于解决问题?

    ——

    此致、

    Hillman Lin

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

    你好、Hilman、谢谢你的支持。

    • 可能会问、链路伙伴是否也是 DP83822?
      我们使用的是 DP83826E 而不是 DP83822、我们将从站连接到计算机并使用 TwinCAT
    • 我可以问、您是否能够看到链接?
      不确定应该遵循、在什么之间建立联系?
    • 如果可能、您能否在 DP83822上共享寄存器0x0000至0x001F?
      DP83826E 而不是 DP83822、这里是寄存器:
    • 如果可能、您能否尝试移除 ESD 二极管、看看这是否有助于解决问题?
      我可以、但它会如何影响 PHY?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我删除了 ESD、没有改变任何内容

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

    您好!

    很抱歉混淆、感谢您指出它。 我将根据 DP83826调试该用例。

    我想问一下、您提供的寄存器转储是否是 DP83826两者相互连接的情况?

    ESD 二极管有时会降低 MDI 线路上的信号。 我只是想确认 ESD 二极管是否产生了任何影响。

    ——

    此致、

    Hillman Lin

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

    条件是:仅端口0使用 RJ45电缆连接到笔记本电脑、而端口1未连接。

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

    您好!

    您正在读取的寄存器基于端口0、对吧?

    ——

    此致、

    Hillman Lin

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

    这是 phy_regs_0、因此我很确定它是端口0?

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

    您好!

    我将与团队讨论寄存器转储问题、并在稍后为您提供响应

    ——

    此致、

    Hillman Lin

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

    您好!

    我们会与团队仔细核实。  以下是一些进一步的调试测试:

    • 尝试在 PHY 上电后对电路板执行复位。 查看此操作是否解决了问题。
    • 移除2.2uF CEXT 电容器
    • 读取寄存器0x0467和0x0468来查看 PHY 是否配置正确。
    • 如果可能、您能否使用 RJ45将两个 DP83826连接在一起、看看您是否能够看到链路接通?

    ——

    此致、

    Hillman Lin

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

    你(们)好、Hilman。

    • 尝试在 PHY 上电后对电路板执行复位。 查看此操作是否解决了问题。
      我按下 电路板上的复位按钮、在 PHY 上电后复位 F28、没有任何变化
    • 移除2.2uF CEXT 电容器
      移除了电容器、仍然保持不变
    • 如果可能、您能否使用 RJ45将两个 DP83826连接在一起、看看您是否能够看到链路接通?
      我确实将它们插入了一起、如果我使它闪烁、则两个端口上的两个 LED 会熄灭。
      如果我尝试调试、它会卡在里面并返回 ESC_HW_INIT_FAIL
          //
          // Wait for ESCSS memory initialization to complete
          //
      
      
          if(ESCSS_getMemoryInitDoneStatusBlocking(ESC_SS_BASE, memoryTimeOut) !=
             ESCSS_API_SUCCESS)
          {
              return(ESC_HW_INIT_FAIL);
          }
      

      然后、红色 LED 点亮。
      这里是 PHY0和 PHY 1的两个寄存器

      不确定为什么我们未进行调试时、红色 LED 熄灭、这意味着 ESC_HW_init 正常
    • 读取寄存器0x0467和0x0468来查看 PHY 是否配置正确。
      我试图添加一个全局变量  uint16_t readWordDebug =0;然后使用 ESC_readWord 及该地址、但该值始终为0:
       
          while(1)
          {
              ESC_debugUpdateESCRegLogs();
              DEVICE_DELAY_US((uint32_t)(50000));
              readWordDebug = ESC_readWord(0x0467);
              DEVICE_DELAY_US((uint32_t)(50000));
              readWordDebug = ESC_readWord(0x0468);
              DEVICE_DELAY_US((uint32_t)(50000));
          }
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    很遗憾、我不是软件专家。 我不确定 ESC_HW_init 的功能是什么。 我将仅从硬件的角度介绍或 PHY

    • 以防止在启动过程中写入任何寄存器。 您是否能够断开 MDIO 和 MDC 之间的连接并查看 PHY 是否能够建立链路?
    • 您是否能够只给 PHY 通电、而不给 SoC 通电、看看您是否能够看到链路接通

    这可以让我们了解 PHY 与 PHY 之间或 MAC 与 PHY 之间的问题。

    • 如果您可以在上述两项测试后看到链路接通、我会在稍后尝试回送模式。

    ——

    谢谢!

    Hillman Lin

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

    你好、Hilman、很抱歉耽误你的时间。

    • 以防止在启动过程中写入任何寄存器。 您是否能够断开 MDIO 和 MDC 之间的连接并查看 PHY 是否能够建立链路?

      遗憾的是、我们的设计是超级密集的、我们无法真正移除 MCU 和 MDC 或 MDIO 之间的连接:

    • 您是否能够只给 PHY 通电、而不给 SoC 通电、看看您是否能够看到链路接通
      您能说明一下连接意味着什么吗? 我们是否刚刚讨论了指示链路状态的黄色 LED 指示灯?

    在绝望中、我们更改了 DigiKey 的新 PHY。
    新器件型号为826E TI 298 AS8K G4。


    PHY 的行为现在有所不同:

    引脚 RBIAS 在之前为0V、现在为1V。

    我尝试了原始的 f28p65x_CPU1_PDI_HAL_TEST_APP

    未连接、LED 熄灭(链路状态和链路处于活动状态)
    如果我连接 RJ45、两个 LED 会闪烁、但我在 TwinCAT 上看不到任何从器件

    如果我尝试修改固件也是如此(首先写入 EEPROM、然后添加 f28p65x_cpu1_pdi_hal_test_app 和 ethercat_slave_cpu1_hal_phy_check 文件)

    ---------------------------------------------------------------------------------------------------------------------

    假设我们处于理想状态、使用可用的最新 PHY 版本、MCU 使用与 LaunchPad F28P65相同的引脚排列、我们应该能够从 C2000Ware 中运行 f28p65x_CPU1_PDI_HAL_TEST_APP。

    但 C2000示例甚至无法在 LAUNCHXL_FLASH 中编译:

    如果我们在闪存中构建、则会出现错误:Description   Resource   Path   Location   Type
    找不到 CPU CPU1_CLA1   TMS320F28P650DK9.ccxml   /f28p65x_CPU1_PDI_HAL_TEST_APP   的驱动程序德州仪器(TI) XDS110 USB 调试 Probe_0\CPU1_CLA1   问题

    因此、我们需要从以下位置获取文件:
    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1325578/launchxl-f28p65x-cannot-find-a-driver-for-cpu-cpu1_cla1

    然后、我们需要定义_LAUNCHXL_F28P65X 以正确设置引脚配置...

    目前整个过程确实令人沮丧、我们无法判断:

    • 我们出错了
    • 如果示例工程 f28p65x_cpu1_pdi_hal_test_app 实际工作了?

    此问题大大延迟了我们的产品开发。 事实上、更改同一电路板上的 PHY 会导致不同的行为、这让我们认为很难确定问题是硬件还是软件。 您是否能够让软件方面的人进入循环、准确地告诉我们要查看哪个寄存器、以便首先确定 PHY 的修订版本、然后确认我们是否需要权变措施固件来检测从站等?


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

    尊敬的 AI:

    您现在有用于新设置的寄存器转储吗? 如果可能、您是否能够不断地拉动寄存器0x0001来查看 PHY 是否具有稳定链路?  

    • 我要在您的新设置中确认 PHY 是否能够正确连接。
    • 您还可以提供从0x0000到0x001F 的寄存器日志吗
    • 同样、在您的当前设置中、您可以只给 PHY 加电、而不给 SoC 加电并查看 LED 的状态吗?

    遗憾的是、我对您当前使用的 CPU 闪存软件不太熟悉。 不要太确定您当前使用的是哪个 CPU 示例项目。 如果可能、您能否联系 C2000产品线以进一步了解有关该软件的详细信息

    ——
    此致、

    Hillman Lin

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

    你好、Hillman。

    借助新型 PHY:

    使用 RJ45将端口0连接到笔记本电脑、并且端口1保持打开状态:

    当端口0连接到端口1时:



    当 MCU 保持复位状态时、即使连接到笔记本电脑或端口0和端口1连接在一起、也不会有 LED 亮起。

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

    您好!

    感谢您分享这些信息。 通过寄存器写入、端口1和端口2似乎都无法 正确链接。

    PHY 似乎无法建立链路、这就是您无法通信的原因。 下面是我要尝试的以下步骤:

    • 移除 RESET 引脚上的下拉电阻器
    • 我还可以在 RJ45连接器上看到图片吗?

    MDI 长度也可能对信号质量产生影响并导致无法连接。

    ——

    此致、

    Hillman Lin

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

    你好、Hillman
    复位时、如果没有 PD 电阻器、我无法进行测试、我将尝试一下。

    这是 DUT:
    使用双绞线驱逐 RJ45。 这在其他设计中使用、没有问题。



    MDIO 和 MDC 的长度分别为47mm 和45mm、这两种情况下的布局非常受关注。

    PHY 与变压器相同、然后是连接器:




    所有信号都与接地平面相邻:

    1. 您能否告诉我、在我们连接 RJ45时、会通过什么方式使链路状态和活动 LED 闪烁?
    2. 如果我们参阅这篇文章、则会发现第一个 EEPROM 程序将仅将所需的最小字节加载到 EEPROM 中、以便随后可以对 F28P65x ESC 寄存器启用调试访问。 这样器件就可以对 PHY 进行读取和写入。
      我的问题:要为 PHY 正确设置链路、我们需要正确的固件? 如何确定目前安装的 PHY 的版本? 这是否可能我们在看硬件、但仅仅是固件没有正确设置 PHY 寄存器?
      e2e.ti.com/.../faq-launchxl-f28p65x-how-do-i-fix-the-ethercat-issue-where-the-launchpad-cannot-be-scanned-in-twincat
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    不稳定的链路将导致 RJ45中的链接。 布局不佳或每周的信号质量不佳也会导致链路不稳定。

    我看到变压器和连接器之间有一个单独的电路板。  我们通常不建议客户使用此拓扑、因为双绞线没有连续接地低于该值会导致电缆端接不稳定。 我可以问一下连接器和变压器之间的电缆端接吗? 它是100欧姆端接吗?

    如果可能、您是否可以尝试使用当前设置运行合规性测试、看看您是否能够通过?  

    您也可以尝试使用更短的电缆、看看这是否有助于提高信号质量。

    ——
    此致、

    Hillman Lin

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

    你好、Hillman、

    我又来听一个有趣的消息。

    我们从一个全新的电路板开始、刷入了演示示例固件、但没有链接。 然后、我们删除了原始 PHY 826E TI 198 ALSF G4、并使用 Digi-Key 826E TI 348 AHLD G4中的新 PHY 代替。

    现在、当我们插入 RJ45后、端口1可以正常工作(链路 LED 保持常亮、我看到 EtherCAT 上有一个从站)、但端口0不工作、LED 在闪烁

    我在另一个电路板上使用 TI 样片826E TI 2A8 AH8X G4中的新 PHY 重复完全相同的过程、得到相同的结果:端口1可以正常工作、但端口0无法建立链接。

    所以我的第一个结论是、TI 的826E TI 198 ALSF G4肯定有一些错误或不同的地方。

    现在、我尝试了解端口0为什么仍然无法正常工作。

    您能否再次仔细检查 EtherCAT 原理图?

    问题 :我试图缩小问题的范围。 当 PHY 无法连接时、可以在 RMII 侧、磁性/RJ45侧、还是两者都在?




    问题 如果我用 P-U/P-D 电阻器交换两个 PHY 地址,我应该能够与两个 PHY 通信,或者我需要额外的更改?

    我想进行的另一个测试是将 PHY 1连接到端口0的磁性元件、但这涉及到切割布线、因此我希望先让您的输入。


    谢谢你

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

    不确定它是否相关、但当端口1连接到 TwinCAT (RJ45插入)时、我会得到状态 OP LNK_MIS_LNK_ADD A B
    我想端口0设置正确了吗?!?

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

    尊敬的 AI:

    我再次仔细检查原理图。 除了 PHY ID 或 LED_0引脚的搭接之外、底部 PHY 和顶部 PHY 似乎具有相同的原理图。 我将重点介绍的主要内容是布局(在 RJ45连接器板和主板上)。 我们还可以执行以下三项操作:

    • 更改第一个 PHY 与第二个 PHY 之间的电缆(两对电缆之间的方向):
    • 在两个 PHY 之间更换磁体、然后查看结果是否发生变化
    • 更改两个 PHY 之间的 PHY ID 并观察两个 PHY 的行为。

    ——

    此致、

    Hillman Lin

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

    尊敬的 Hillman:

    当您说"在第一个 PHY 和第二个 PHY 之间更改电缆(两对电缆之间的方向):"
    您希望我连接
    RX_P PHY 至 RX_P RJ45电缆
    RX_N PHY 至 RX_N RJ45电缆
    TX_P PHY 至 TX_P RJ45电缆
    TX_N PHY 至 TX_N RJ45电缆

    然后尝试翻转:
    TX_P PHY 至 RX_P RJ45电缆
    TX_N PHY 至 RX_N RJ45电缆
    RX_P PHY 至 TX_P RJ45电缆
    RX_N PHY 至 TX_N RJ45电缆

    我已经尝试了,它没有做任何事情。

    我还在引脚30上使用 PU 和 PD 电阻器互换 PHY 地址、结果相同、同一 PHY 无法进行另一个链路。
    我不明白的是、当端口1连接时、从器件处于 OP 模式、它可以检测到另一个 PHY 无法链接。 这将意味着 MCU 和 PHY 0之间的 MII 连接错误、对吧?

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

    尊敬的 AI:

    直接连接到端口0的 TwinCAT 能够识别 PHY、但直接连接到 端口1的 TwinCAT 无法识别 PHY?

    是否尝试在两个 PHY 之间更改变压器和 CMC? 如果可能、还需要测试 PHY 0和 PHY 1的 Rbias 和 CLK_OUT 信号。

    ——

    此致、

    Hillman Lin

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

    不、TwinCAT 直接连接端口1、它可以识别出 PHY 1有链接、PHY0 "缺失"、我不知道它是如何工作的。
    我们尝试一切,改变 CMC ,变压器,Rbias 是0.9V, clkout ...
    我还将 GPIO 手动驱动为低电平/高电平、并使用振荡器在 PHY 侧进行探测、以确保 MCU 正确接线、并且引线连接到预期位置。

    我快放弃了

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

    尊敬的 AI:

    让我们再后退一步。 请读取连接到 PC 的端口1和连接到 PC 的端口0之间的寄存器状态。

    • 0x0000到0x001F

    从您在 E2E 上方发送的寄存器来看、端口0和端口1始终看不到链路接通。 我们需要查看工作端口和非工作端口之间的不同寄存器状态

    这表明了其中一个 PHY 建立链路的位置:

    • 寄存器1 = 30829

    如果看不到此寄存器值、则表明 PHY 和端口都没有连接。

    ——

    此致、

    Hillman Lin