工具/软件:
尊敬的 TI 专家:
我们 正在尝试使用 AM2434 µC 和两个 DP83822 PHY (地址0和1)与定制电路板建立 EtherCAT 连接。 出于测试目的、我们还在 AM243 LaunchPad 上运行软件。 我们的软件基于 AM243 MotorControlSDK 中的 TIDL 双电机驱动器示例。
借助 LaunchPad、我们能够使用两个以太网端口上的 TwinCAT 软件通过 EtherCAT 连接到器件。 对于我们自己的电路板、我们只能通过两个端口之一连接到 TwinCAT。 此外、它仅适用于已禁用的快速链路检测。
对于我们的电路板、PHY 配置如下:
#define ECAT_PHYADDR_IN (1u)
#define ECAT_PHYADDR_OUT (0u)
#define ECAT_PHYPOLINVERT_IN (true)
#define ECAT_PHYPOLINVERT_OUT (true)
#define ECAT_PHYUSERXLINK_IN (false)
#define ECAT_PHYUSERXLINK_OUT (false)
对配置的一个备注:我必须根据我对地址的实际期望交换输入和输出的地址。 在交换之前、我无法在任何端口上找到该设备。 此外、在 ECAT_PHYUSERXLINK_IN/OUT 中找不到器件(TRUE)。 我还尝试了两种 PHYPOLINVERT 设置。 连接器件时、MDIO__REGS_LINK_REG 被设置为1、因此它应处于高电平有效状态。
我还检查了连接状态下的 PHY 寄存器。 除了 PHY 地址外、两者都是相同的。 值如下表所示:
端口1已连接 | 端口2已连接 | |
BMCR_REG (00) | 0x3100 | 0x3100 |
BMSR_REG (01) | 0x786d | 0x786d |
PHYIDR1_REG (02) | 0x2000 | 0x2000 |
PHYIDR2_REG (03) | 0xa240 | 0xa240 |
ANAR_REG (04) | 0x01e1 | 0x01e1 |
ANLPA_REG (05) | 0xcde1 | 0xcde1 |
ANER_REG (06) | 0x000f | 0x000f |
ANNPTR_REG (07) | 0x2001 | 0x2001 |
ANLNPTR_REG (08) | 0x5006 | 0x5006 |
CR1_REG (09) | 0x0000 | 0x0000 |
CR2_REG (0A) | 0x0122 | 0x0122 |
CR3_REG (0b) | 0x040C | 0x040C |
REGCR_REG (0d) | 0x0000 | 0x0000 |
ADDAR_REG (0e) | 0x0000 | 0x0000 |
FLDS_REG (0f) | 0x0000 | 0x0000 |
PHYSTS_REG (10) | 0x0015 | 0x0015 |
PHYSCR_REG (11) | 0x0108 | 0x0108 |
MISR1_REG (12) | 0x6400 | 0x6400 |
MISR_REG (13) | 0x2800 | 0x2800 |
FCSCR_REG (14) | 0x0000 | 0x0000 |
RECR_REG (15) | 0x0000 | 0x0000 |
MISR2_REG (13) | 0x0000 | 0x0000 |
BISCR_REG (16) | 0x0100 | 0x0100 |
RCSR_REG (17) | 0x0049 | 0x0049 |
LEDCR_REG (18) | 0x0400 | 0x0400 |
PHYCR_REG (19) | 0x8c20 | 0x8c21 |
10BISCR_REG (1a) | 0x0000 | 0x0000 |
BICSR1_REG (1b) | 0x007d | 0x007d |
BICSR_REG (1c) | 0x05ee | 0x05ee |
CDDR_REG (1e) | 0x0102 | 0x0102 |
PHYRCR_REG (1f) | 0x0000 | 0x0000 |
我还检查 EtherCAT 状态寄存器的偏移量 0x30090000 (在这两种情况下器件均已连接 、但与 TwinCAT 无通信):
端口1已连接 | 端口2已连接 | |
0x0110 | 0x11 | 0x21 |
0x0111 | 0x56 | 0x5D 的地址 |
0x0130 | 0x01 | 0x01 |
0x0131 | 0x00 | 0x00 |
0x0134 | 0x00 | 0x00 |
0x0300 | 0x00 | 0x00 |
0x0301 | 0x00 | 0x00 |
0x0302 | 0x00 | 0x00 |
0x0303 | 0x00 | 0x00 |
0x0304 | 0x00 | 0x00 |
0x0305 | 0x00 | 0x00 |
0x0306 | 0x00 | 0x00 |
0x0307 | 0x00 | 0x00 |
0x0308 | 0x00 | 0x00 |
0x0309 | 0x00 | 0x00 |
0x030A | 0x00 | 0x00 |
0x030B | 0x00 | 0x00 |
0x030C | 0xFF | 0x00 |
0x0310 | 0x00 | 0x02 |
0x0311 | 0x04 | 0x00 |
0x0312 | 0x00 | 0x00 |
0x0313 | 0x00 | 0x00 |
我们有两个问题:
1)您能看到一个原因,为什么我们无法在第二个端口上找到我们的设备?
2)如果 启用了快速链路检测、为什么未找到器件? 这是我们想要支持的一项功能。
如果您需要更多详细信息、敬请告知。 提前感谢您的支持!
此致
基督教