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.

[参考译文] DP83826E:DP83826E 和 STM32H7数据传输问题

Guru**** 2538950 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1354460/dp83826e-dp83826e-and-stm32h7-data-transmission-problem

器件型号:DP83826E

您好!

使用 LWIP 将 DP83826与 STM32H74连接时遇到问题。

  • 我在 RMII 基本模式下运行、
  • 虽然某些具有相同软件的电路板(Web 服务器、TCP、UDP 等)工作正常、但许多电路板仍面临相同的问题。
  • 我正在调试模式下使用 PC 的 IP 和 MAC 地址、在 ARP 过程中观察传入的 RX 信号。 不过、我只是偶尔在 TX_D0和 TX_EN 中看到信号。
  • 我已根据寄存器读数确认 MDIO 和 MDC 信号工作正常。 此外、焊接似乎没有问题。
  • 输出时钟频率50MHz 正常(源自25MHz 输入)、并建立链路。
  • 电路板上 Wireshark 没有任何 ARP 或 IP 请求

您能帮助我调试这个问题吗? RX 然后 TX

另外、我想知道是否有办法测试 PHY 层、或许可以通过回送测试? 如果是、您会建议使用哪种环回方法?

Dev addr 0x1    =>REG :0x467 value 0x97 151     0000000010010111
Dev addr 0x1    =>REG :0x468 value 0x195        405     0000000110010101
Dev addr 0x1    =>REG :0x0 value 0x3000 12288   0011000000000000
Dev addr 0x1    =>REG :0x1 value 0x786d 30829   0111100001101101
Dev addr 0x1    =>REG :0x2 value 0x2000 8192    0010000000000000
Dev addr 0x1    =>REG :0x3 value 0xa111 41233   1010000100010001
Dev addr 0x1    =>REG :0x4 value 0x1e1  481     0000000111100001
Dev addr 0x1    =>REG :0x5 value 0x4de1 19937   0100110111100001
Dev addr 0x1    =>REG :0x6 value 0x7    7       0000000000000111
Dev addr 0x1    =>REG :0x7 value 0x2001 8193    0010000000000001
Dev addr 0x1    =>REG :0x8 value 0x0    0       0000000000000000
Dev addr 0x1    =>REG :0x9 value 0x0    0       0000000000000000
Dev addr 0x1    =>REG :0xA value 0x102  258     0000000100000010
Dev addr 0x1    =>REG :0xB value 0x9    9       0000000000001001
Dev addr 0x1    =>REG :0xC value 0x0    0       0000000000000000
Dev addr 0x1    =>REG :0xD value 0x401f 16415   0100000000011111
Dev addr 0x1    =>REG :0xE value 0x195  405     0000000110010101
Dev addr 0x1    =>REG :0xF value 0x0    0       0000000000000000
Dev addr 0x1    =>REG :0x10 value 0x215 533     0000001000010101
Dev addr 0x1    =>REG :0x11 value 0x10b 267     0000000100001011
Dev addr 0x1    =>REG :0x12 value 0x6400        25600   0110010000000000
Dev addr 0x1    =>REG :0x13 value 0x2800        10240   0010100000000000
Dev addr 0x1    =>REG :0x14 value 0x0   0       0000000000000000
Dev addr 0x1    =>REG :0x15 value 0x0   0       0000000000000000
Dev addr 0x1    =>REG :0x16 value 0x100 256     0000000100000000
Dev addr 0x1    =>REG :0x17 value 0x65  101     0000000001100101
Dev addr 0x1    =>REG :0x18 value 0x400 1024    0000010000000000
Dev addr 0x1    =>REG :0x19 value 0x8c01        35841   1000110000000001
Dev addr 0x1    =>REG :0x1A value 0x0   0       0000000000000000
Dev addr 0x1    =>REG :0x1B value 0x7d  125     0000000001111101
Dev addr 0x1    =>REG :0x1C value 0x5ee 1518    0000010111101110
Dev addr 0x1    =>REG :0x1D value 0x0   0       0000000000000000
Dev addr 0x1    =>REG :0x1E value 0x102 258     0000000100000010
Dev addr 0x1    =>REG :0x1F value 0x0   0       0000000000000000
Dev addr 0x1    =>REG :0x20 value 0x3000        12288   0011000000000000
Dev addr 0x1    =>REG :0x21 value 0x786d        30829   0111100001101101
Dev addr 0x1    =>REG :0x22 value 0x2000        8192    0010000000000000
Dev addr 0x1    =>REG :0x23 value 0xa111        41233   1010000100010001
Dev addr 0x1    =>REG :0x24 value 0x1e1 481     0000000111100001
Dev addr 0x1    =>REG :0x25 value 0x4de1        19937   0100110111100001
Dev addr 0x1    =>REG :0x26 value 0x5   5       0000000000000101
Dev addr 0x1    =>REG :0x27 value 0x2001        8193    0010000000000001
Dev addr 0x1    =>REG :0x28 value 0x0   0       0000000000000000
Dev addr 0x1    =>REG :0x29 value 0x0   0       0000000000000000

[low_level_init:377]
ETH_MOD FULL DUPLEX

[low_level_init:378]
ETH_SPEED 100M
[low_level_init:420]LINK Up !
[ethernetif_input:540]----------STARTING ETHERNETIF_INPUT-----etharp_request: sending ARP request.
etharp_raw: sending raw ARP packet.
ethernet_output: sending packet 0x1002000c


[low_level_output:462]Sendig !! etharp_timer

MX_LWIP_Init done
[tcp_server_init:105]create TCP
[tcp_server_init:108]create TCP  PCB done
[tcp_server_init:115]tcp_bind done 0
[tcp_server_init:121]start tcp listening for _pcb
[tcp_server_init:125]initialize LwIP tcp_accept callback functionethernet_input: dest:0hx:0hx:0hx:0hx:0hx:0hx, src:0hx:0hx:0hx:0hx:0hx:0hx, type:ff
etharp_update_arp_entry: 192.168.1.1 - "MY PC MAC ADDRESS HERE"
etharp_find_entry: found empty entry 0
etharp_find_entry: no empty entry found and not allowed to recycle
etharp_input: incoming ARP request
etharp_input: ARP request was not for us.

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

    尊敬的 Louis:

    感谢您的提问!

    硬件、软件和应用设置(IP/MAC 地址)中的设置都是相同的?

    您是否看到在 PHY 寄存器转储中工作设置和失败设置之间有任何差异?

    要在 PHY 的 MDI 端进行回送,请写入寄存器0x16[4:0]=10h (反向回送)。

    要在 PHY 的 MAC 端实现回送,请写入寄存器0x0[14]= 1h (MII 环回)。

    此致、

    埃文

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

    感谢您的回答。

    硬件、软件和应用设置(IP/MAC 地址)中的设置都是相同的?

    您是否看到在 PHY 寄存器转储中工作设置和失败设置之间有任何差异? 不是所有都是相同的

    要在 PHY 的 MDI 端进行回送,请写入寄存器0x16[4:0]=10h (反向回送)。 ?

    要在 PHY 的 MAC 端实现回送,请写入寄存器0x0[14]= 1h (MII 环回)。


    您能说明一下我在启用环回时应该期望些什么吗? 是否需要将电缆连接至伙伴器件?


    我一直面临着这个问题。 请您提供一些其他解决方案吗?  

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

    尊敬的 Louis:

    这很奇怪、我希望工作/失败的设置之间存在一些链路断开或其他状态位差异。

    阐明环回测试:

    为了实现 MII 环回、不需要链路伙伴。 设置环回后、从 DP83826的 MAC 发送数据并检查是否接收到相同的数据包以验证 MAC 侧连接。

    对于反向环回、需要链路伙伴。 设置环回后、从 STM32H4的 MAC 发送数据、并检查 STM32H74或其 MAC 是否接收到从 DP83826环回的相同信号。

    还请在 DP83826上使用此寄存器脚本进行测试、此处的一些配置可能有助于实现 IOPT 一致性:

    DP83826_IOPT_Script.txt

    谢谢!

    埃文