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.

[参考译文] TMS570LC4357:LwIP 示例在 HDK 上不起作用

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1161124/tms570lc4357-lwip-example-not-working-on-hdk

器件型号:TMS570LC4357

我在 HDK 上测试了 Hercules 以太网引导加载程序示例。 有时 hdkif_hw_init 会在中失败

 if (((HWREG (baseAddr + MDIO_USERACCESS0))和 MDIO_USERACCESS0_ACK)== MDIO_USERACCESS0_ACK)[函数 DP83640IDGet ()]

while ((phyID = 0)&&(phyIdReadCount > 0)){
phyID = Dp83640IDGet (hdkif->mdio_BASE、hdkif->phy_addr);
phyIdReadCount--;
sciDisplayText (sciREGx、txProgress、sizeof (txtProgress));

MDIOPhyRegRead 会检查失败的 ACK 并始终返回零

您能帮助解决此问题吗?

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

    您好、Suthan、

    您是否检查了针对 MCLK 和 MDIO 的 V5和 G3? 默认情况下、这两个引脚用于 MibSPI。

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

    是的、这两个参数都更改为 MDIO 和 MDCLK

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="457368" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1161124/tms570lc4357-lwip-example-not-working-on-hdk "]有时 hdkif_hw_init 会在[/quot]中失败

     在 给 TMS570LC4357 HDK (或 Launchpad)上电后、我在 hdkif_hw_init ()中遇到了相同的故障。

    在 hdkif_hw_init()中, 通过从以下位置进行更改来添加一个__delay_cycles()调用:

      EMACInit(hdkif->emac_ctrl_base, hdkif->emac_base);
    
      MDIOInit(hdkif->mdio_base, MDIO_FREQ_INPUT, MDIO_FREQ_OUTPUT);
      while(delay--);

    至:

      EMACInit(hdkif->emac_ctrl_base, hdkif->emac_base);
    
      /* Wait at least 167 milliseconds with the MDIO signal to the DP83630 PHY pulled-up with hardware before initialising
       * the MDIO interfaces.
       *
       * The DP83630 PHY datasheet parameters T2.1.1 "Post Power Up Stabilization time prior to MDC preamble for register
       * accesses" T2.1.2 "Hardware Configuration Latch-in Time from power up" parameters are both 167 milliseconds.
       *
       * Without this delay, on both a TMS570LC43x HDK and LAUNCHXL2-570LC43 after a powerup the Dp83640IDGet() function
       * failed to read the Phy ID.
       */
      __delay_cycles (PLL1_FREQ * 167000);
    
      MDIOInit(hdkif->mdio_base, MDIO_FREQ_INPUT, MDIO_FREQ_OUTPUT);
      while(delay--);
    

    使代码可靠

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

    切斯特、

    谢谢、很遗憾、解决方案无法正常工作。 也会尝试较长的时间延迟。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="457368" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1161124/tms570lc4357-lwip-example-not-working-on-hdk/4365837 #4365837">谢谢您,不幸的是,解决方案无法正常工作。 [/报价]

    好的、在我使用 LwIP 应用而不是以太网引导加载程序的情况下、获取 PHY ID (在添加延迟之前)的失败仅在加电后出现。 复位后工作正常。

    当以太网引导加载程序无法读取 PHY ID 时、是否存在任何模式、或者故障是否显示为"随机"?

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

    此问题与我的问题非常相似: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/571146/rm48l952-lwip-example-not-working-on-hercules-dev-kit-rev-e?tisearch=e2e-sitesearch

    总是失败

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

    您好、Suthan、

    有关配置、请参阅此应用手册:

    https://www.ti.com/lit/an/spna239/spna239.pdf

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

    您好 QJ、

    我只是执行了所有步骤、但仍然遇到相同的错误(请参阅下面的内容)

    1.在‘Driver Enable’(启用驱动程序)选项卡下,启用 EMAC Driver 和 SCI1 Driver (EMAC 驱动程序和 SCI1驱动程序)。

    2.在‘VIM RAM’下添加 EMAC 发送和接收中断的 ISR 名称(分别为通道77和79)。

    3.在‘VIM 通道64-95’选项卡下启用这些中断。

    4.在‘PLL’选项卡下,将两个 PLL 的乘法器更改为150,这样两种情况下的输出频率都为300.00 MHz。

    5.在‘GCM’选项卡下,将 VCLK1、VCLK2和 VCLK3除法器的值更改为1,将 VCLKA4除法器更改为2,使 VCLKA4_DIV 的输出为37.50MHz。

    6.在‘PINMUX’选项卡下,在引脚复用下启用 RMII/MII。 在输入复用下、启用 MDIO (G3)、MII_COL (F3)、MII_CRS (B4)、MII_RX_DV (B11)、 MII_RX_ER (N19)、MII_RXCLK (K19)、MII_RXD[0]、MII_RXD[1]、MII_RXD[2]、 MII_RXD[3]、MII_TX_CLK。

    7.在‘EMAC’(EMAC)选项卡下,将 EMAC 地址更改为正确的地址(示例中的默认地址如上所述)。 默认情况下、物理地址为1。 8.生成系统初始化和 HAL 代码。

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

    我还尝试 了 SPNA239中描述的示例、得到了相同的错误。  

    如果您能够提供一个使用 TMS570LC HDK 进行测试的工作示例、那将会非常棒。  

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

    终于找到了问题。 默认情况下、HDK 上的以太网 DIP 开关处于关闭状态。 解决问题。 所有示例都正常工作。   

    谢谢你