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.

[参考译文] AM2431:AM2431连接到单个开关 IC 设置问题

Guru**** 2512005 points
Other Parts Discussed in Thread: AM2431, LP-AM243, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1308139/am2431-am2431-connected-to-one-switch-ic-setting-problem

器件型号:AM2431
主题中讨论的其他器件: LP-AM243SysConfig

您好!所有 TI 专家!

我目前使用的是我们公司生产的产品电路板、以 AM2431作为主 IC。 我们的主板通过 RGMII 接口将 AM2431连接到 Realtek 以太网交换机 IC。 我们在与开关 IC 通信时会遇到问题。

我之前已在 LP-AM243开发板上测试了 SDK 中的"Enet 第2层 CPSW 示例"、并成功使其正常工作。 但是、LP 开发板使用 CPSW3G 配置一个主机端口和两个 MAC 端口、通过 MDIO/MDC 从外部连接到两个 PHY。 另一方面、我们的产品板仅连接到单个开关 IC、即一个 PHY。 因此、我认为应该将其配置为 CPSW2G、这意味着一个主机端口和一个 MAC 端口。 此外、我的开关 IC 需要通过 MDIO/MDC 接口进行初始化。 以下是我的问题:

  1. 在 SysConfig 中的 Enet (CPSW)-> Pinmux config 下、由于我只连接一个开关 IC、因此只需要一个 PHY。 这是否意味着我应该禁用 RGMII2的信号并仅保留 RGMII1?
  2. 我只需要一个 MAC 端口、因此应在 SysConfig 中的 Enet (CPSW)-> MAC Port Config -> MAC Port2 Config (MAC 端口2配置)下选择"禁用 Mac 端口2"?
  3. 根据 SDK 文档,特别是"Networking->Enet-LLD->Ethernet PHY Integration Guide"和"Networking->Enet-LLD->Enet Migration Guide",我需要在相应的地址为交换机 IC 创建 PHY 驱动程序。 我还创建了 custom_board_config.c 文件、选中 sysconfig 中 Enet (CPSW)->Board Config 下的选项。 但是、PHY 仍然无法连接。 我的代码主要是对"Enet Layer 2 CPSW 示例"的修改。 日志在执行"cpsw-3g: Waiting for link up..."后停止。 我怀疑这可能是因为我的开关 IC 未在初始化过程中、因为我没有看到程序执行我编写的 Phy 驱动程序。 即使在调试模式下、我也无法看到程序到达对应器件、这让我无法确定器件上是否存在配置错误。

有人能指导我做哪些修改吗?或者我可以参考其他文档吗?

此致、

拉里

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

    Larry、您好!

    您是否尝试过修改 SysConfig 设置、以在 pinmux 中禁用 MAC 端口2和禁用 RGMII2?

    如果您已经进行过尝试、但仍然无法正常工作、您能否共享您的 syscfg 设置、这样我们就可以清除我们对配置问题的怀疑。

    否则、您能否尝试将其禁用并尝试一次。  

    此致、

    Shaunak

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

    Larry、您好!

    您是否有可能共享 MacPort 和 PHY 寄存器转储以查看我们在运行时使用的配置。 我将使用 Enet Layer2 CPSW echo 示例查看您的 syscfg、该示例具有类似的配置(仅1个端口)。

    同时、您能否确认您正在写入的新驱动程序文件是否已按预期进行编译并链接到主应用程序? 无法达到新的驱动程序代码是奇数。  

    此致、

    Shaunak

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

    尊敬的 Shaunak:

    在哪里可以 转储  MacPort 和 PHY 寄存器?

    当我尝试在 syscfg 中的"Enet (CPSW)-> Pinmux config -> CPSW pinmux 0"下禁用 MDIO/MDC 信号时、我可以确认我的 PHY 驱动程序已链接。 在该配置下运行程序后、我观察到程序确实到达了链接到函数指针的 PHY 驱动程序

    bool (*isPhyDevSupported)(EnetPhy_Handle hPhy, const EnetPhy_Version *version);

    但是,当我在 CPSW pinmux 0中启用 MDIO/MDC 时,程序不执行*isPhyDevSupported。 这真的令人费解。

    此致、

    拉里

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

    尊敬的 Shaunak:

    下面是我找到的 CPSW0_NUSS 寄存器。 这是您需要的吗?

     

    CPSW_NUSS_VBUSP_CPSW_NUSS_IDVER_REG	0x6BA00903	ID Version Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SYNCE_COUNT_REG	0x00000000	SyncE Count Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SYNCE_MUX_REG	0x00000000	SyncE Mux Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_CONTROL_REG	0x00000000	Control Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SGMII_NON_FIBER_MODE_REG	0x00000003	SGMII NON FIBER Mode Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SERDES_RESET_ISO_REG	0x00000000	SyncE Mux Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SUBSSYSTEM_STATUS_REG	0x00000000	Subsystem Status Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SUBSYSTEM_CONFIG_REG	0x00070203	Subsystem Configuration Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_RGMII1_STATUS_REG	0x00000000	RGMII1 Status Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_RGMII2_STATUS_REG	0x00000000	RGMII2 Status Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SGMII_IDVER_REG	0x4EC21102	SGMII IDVER register [Memory Mapped]	
    CPSW_NUSS_VBUSP_SOFT_RESET_REG	0x00000000	SGMII Soft Reset Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_CONTROL_REG	0x00000000	SGMII Control Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_STATUS_REG	0x0000002C	SGMII Status Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_MR_ADV_ABILITY_REG	0x00000000	SGMII MR Advertized Ability Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_MR_NP_TX_REG	0x00000000	SGMII Next Pate Transmit Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_MR_LP_ADV_ABILITY_REG	0x000064A9	SGMII Link Partner Advertized Ability Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_MR_LP_NP_RX_REG	0x0000046C	SGMII Link Partner Next Page Receive Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_DIAG_CLEAR_REG	0x00000000	SGMII Diagnostics Clear Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_DIAG_CONTROL_REG	0x00000000	SGMII Diagnostics Control Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_DIAG_STATUS_REG	0x00000509	SGMII Diagnostics Status Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_MDIO_VERSION_REG	0x00070907	MDIO Version Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_CONTROL_REG	0x810000FF	MDIO Control Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_ALIVE_REG	0x00000000	MDIO Alive Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_LINK_REG	0x00000000	MDIO Link Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_LINK_INT_RAW_REG	0x00000000	MDIO Link Interrupt Raw Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_LINK_INT_MASKED_REG	0x00000000	MDIO Link Interrupt Masked Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_LINK_INT_MASK_SET_REG	0x00000000	MDIO Link Interrupt Mask Set Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_LINK_INT_MASK_CLEAR_REG	0x00000000	MDIO Link Interrupt Mask Clear Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_USER_INT_RAW_REG	0x00000000	MDIO User Interrupt Raw Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_USER_INT_MASKED_REG	0x00000000	MDIO User Interrupt Masked Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_USER_INT_MASK_SET_REG	0x00000000	MDIO User Interrupt Mask Set Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_USER_INT_MASK_CLEAR_REG	0x00000000	MDIO User Interrupt Mask Clear Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_MANUAL_IF_REG	0x00000005	MDIO Manual Interface  Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_POLL_REG	0xC0000000	MDIO Poll Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_POLL_EN_REG	0x80000000	MDIO Poll Enable Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_CLAUS45_REG	0x00000000	MDIO Clause45 Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_USER_ADDR0_REG	0x00000000	MDIO Address 0 Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_USER_ADDR1_REG	0x00000000	MDIO Address 1 Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_REVISION	0x6690A200	Revision Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_eoi_reg	0x00000000	End of Interrupt Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_intr_vector_reg	0x00000000	Interrupt Vector Register [Memory Mapped]	
    CPSW_NUSS_VBUSP_enable_reg_out_pulse_0	0x00000000	Enable Register 0 [Memory Mapped]	
    CPSW_NUSS_VBUSP_enable_clr_reg_out_pulse_0	0x00000000	Enable Clear Register 0 [Memory Mapped]	
    CPSW_NUSS_VBUSP_status_reg_out_pulse_0	0x00000000	Status Register 0 [Memory Mapped]	
    CPSW_NUSS_VBUSP_intr_vector_reg_out_pulse	0x00000000	Interrupt Vector for out_pulse [Memory Mapped]	
    CPSW_NUSS_VBUSP_CPSW_ID_VER_REG	0x6BA80903	CPSW ID Version [Memory Mapped]	
    CPSW_NUSS_VBUSP_CONTROL_REG	0x000EE004	CPSW Switch Control [Memory Mapped]	
    CPSW_NUSS_VBUSP_EM_CONTROL_REG	0x00000000	CPSW Emulation Control [Memory Mapped]	
    CPSW_NUSS_VBUSP_STAT_PORT_EN_REG	0x00000007	CPSW Statistics Port Enable [Memory Mapped]	
    CPSW_NUSS_VBUSP_PTYPE_REG	0x00000002	CPSW Transmit Priority Type [Memory Mapped]	
    CPSW_NUSS_VBUSP_SOFT_IDLE_REG	0x00000000	CPSW Software Idle [Memory Mapped]	
    CPSW_NUSS_VBUSP_THRU_RATE_REG	0x00003001	CPSW Thru Rate [Memory Mapped]	
    CPSW_NUSS_VBUSP_GAP_THRESH_REG	0x0000000B	CPSW Transmit FIFO Short Gap Threshold [Memory Mapped]	
    CPSW_NUSS_VBUSP_EEE_PRESCALE_REG	0x00000000	CPSW Energy Efficient Ethernet Prescale Value [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_G_OFLOW_THRESH_SET_REG	0xFFFFFFFF	CPSW PFC Tx Global Out Flow Threshold Set [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_G_OFLOW_THRESH_CLR_REG	0x00000000	CPSW PFC Tx Global Out Flow Threshold Clear [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_G_BUF_THRESH_SET_L_REG	0xFFFFFFFF	CPSW PFC Global Tx Buffer Threshold Set Low [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_G_BUF_THRESH_SET_H_REG	0xFFFFFFFF	CPSW PFC Global Tx Buffer Threshold Set High [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_G_BUF_THRESH_CLR_L_REG	0x00000000	CPSW PFC Global Tx Buffer Threshold Clear Low [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_G_BUF_THRESH_CLR_H_REG	0x00000000	CPSW PFC Global Tx Buffer Threshold Clear High [Memory Mapped]	
    CPSW_NUSS_VBUSP_VLAN_LTYPE_REG	0x88A88100	VLAN Length/type [Memory Mapped]	
    CPSW_NUSS_VBUSP_EST_TS_DOMAIN_REG	0x00000000	Enhanced Scheduled Traffic Host Event Domain [Memory Mapped]	
    CPSW_NUSS_VBUSP_CUT_THRESHOLD_REG	0x00000000	Cut-thru Threshold [Memory Mapped]	
    CPSW_NUSS_VBUSP_FREQUENCY_REG	0x00000140	CPSW CPPI_CLK Frequency in Mhz [Memory Mapped]	
    CPSW_NUSS_VBUSP_IET_HOLD_CNT_LD_VAL_REG	0x00000064	IET Hold Count Load Value [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI0_MAXLEN_REG	0x000007E8	Transmit Priority 0 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI1_MAXLEN_REG	0x000007E8	Transmit Priority 1 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI2_MAXLEN_REG	0x000007E8	Transmit Priority 2 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI3_MAXLEN_REG	0x000007E8	Transmit Priority 3 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI4_MAXLEN_REG	0x000007E8	Transmit Priority 4 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI5_MAXLEN_REG	0x000007E8	Transmit Priority 5 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI6_MAXLEN_REG	0x000007E8	Transmit Priority 6 Maximum Length [Memory Mapped]	
    CPSW_NUSS_VBUSP_TX_PRI7_MAXLEN_REG	0x000007E8	Transmit Priority 7 Maximum Length [Memory Mapped]	
    

    我还发现我的 PHY 驱动程序未绑定、这似乎是由 enetphy.c 中的特定代码段引起的。 在第313行、我注意到我的程序在到达此行时确定 MDC/MDIO 不活动、因此它不输入"if"语句。 因此、不会执行 EnetPhy_bindDriver 函数、因此未使用我的 PHY 驱动程序。 可能的原因是什么?

    此致、

    拉里

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

    Larry、您好!

    我会回顾一下、然后给您提供更新。

    此致、

    Shaunak

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

    尊敬的 Shaunak:

    您是否发现了此问题? 期待您的回复。

    此致、

    拉里

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

    Larry、您好!

    我们在此跟进: e2e.ti.com/.../4973192

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

    Larry、您好!  

    由于我们将在另一个主题中跟进此问题: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1307038/am2431-linked-the-am2431-rgmii-interface-to-ethernet-switch-ic/4973192#4973192

    我们是否可以结束该主题以避免产生任何混淆。

    此致、

    Shaunak

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

    尊敬的 Shaunak:

    非常感谢您的帮助。

    此致、

    拉里