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.
工具与软件:
大家好!
我们有一个基于 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的驱动程序。" 我从此处添加了配置文件:
构建良好。 我添加了#define _LAUNCHXL_F28P65X
device.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
如果我们进行探测:
最后要提到的一点:电路板最初采用的是40MHz 晶体、而不是25MHz。 我们稍后移除了40MHz 晶体、并用25MHz 晶体替换它。 我不认为这可能会损坏 PHY、但我想提一下。
我们是有点想法。 如有任何帮助、将不胜感激。
附件是我们的 schematics.e2e.ti.com/.../1565.SCH.PDF
您好!
感谢您分享这些信息
——
此致、
Hillman Lin
你好、Hilman、谢谢你的支持。
我删除了 ESD、没有改变任何内容
您好!
很抱歉混淆、感谢您指出它。 我将根据 DP83826调试该用例。
我想问一下、您提供的寄存器转储是否是 DP83826两者相互连接的情况?
ESD 二极管有时会降低 MDI 线路上的信号。 我只是想确认 ESD 二极管是否产生了任何影响。
——
此致、
Hillman Lin
您好!
我将与团队讨论寄存器转储问题、并在稍后为您提供响应
——
此致、
Hillman Lin
您好!
我们会与团队仔细核实。 以下是一些进一步的调试测试:
——
此致、
Hillman Lin
你(们)好、Hilman。
// // Wait for ESCSS memory initialization to complete // if(ESCSS_getMemoryInitDoneStatusBlocking(ESC_SS_BASE, memoryTimeOut) != ESCSS_API_SUCCESS) { return(ESC_HW_INIT_FAIL); }
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
这可以让我们了解 PHY 与 PHY 之间或 MAC 与 PHY 之间的问题。
——
谢谢!
Hillman Lin
你好、Hilman、很抱歉耽误你的时间。
在绝望中、我们更改了 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 问题
然后、我们需要定义_LAUNCHXL_F28P65X 以正确设置引脚配置...
目前整个过程确实令人沮丧、我们无法判断:
此问题大大延迟了我们的产品开发。 事实上、更改同一电路板上的 PHY 会导致不同的行为、这让我们认为很难确定问题是硬件还是软件。 您是否能够让软件方面的人进入循环、准确地告诉我们要查看哪个寄存器、以便首先确定 PHY 的修订版本、然后确认我们是否需要权变措施固件来检测从站等?
尊敬的 AI:
您现在有用于新设置的寄存器转储吗? 如果可能、您是否能够不断地拉动寄存器0x0001来查看 PHY 是否具有稳定链路?
遗憾的是、我对您当前使用的 CPU 闪存软件不太熟悉。 不要太确定您当前使用的是哪个 CPU 示例项目。 如果可能、您能否联系 C2000产品线以进一步了解有关该软件的详细信息
——
此致、
Hillman Lin
您好!
感谢您分享这些信息。 通过寄存器写入、端口1和端口2似乎都无法 正确链接。
PHY 似乎无法建立链路、这就是您无法通信的原因。 下面是我要尝试的以下步骤:
MDI 长度也可能对信号质量产生影响并导致无法连接。
——
此致、
Hillman Lin
你好、Hillman
复位时、如果没有 PD 电阻器、我无法进行测试、我将尝试一下。
这是 DUT:
使用双绞线驱逐 RJ45。 这在其他设计中使用、没有问题。
MDIO 和 MDC 的长度分别为47mm 和45mm、这两种情况下的布局非常受关注。
PHY 与变压器相同、然后是连接器:
所有信号都与接地平面相邻:
您好!
不稳定的链路将导致 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连接器板和主板上)。 我们还可以执行以下三项操作:
——
此致、
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之间的寄存器状态。
从您在 E2E 上方发送的寄存器来看、端口0和端口1始终看不到链路接通。 我们需要查看工作端口和非工作端口之间的不同寄存器状态
这表明了其中一个 PHY 建立链路的位置:
如果看不到此寄存器值、则表明 PHY 和端口都没有连接。
——
此致、
Hillman Lin