cancel
Showing results for 
Search instead for 
Did you mean: 

HAL_ETH_Init Timeout on STM3210C-EVAL

Ulysse Mantonnier
Associate
Posted on April 19, 2018 at 17:04

Hello,

I'm currently using a STM3210C-EVAL board with FreeRTOS, and I wanted to communicate with it through Ethernet.

However, the program stops working when this function is executed in HAL_ETH_Init :

(heth->Instance)->DMABMR |= ETH_DMABMR_SR;

  /* Get tick */

  tickstart = HAL_GetTick();

  /* Wait for software reset */

  while (((heth->Instance)->DMABMR & ETH_DMABMR_SR) != (uint32_t)RESET)

  {

    /* Check for the Timeout */

    if ((HAL_GetTick() - tickstart) > ETH_TIMEOUT_SWRESET)

    {

      heth->State = HAL_ETH_STATE_TIMEOUT;

      /* Process Unlocked */

      __HAL_UNLOCK(heth);

      /* Note: The SWR is not performed if the ETH_RX_CLK or the ETH_TX_CLK are

         not available, please check your external PHY or the IO configuration */

      return HAL_TIMEOUT;

    }

  }

Indeed, this returns a timeout. This is the code generated by Stm32CubeMX.

Thank you in advance if you have a solution to this issue !

#ethernet #stm3210c-eval-board
1 REPLY 1

Sorry, bumping old zombie unanswered questions off my feed

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..