DP83822HF: PHY配置RMII模式无50MHz波形输出

Part Number: DP83822HF

使用STM32H735+DP83822HF,基于LwIP实现UDP通信,将PHY作为RMII Master模式。希望能帮忙分析是硬件有故障还是软件存在bug。

  1. 硬件电路设计中,PHY的引脚26(RX_DV)悬空,导致上电默认strap为MII模式,因此选择软件修改寄存器并数字重启,以强制为RMII Master模式。但是GPIO3监测不到任何时钟信号输出。具体操作如下:
    (1)针对0x0017:
        /* 强制配置为 RMII Master 模式 */
        reg_val &= ~(1 << 9);      // 清除 RGMII 使能位(bit9),防止冲突
        reg_val |=  (1 << 5);      // 置位 RMII 使能位(bit5)
        reg_val &= ~(1 << 7);      // 时钟选择25M:0 = 25MHzRMII Master,1 = 50MHzRMII Slave
    (2)针对0x001F:修改bit14 = 1,启动数字重启并等待重启完成。
  2. 过程中发现:插上网线ETH才有概率初始化成功。不插网线则ETH无法初始化成功。软件实现流程为(1)硬件重启PHY;(2)配置ETH并初始化;(3)PHY初始化、强制RMIIMaster并数字重启;(4)检查链路状态...
  3. 硬件电路如图所示:DP83822scheme.png
  4.  
  • 已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好,

    当以太网线连接时,你能确认是否有链路吗(读取寄存器 0x1[2])?这是为了确认 PHY 的 MDI 部分是否正常。

    寄存器 0x17 可用于确认 RMII 设置。位 9 和 7 应该都是 '0',位 5 应该是 '1'。RX_DV 应该处于mode 3(5.76k PU 和 2.49k PD)。

    链接帖子讨论了类似问题请参考。

    DP83822HF: DP83822HFRHBR with STM32H7 MCU using RMII - Interface forum - Interface - TI E2E support forums

  • 您好,

    1.以太网连接时,是有链路的,目前MDIO应该是正常的,我会在最下面贴出寄存器读取结果,希望帮助确认。

    2.查看链接问题后,由于RX_DV没有处于strap mode 3. 我仍然希望修改Reg 0x17来配置RMII Master模式。

     (1)以下为PHY初始化并配置RMII Master后重启,读取结果:

    Reg addr value
    DP83822_BMCR 0x00 0x3100
    DP83822_BMSR 0x01 0x7849
    DP83822_PHYI1R 0x02 0x2000
    DP83822_PHYI2R 0x03 0xa240
    DP83822_ANAR 0x04 0x01e1
    DP83822_ANLPAR 0x05 0x0000
    DP83822_ANER 0x06 0x0004
    DP83822_ANNPTR 0x07 0x2001
    DP83822_ANLNPTR 0x08 0x0000
    DP83822_CR1 0x09 0x0020
    DP83822_CR2 0x0a 0x0100
    DP83822_CR3 0x0b 0x1000
    DP83822_REGCR 0x0d 0x0000
    DP83822_ADDAR 0x0e 0x0000
    DP83822_FLDS 0x0f 0x0000
    DP83822_PHYSTS 0x10 0x0012
    DP83822_PHYSCR 0x11 0x0108
    DP83822_MISR1 0x12 0x6400
    DP83822_MISR2 0x13 0x2800
    DP83822_FCSCR 0x14 0x0000
    DP83822_RECR 0x15 0x0000
    DP83822_BISCR 0x16 0x0100
    DP83822_RCSR 0x17 0x0061
    DP83822_LEDCR 0x18 0x0400
    DP83822_PHYCR 0x19 0x8021
    DP83822_10BTSCR 0x1a 0x0000
    DP83822_BICSR1 0x1b 0x007d
    DP83822_BICSR2 0x1c 0x05ee
    DP83822_CDCR 0x1e 0x0102
    DP83822_PHYRCR 0x1f 0x0000

    (2)以下为link up后读取结果:

    DP83822_BMCR 0x00 0x3100
    DP83822_BMSR 0x01 0x786d
    DP83822_PHYI1R 0x02 0x2000
    DP83822_PHYI2R 0x03 0xa240
    DP83822_ANAR 0x04 0x01e1
    DP83822_ANLPAR 0x05 0xcde1
    DP83822_ANER 0x06 0x000f
    DP83822_ANNPTR 0x07 0x2001
    DP83822_ANLNPTR 0x08 0x439f
    DP83822_CR1 0x09 0x0020
    DP83822_CR2 0x0a 0x0100
    DP83822_CR3 0x0b 0x1000
    DP83822_REGCR 0x0d 0x0000
    DP83822_ADDAR 0x0e 0x0000
    DP83822_FLDS 0x0f 0x0000
    DP83822_PHYSTS 0x10 0x4015
    DP83822_PHYSCR 0x11 0x0108
    DP83822_MISR1 0x12 0x6400
    DP83822_MISR2 0x13 0x2800
    DP83822_FCSCR 0x14 0x0000
    DP83822_RECR 0x15 0x0000
    DP83822_BISCR 0x16 0x0100
    DP83822_RCSR 0x17 0x0061
    DP83822_LEDCR 0x18 0x0400
    DP83822_PHYCR 0x19 0x8c21
    DP83822_10BTSCR 0x1a 0x0000
    DP83822_BICSR1 0x1b 0x007d
    DP83822_BICSR2 0x1c 0x05ee
    DP83822_CDCR 0x1e 0x0102
    DP83822_PHYRCR 0x1f 0x0000