2026-01-25 7:23 PM
I have designed a STM32H723 board with LAN8742A PHY IC and its connected to a Hanrun HR911105A Magjack. I am running the Ethernet stack on mongoose network library. The stack is working perfectly on a STM32H7 Nucleo Board, the link auto-negotiates to 100Mbps Full duplex speed. Unfortunately, on the custom board, the link auto negotiates to 100M full-Duplex but ARP resolution fails(the link works fine at 10M speed). The schematic and layout are highly inspired by the STM32H723 Nucleo and the LAN-8742A evaluation board. I am attaching the schematic(PHY side, cannot show the STM side due to NDA reasons) and debug messages from LAN8742A registers for the same.
Some Notes on the Layout: The Board is a 8 layer PCB. Majority of the routing has been done on the top and bottom layers. Layer 2 is the reference layer for the 100ohm differential TX and RX lines. The TX and RX digital lines ( from PHY to STM) are roughly matched to 50 ohm impedance. I can't show more than this unfortunately, but on the STM side the TX and RX data lines are matched to approx 10mm(The nucleo board has non-existent length matching so i didn't bother to length match them)
====== LAN8742A PHY STATUS-Nucleo ======
PHY ID: 0x0007 0xC131
BCR (0x00): 0x3100
- Speed: 100 Mbps
- Duplex: Full
- Auto-Neg: Enabled
- Restart AN: 0
BSR (0x01): 0x782D
- Link: UP
- Auto-Neg Complete: YES
ANAR (0x04): 0x01E1
- Advertised: 100Full 100Half 10Full 10Half
ANLPAR(0x05): 0xCDE1
- Partner: 100Full 100Half 10Full 10Half
SMR (0x11): 0x0002
- Interface Mode: MII
- PHY Address (latched): 0
- MODE[2:0]: 2 (10Base-T Full)
MCSR (0x19): 0x0000
- Auto-MDIX: Disabled
- MDIX State: MDI
- Energy Detect: Idle
SCSR (0x1F): 0x1058
- Current Operating Mode: 100Base-TX Full
=================================
====== LAN8742A PHY STATUS ======
PHY ID: 0x0007 0xC131
BCR (0x00): 0x3100
- Speed: 100 Mbps
- Duplex: Full
- Auto-Neg: Enabled
- Restart AN: 0
BSR (0x01): 0x782D
- Link: UP
- Auto-Neg Complete: YES
ANAR (0x04): 0x01E1
- Advertised: 100Full 100Half 10Full 10Half
ANLPAR(0x05): 0xCDE1
- Partner: 100Full 100Half 10Full 10Half
SMR (0x11): 0x0002
- Interface Mode: MII
- PHY Address (latched): 0
- MODE[2:0]: 2 (10Base-T Full)
MCSR (0x19): 0x0000
- Auto-MDIX: Disabled
- MDIX State: MDI
- Energy Detect: Idle
SCSR (0x1F): 0x1058
- Current Operating Mode: 100Base-TX Full
=================================