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.
Tool/software:
Hello,
I am currently working on integrating the DP83822 PHY with an STM32H735IGT3 microcontroller to establish Ethernet connectivity. I have configured the Ethernet interface, and when I connect the Ethernet cable, it is detected successfully, and the device appears on the PC.
However, while reading the PHY registers, I observe the following:
I have verified the hardware connections, PHY initialization sequence, and ensured the clock and power are stable for the DP83822. Below are the address value obtained when the read the following DP83822 PHY registers.
Register Name | Register Address | Description | Value Read |
DP83822_BCR | 0x0000U | //Basic Mode Control Register | 0x3100 |
DP83822_BSR | 0x0001U | //Basic Mode Status Register | 0x786D |
DP83822_PHYI1R | 0x0002U | //PHY Identifier Register #1 | 0x2000 |
DP83822_PHYI2R | 0x0003U | //PHY Identifier Register #2 | 0xA240 |
DP83822_ANAR | 0x0004U | //Auto-Negotiation Advertisement Register | 0x01E1 |
DP83822_ANLPAR | 0x0005U | //Auto-Negotiation Link Partner Ability Register | 0xCDE1 |
DP83822_ANER | 0x0006U | //Auto-Negotiation Expansion Register | 0x000F |
DP83822_ANNPTR | 0x0007U | //Auto-Negotiation Next Page Register | 0x2001 |
DP83822_ANLNPTR | 0x0008U | //Auto-Negotiation Link Partner Ability Next Pag | 0x4B9B |
DP83822_CR1 | 0x0009U | //Control Register #1 | 0x0000 |
DP83822_CR2 | 0x000AU | //Control Register #2 | 0x0100 |
DP83822_CR3 | 0x000BU | //Control Register #3 | 0x1000 |
DP83822_REGCR | 0x000DU | //Register Control Register | 0x0000 |
DP83822_ADDAR | 0x000EU | //Data Register | 0x0000 |
DP83822_FLDS | 0x000FU | // Fast Link Down Status Register | 0x0000 |
DP83822_PHYSTS | 0x0010U | //PHY Status Register | 0x4015 |
DP83822_PHYSCR | 0x0011U | //PHY Specific Control Register | 0x0108 |
DP83822_RCSR | 0x0017U | //RMII and Status Register | 0x0065 |
DP83822_PHYCR | 0x0019U | // PHY Control Register | 0x8C21 |
DP83822_PHYRCR | 0x001FU | // PHY Reset Control Register | 0x0000 |
Could you please provide any guidance on what might be causing this issue? Are there any specific initialization steps, configuration registers, or debug methods recommended to troubleshoot the Link Up status in the DP83822 and establish data transmission.
Regards,
Srijan
Hi Srijan,
Happy to assist with your query. According to the register dump provided, bit 2 of 0x0001 is being set. We can read the value as 786D. D converted to binary yields 1101, which bit 2, the second most significant bit, is set correctly as 1 for an established link.
Is this behavior not what you expected from the application?
best,
Vivaan
Hi Vivaan,
Yes, Thank you,I have verified it. Link has been established. However, I am facing a new issue:
tftpd
application to verify the DHCP server status and check for any DHCP requests from the device, but none seem to be detected.Is there any specific PHY configuration or Ethernet stack setting(MAC Address) that might be needed for DHCP packet transmission or reception?
Regards,
Srijan
Hi Srijan,
There isn't any specific setting/configuration to enable DHCP packets. From your description, it seems to be a software/system level issue. I believe the PHY MDI line is functioning as expected.
As a sanity check, we can try running a reverse loopback test on the PHY using register 0x16 bit 4. If we send any packets on the PC side, the packets should be routed back to the PC. This test would validate the MDI path.
Best,
Vivaan