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.

[参考译文] AM2432:带有 AM2432和放大器的 EtherCAT;DP83822

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1473858/am2432-ethercat-with-am2432-dp83822

器件型号:AM2432
主题中讨论的其他器件:DP83869SysConfig、

工具与软件:

大家好!  

我目前使用 AM4232 ALX MCU 和 DP83822 PHY 进行 EtherCAT 通信。
使用的 SDK - ind_comms_sdk_am243x_09_02_00_08 -> ethercat_slave_demo  

测试设置、

添加了 CUST_PHY_DP83822.c  

e2e.ti.com/.../CUST_5F00_PHY_5F00_DP83822.zip

在代码中、我将 CUST_PHY_DP83822.c 与 CUST_PHY_Dp83869.c 集成  
根据 IEEE IDENT 检测和配置 PHY


Log:(在获取日志时、端口2已与 PC TwinCAT 连接)

本地实施
Pruicss max =3 Selected PRU:3
DID 映射0x30080000 len 0x2000至0x30080000 (dram0)
DID 映射0x30082000 len 0x2000至0x30082000 (dram1)
DID 映射0x300b4000 len 0x4000至0x300b4000 (iram0)
DID 映射0x300b8000 len 0x4000至0x300b8000 (iram1)
DID 映射0x30090000 len 0x10000至0x30090000 (shdram)
DID 映射0x300a2000 len 0x400到0x300a2000 (CONTROL0)
DID 映射0x300a4000 len 0x400至0x300a4000 (CONTROL1)
DID 映射0x300a0000 len 0x2000到0x300a0000 (INTC)
DID 映射0x300a6000长度0x2000到0x300a6000 (cfg)
DID 映射0x300a8000 len 0x2000到0x300a8000 (uart0)
DID 映射0x300ae000 len 0x2000至0x300ae000 (IEP)
DID 映射0x300b0000 len 0x2000到0x300b0000 (ecap0)
DID 映射0x300b2000 len 0x400至0x300b2000 (MII_RT)
DID 映射0x300b2000 len 0x1c00至0x300b2000 (MDIO)
PHY 复位:0.28
PHY 复位:0.20
pRegPerm = 0x30082000、dram1=0x30082000、偏移= 0x00000000、大小= 0x00001400
PRU ESC:版本0690 | BLD 0514 | INTC 基地址:0x300a0000、id = 0x4e82a900
intc.HIDISR 地址:0x300a0038
TxPDO 创建0x1A00:0x701609f0
EC_SLV_APP_SS_populateDescriptionObjectValues:3430 PDO 输出长度:0xA0
PHY 复位:0.28
PHY 复位:0.20
PHY 取消复位:0.28
PHY 取消复位:0.20
配置 PHY 位:PhyAddr:3、LinPol:high、PhyAddr:1、LinPol:high、(0x0)
检测到 DP83822
检测到 DP83822
PRU_PHY_DETECT:185 PHY 1活动
PRU_PHY_DETECT:185 PHY 3活动
PHY 3:启用 AutoMDIX
PHY 3:重新启动 ANEG
PHY 3:BMSR POST ANEG:7849 ANEG:n 完整链接:否
PHY 1:启用 AutoMDIX
Phy 1:重新启动 ANEG
PHY 1:BMSR POST ANEG:786d ANEG:Complete Link:Yes
PHY 禁用磁性元件
PHY 启用磁性元件
器件- e0000000h/50000004h

EC Slave (欧共体奴隶
数字版本:0x00020001.
源 ID:
*****
数字版本:0x00020001.
友好版本:
源 ID:
OSAL*****
数字版本:0x00010201
友好版本:
源 ID:
**
状态更改:0x0 -> 0x1
SSC_checkTimer:MaxD:9039790 (9)
SSC_checkTimer:MaxET:81
SSC_checkTimer:MaxD:11999545 (11)


我能够配置与 ICSS_TCPServer 相同的设置(正常工作)

在尝试使用 TwinCAT 进行连接时、我没有设备。

可以建议对固件进行检查吗?

此致、
D.Jenita.

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

    尊敬的 Jenita:

    [报价用户 id="594351" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1473858/am2432-ethercat-with-am2432-dp83822 "]日志:(获取日志时端口2已与 PC TwinCAT 连接)[/QUOT]
    • 如果使用同一端口扫描设备、是否可以尝试从端口1 (左侧端口)进行扫描。

    还可以尝试禁用 EnhancedLink 功能并查看是否能够扫描?

    此致、
    亚伦

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

    需要注意的几项附加检查:

    • 确保在 PHY 和 AM243x 上启用自动协商、因为 PHY 需要与链路的另一端(例如 EtherCAT 主站或交换机)进行通信来建立链路速度和双工模式。 DP83822 PHY 支持100BASE-TX 和1000BASE-T 以太网速度、但必须正确配置自动协商才能建立链路。
    • 确保在 AM243x 中将 PHY 配置为 MII 模式。 您应在 SysConfig 中选择相应的模式、并确保为 PHY 复用适当的引脚。
    • 确保在 AM243x 中将 PHY 配置为 MII 模式。 您应在 SysConfig 中选择相应的模式、并确保为 PHY 复用适当的引脚。
    • 确保设置正确的 PHY 地址。 如果使用多个 PHY、请确保每个 PHY 具有唯一的地址。 如果您使用单个 PHY、请检查是否正确分配了 PHY 地址。 从日志来看、PHY 地址似乎是正确的。
    • 在 SysConfig 中、确保为 DP83822 PHY 正确配置以太网接口引脚。 必须确保 TX/RX 线路、MDC/MDIO 线路和 CLK 引脚已正确分配给相应的 GPIO 或 MII 接口。
    •  从 MDIO 链路寄存器(0x300B240C)检查链路是否接通。

    此外、最好在端口连接后提供 PHY 寄存器值。 PHY 状态寄存器应该提供连接状态和自协商是否成功。

    此致、
    亚伦   

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

    大家好、Aaron:  

    如果您使用同一端口扫描设备、可以尝试从端口1 (左端口)进行扫描。

    我检查了两个端口、仅说明与端口2连接时占用了特定的日志。

    您还可以尝试禁用 EnhancedLink 功能并查看您是否能够扫描吗?

    我不确定您是否提到了这一点。 如果是、我们执行了以下相应更改、仍然存在问题

    如果没有、请告诉我还需要检查什么。

    此致、  
    D. Jenita

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

    大家好、Aaron:  

    感谢您提供的投入。

    确保 PHY 和 AM243x 上已启用自动协商、因为 PHY 需要与链路的另一端(例如 EtherCAT 主站或交换机)通信以建立链路速度和双工模式。 DP83822 PHY 支持100BASE-TX 和1000BASE-T 以太网速度、但必须正确配置自动协商才能建立链路。[/QUOT]

    我已在 H/W 和 F/W 中检查了这一点、正确启用了自动协商
     我们已设置为模式1

    F/W - BMCR (0x0000) bit[12]已设置->启用自动协商

    我们已在代码中将其配置为100BASE-TX。 根据数据表、DP83822 PHY 不支持1000BASE-T 速度、请进行检查。

    确保针对 AM243x 将 PHY 配置为 MII 模式。 应在 SysConfig 中选择相应的模式、并确保为 PHY 复用正确的引脚。[/QUOT]

    在 SysConfig Tx、RX、CLK、MDIO、MDC 引脚中已正确配置、但我未使用以下 LATCH、SYNC 引脚、因为也未从 SysConfig 中获取和删除这些引脚。 这会导致任何问题

    检查是否从 MDIO 链接寄存器(0x300B240C)建立了链路。
    [/quote]

    已检查此项、工作正常

    此致、
    D.Jenita.

    [/quote][/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="594351" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1473858/am2432-ethercat-with-am2432-dp83822/5659102 #5659102"]在 SysConfig 中、已正确配置了 Tx、RX、CLK、MDIO、MDC 引脚、但我没有使用以下 LATCH、SYNC 引脚、因为也没有从 SysConfig 中获取和删除。 这是否会导致任何问题[/QUOT]

    不、这不应该

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

    大家好、Aaron:  

    我们已通过从 LP-AM2434中删除 DP83869 PHY IC 并连接 DP83822 EVM 来进行设置。  

    DP83822 EVM 连接的引脚、

    RXD[0:3]、RXDV、RXER、RXLINK、 TXD[0:3]、 TXEN、MR_CLK、MT_CLK、RESET、INT 引脚

    可与定制 PHY 驱动器 DP83822正常工作。

    我在这里与 AM2432具有相同的连接、但在 TwinCAT 中未检测到。

    此外、我还再次尝试了 IO (PHY Pinmux)配置。 [Pinmux_config (gPru_icssg1_mII_g_rt1PinCfg、PINMUX_DOMAIN_ID_MAIN);]

    此致、  
    D.Jenita.

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

    尊敬的 Jenita:

    是否可以共享两个 PHY 的 PHY 寄存器值?

    检查此项、工作正常
    • 我认为在这里链路极性配置正确、即  在将相应端口连接到活动网络时、如果在0x300B240C 中设置了 ACTIVE_HIGH、如果未设置位、则 ACTIVE_LOW。

    此致、
    亚伦   

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

    大家好、Aaron:  

    未连接 PHY

    我从 Phy 断开连接后没有在这里取消设置位。  

    当 PHY 1连接时

    当 PHY 2连接时

    此致、
    D.Jenita.

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

    感谢您发送编修。 由此、  要在 SysConfig 中配置的 MDIO PHY 地址为 1. 3.  ETHPHY0和 ETHPHY1的引脚。 您还可以尝试在  ETHPHY1和  ETHPHY0之间交换 PHY 地址、  1.  针对 ETHPHY1 和 3.   ETHPHY0的引脚说明。

    此外、如果启用了 EnhancedLink、然后按照如下所示将 PHY 极性配置为低电平有效: \examples\industrial_comms\ethercat_slave_demo\common\board\am243lp\ESL_BOARD_config.h

    #define ECAT_PHYPOLINVERT_IN (false)
    #define ECAT_PHYPOLINVERT_OUT (false)

    TRUE =>高电平有效
    False =>低电平有效

    此致、
    亚伦

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

    大家好、Aaron:
     

    [报价用户 id="550875" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1473858/am2432-ethercat-with-am2432-dp83822/5661901 #5661901"]将 PHY 极性配置为低电平有效[/QUOT]

    我之前已经尝试过、但这样做对我来说并不起作用。 但现在、除了这些内容、我也做了改变  

    #define ECAT_PHYUSERXLINK_IN                (false)
    #define ECAT_PHYUSERXLINK_OUT               (false)

    现在端口2已带有 TwinCAT。 我在使用端口1时遇到问题。

    更改这两个宏到底会发生什么? 为什么端口1无法启动?

    请提供指南

    此致、
    D. Jenita

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

    尊敬的 Jenita:

    更改这两个宏究竟会发生什么?
    • 为端口启用/禁用增强链接需要这两个宏。 为了 满足 EtherCAT 快速检测要求、需要启用该功能。
    • 现在、它设置为 false、已禁用增强链接功能。

    就像启用了"增强链路"的情况一样、您没有在两个端口上获得活动链路。 确保  RXLINK 引脚连接正确、以启用此功能。 PHY 链路中断反应时间(链路中断到链路信号/LED 输出变化的速度)必须小于15us 才能实现冗余操作、而增强链路将处理此时序限制(请参阅 测试电缆冗余 适用于测试场景)。

    如果禁用了增强型链路、则实施基于 MDIO 状态机的检测、这种检测速度较慢、原因是 MDIO 控制器到 PHY 之间有一条串行链路用于传输消息、PHY 通常从200条接收到250 µs。 MLINK/mII_rxlink 检测的发生速度与 PHY 切换链路的速度一样快、通常在10 µs 中进行。

     如果启用了增强型链路、则需要根据 Reg.x300B240C 中的状态来配置链路极性。

    为什么我没有启动端口1?
    • 这需要进一步调查。  将必须检查您先前共享的 PHY 寄存器值、以了解2个端口之间的差异。

    此致、
    亚伦

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

    尊敬的 Jenita:

    很抱歉其他优先级导致的延迟。

    看起来这些位未针对 PHY1设置。 查看 PHYSTS 寄存器、链路状态、双工状态、自动协商状态、信号检测、MDI/MDIX 模式位均为0。 您可以比较非工作端口的 PHY 寄存器值并将其与数据表中的寄存器进行比较。  

    此致、
    亚伦