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
条件是:仅端口0使用 RJ45电缆连接到笔记本电脑、而端口1未连接。
您好!
您正在读取的寄存器基于端口0、对吧?
——
此致、
Hillman Lin
这是 phy_regs_0、因此我很确定它是端口0?
您好!
我将与团队讨论寄存器转储问题、并在稍后为您提供响应
——
此致、
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
你好、Hillman。
借助新型 PHY:
使用 RJ45将端口0连接到笔记本电脑、并且端口1保持打开状态:
当端口0连接到端口1时:
当 MCU 保持复位状态时、即使连接到笔记本电脑或端口0和端口1连接在一起、也不会有 LED 亮起。
您好!
感谢您分享这些信息。 通过寄存器写入、端口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