2021-02-28 11:32 PM
Hello. Try to start ETH on STM32H733.
ETH_DMAMR_SWR setted by HAL in HAL_ETH_Init() but do not reset by device during timeout 500ms and even 2000ms.
The same code run over STM32H723 perfect.
I am try this https://community.st.com/s/question/0D53W000003xOGUSA2/stmh7-ethdmamrswr-fails but still no work
Solved! Go to Solution.
2021-03-01 11:22 AM
Most likely that is because the external MII/RMII clock is not present. Check the pin configuration and actual clock signal presence.
2021-03-01 11:22 AM
Most likely that is because the external MII/RMII clock is not present. Check the pin configuration and actual clock signal presence.
2021-03-02 03:57 AM
Yep. This is an Answer. Thank You!
2021-04-07 04:18 AM
Could you please share your ioc file configuration Ethenet with STM32H733
2021-04-07 05:01 AM
Problem was solved. See top comment and do not forget change pin speed to height!
2021-04-08 11:14 PM
Could you see my configuration Ethernet with STM32H733 https://community.st.com/s/question/0D53W00000hOPnPSAW/stm32h733-ethernet-lwip-not-connect
Thanks
2021-07-09 01:22 AM
same issue, my HW haven't correctly set pull-up resistor on lan8742 pins, so REFCLK was not generated.
2023-12-05 10:26 PM
Here are my solutions form my project (STM32H725IGKx with STM32CubeMX (6.10.0)).
Problem was that I had HAL_ETH_ERROR_TIMEOUT. So the SWR bit (ETH_DMAMR_SWR) was not set to 0:
/* Ethernet Software reset */
/* Set the SWR bit: resets all MAC subsystem internal registers and logic */
/* After reset all the registers holds their respective reset values */
SET_BIT(heth->Instance->DMAMR, ETH_DMAMR_SWR);
/* Get tick */
tickstart = HAL_GetTick();
/* 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;
}
}
SYSCFG->PMCR &= ~SYSCFG_PMCR_PA1SO_Msk;
/* USER CODE END MACADDRESS */
if (HAL_ETH_Init(&heth) != HAL_OK)
{
Error_Handler();
}
I didn’t found a possibility to change it in the STM32CubeMX (6.10.0)