Other Parts Discussed in Thread: SYSCONFIG
器件型号: AM2432
主题: SysConfig 中讨论的其他器件
-
背景
我们将
ind_comms_sdk_am243x_11_00_00_13ind_comms_sdk_am243x_2025_00_00_08在定制 PCB 上使用 AM243x 上的 DP83822 PHY (ICSSG1) 将 EtherCAT CiA402 子器件从 SDK 11 () 迁移到 SDK 2025 ()。在 SDK 11 中、我们通过从基于 MLINK 的 链路检测切换到基于 PHY 轮询的链路检测(,LINKSEL=0)、成功解决了定制 PCB 上的 RXLINK 引脚干扰问题
ECAT_PHYUSERXLINK_IN = false。 此配置可稳定达到 OP。我们尝试在 SDK 2025 中采用相同的方法、但始终失败。
请参阅: testResult01.zip
原始 SDK 示例比较SDK 11 原始 (
ind_comms_sdk_am243x_11_00_00_13/.../ESL_BOARD_config.h):// No ti_drivers_config.h include, no ENHANCED_LINK_ENABLED #define ECAT_PHYUSERXLINK_IN (true) // MLINK Based (hardware MDIO normal mode) #define ECAT_PHYPOLINVERT_IN (true) // ACTIVE_HIGHSDK 2025 原始版本 (
ind_comms_sdk_am243x_2025_00_00_08/.../ESL_BOARD_config.h):#include "ti_drivers_config.h" // Contains ENHANCED_LINK_ENABLED #ifdef ENHANCED_LINK_ENABLED #define ECAT_PHYUSERXLINK_IN (true) // MLINK Based (MDIO manual mode, errata i2329) // Polarity from SysConfig (PHY0_LINK_POLARITY_ACTIVE_HIGH)主要区别:SDK 11 不使用 MDIO 手动模式(缺失)
ENHANCED_LINK_ENABLED。 SDK 2025 始终使用 MDIO 手动模式。
工作参考:SDK 11 自定义项目
我们的工作 SDK 11 自定义工程 (
ethercat_subdevice_cia402_clang_IND11_shyu3test) 使用 LINKSEL=0 作为 RXLINK 引脚干扰敏感性的权变措施:#define ECAT_PHYUSERXLINK_IN (false) // LINKSEL=0, PHY Polling Based #define ECAT_PHYPOLINVERT_IN (true) // ACTIVE_HIGHUART 引导输出(稳定,达到 OP):
Configure Phy bits: PhyAddr:3, LinPol:HIGH, PhyAddr:1, LinPol:HIGH, (0x0) ... PDO size In:0x27/0xd PDO size Out:0x27/0xd, In:0x27/0xd ← OP reached, stableMDIO_LINK (0x300B240C) = 0x00000800—稳定,无振荡。
SDK 2025 测试结果 — LINKSEL=0 始终失败
测试 A:手动
ESL_BOARD_config.h编辑 (LINKSEL=0 + ACTIVE_HIGH)#define ECAT_PHYUSERXLINK_IN (false) #define ECAT_PHYPOLINVERT_IN PHY_LINK_POL_ACTIVE_HIGH结果: TwinCAT 扫描完全失败—未检测到从设备。
测试 B:SysConfig—取消选中“Enable Enhanced Link“(启用增强链接)→基于 PHY Polling
ti_drivers_config.h更改 SysConfig 后:ENHANCED_LINK_ENABLED删除。UART 引导输出:
Configure Phy bits: PhyAddr:3, LinPol:LOW, PhyAddr:1, LinPol:LOW, (0xa) ... SSC_checkTimer:MaxET:25 ← No PDO size output, OP never reachedTwinCAT 结果:
- 扫描:检测到设备(框 1 可见)正常
- init→PREOP: 失败—通信错误
0x71f (1823)不正常
注:
(0xa)即使基于 PHY 轮询、固件配置仍会显示、而 SDK 11(0x0)则显示。
汇总表
配置 扫描 PREOP OP 注释 SDK 2025、LINKSEL=1、ACTIVE_HIGH(原始) 失败 — — 未检测到器件 SDK 2025、LINKSEL=1、ACTIVE_LOW 开来 开来 开来 ~1s 端口 A 振荡 SDK 2025、LINKSEL=0、ACTIVE_HIGH(手动) 失败 — — 未检测到器件 SDK 2025、LINKSEL=0、基于 PHY 轮询 (SysConfig) 开来 失败 0x71f — 始终失败 SDK 11、LINKSEL=0、基于 PHY 轮询 开来 开来 开来 稳定的基准
问题
-
为什么基于 PHY 轮询的链路检测(,禁用增强型链路)
ECAT_PHYUSERXLINK = false在 INIT→PREOP 时失败、0x71f但在 SDK 2025 中会出现错误、而相同的 LINKSEL=0 配置在 SDK 11 中可以正常工作? -
在通过 SysConfig 选择基于 PHY 轮询的 SDK 2025 中、UART 仍会打印 FW 配置
(0xa)、其值与基于 MLINK 的模式相同。 在 SDK 11 中、基于 PHY 轮询生成(0x0)。 SDK 2025 的基于 PHY 轮询的模式是否与 SDK 11 使用不同的内部实现? 是否需要额外的配置步骤? -
ECAT_PHYUSERXLINK = false在采用 MDIO 手动模式的 SDK 2025 中、是否正式支持基于 PHY 轮询的链路检测 ()(勘误表 i2329)? 如果不是、对于定制 PCB 具有 RXLINK 引脚干扰灵敏度的客户、建议使用哪种方法?
如果您需要更多信息、请向我索取。