AnsweredAssumed Answered

HAL_ETH_Init Timeout on STM3210C-EVAL

Question asked by Ulysse Mantonnier on Apr 19, 2018

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 !

Outcomes