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.
我在 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
在 给 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--);
使代码可靠
切斯特、
谢谢、很遗憾、解决方案无法正常工作。 也会尝试较长的时间延迟。
好的、在我使用 LwIP 应用而不是以太网引导加载程序的情况下、获取 PHY ID (在添加延迟之前)的失败仅在加电后出现。 复位后工作正常。
当以太网引导加载程序无法读取 PHY ID 时、是否存在任何模式、或者故障是否显示为"随机"?
您好、Suthan、
有关配置、请参阅此应用手册:
您好 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 开关处于关闭状态。 解决问题。 所有示例都正常工作。
谢谢你