[STM32H750B-DK] Ethernet peripheral not responding - DMACSR reads 0 after all attempts
Hello everyone,
I've been working on getting Ethernet working on the STM32H750B-DK discovery board with TouchGFX and LwIP. After extensive debugging, I suspect a hardware issue and would appreciate your advice on confirming this.
What Works ✓
TouchGFX display runs perfectly
USART3 debug output works (Tera Term shows messages)
PHY communication works (we get "Link established!")
The Problem ✗
The Ethernet MAC peripheral itself appears completely dead. We've tried:
1. Direct MDIO Access Works
Successfully read PHY registers
PHY responds and reports link up
This proves MDIO/MDC pins are working
2. ETH Peripheral Shows No Life
ETH DMACSR after reset: 0x00000000
ETH DMACSR after system reset: 0x00000000Reading ETH->DMACSR always returns 0
This register should never be 0 on a live peripheral
3. What We've Tried
Software attempts:
Enabled all ETH clocks (__HAL_RCC_ETH1MAC_CLK_ENABLE() etc.)
Forced and released peripheral reset
Tried system-level reset via RCC (RCC_AHB1RSTR_ETH1MACRST)
De-init and re-init with correct descriptors (0x30040000 etc.)
Bypassed MX_LWIP_Init() completely
Manual PHY configuration (gets link)
CubeMX configuration verified:
ETH set to RMII mode
All RMII pins correctly assigned (PA1, PA2, PA7, PC1, PC4, PC5, PG11, PG13, PG14)
LAN8742 PHY selected
Linker script has proper .lwip_sec section at 0x30040000
4. The Smoking Gun
ETH DMACSR after reset: 0x00000000
ETH still not responding - trying system reset
ETH DMACSR after system reset: 0x00000000
ETH HAL Init FAILED with error: 1The DMACSR register should never read 0 on a working peripheral. Even with no link, it should return a non-zero value.
Questions for the Community
Is DMACSR = 0 definitive proof of dead hardware? What else could cause this?
Are there any jumpers or solder bridges on the STM32H750B-DK that need to be closed for Ethernet to work?
What should DMACSR read on a properly functioning STM32H750? (Even with no cable?)
Any way to verify if the ETH peripheral is getting power/clocks?
Could this be a faulty chip/board? The board is new and the display works perfectly.
Is there a factory demo that uses Ethernet I can flash to confirm hardware works?
What We See in Debug Output
Pre-RTOS: UART is working!
About to start RTOS...
LWIP task STARTING...
Manually configuring PHY...
Link established!
ETH power-up sequence...
All ETH clocks enabled
ETH reset released
ETH DMACSR after reset: 0x00000000
ETH still not responding - trying system reset
ETH DMACSR after system reset: 0x00000000
RxDesc: 0x30040000, TxDesc: 0x30040100, RxBuffLen: 1536
ETH HAL Init FAILED with error: 1
Setting up network interface...
IP set to: 192.168.1.110
Network interface is UP
Starting echo servers...
Heartbeat #0 - IP: 192.168.1.110Any help would be greatly appreciated! I've spent days on this and suspect hardware failure, but want to be certain before replacing the board.
Board: STM32H750B-DK DK32H760B$AT1
CubeMX Version: 6.16.0
TouchGFX Version: 4.26.0
Ethernet PHY: LAN8742 (onboard)
Thanks in advance!
