cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H7 Ethernet LAN8742A software reset timeout error

Hello everyone,

I'm working on a custom board that uses the STM32H723ZGT6 together with the LAN8742A-CZ-TR Ethernet PHY.

During the call to HAL_ETH_Init() in the stm32h7xx_hal_eth.c file, the initialization fails and gets stuck in this loop:

 

 

/* Wait for software reset */
while (READ_BIT(heth->Instance->DMAMR, ETH_DMAMR_SWR) > 0U)
{
if ((HAL_GetTick() - tickstart) > ETH_SWRESET_TIMEOUT)
{
/* Set Error Code */
heth->ErrorCode = HAL_ETH_ERROR_TIMEOUT;

/* Set State as Error */
heth->gState = HAL_ETH_STATE_ERROR;

/* Return Error */
return HAL_ERROR;
}
}

 

I suspect the issue may be related to the NRST pin.

On my PCB, I have connected the NRST pin of the LAN8742A to both

the MCU's NRST and the ST-Link NRST pin — similar to what is shown

in the STM32H7 Nucleo-144 (MB1364) reference design.

 

MohamadSalloum86_0-1751802993753.png

 

 

MohamadSalloum86_2-1751803074671.png

However, when I checked the LAN8742A datasheet,

it suggests that this pin should be driven in a specific way

MohamadSalloum86_3-1751803201147.png

 

MohamadSalloum86_5-1751803275727.png

 

Could this NRST wiring be the reason for the reset timeout?

If yes, how does the MB1364 board manage to work with this configuration?

 

I’ve also checked my GPIO and Ethernet settings — everything seems correct,

but the issue persists.

MohamadSalloum86_6-1751803612428.png

 

Does anyone have an idea what could be causing this problem?

Any suggestions are highly appreciated.

Thank you in advance!

 

0 REPLIES 0