AnsweredAssumed Answered

STM32CubeMX + lwIP + DP83848

Question asked by solovei.vladisla.001 on Jan 4, 2018

Hi.

 

I have a project generated using stm32cubemx.

STM32F207@100MHz

lwIP, RMII, 50MHz MCO out.

Static IP.

ARP, ICMP modules is enabled.

 

After starting the board i see (with wireshark) one Gratuitous ARP message from board.

Nothing else 

Any responses on ARP requests, ping, etc.. 

 

In main(), from UM1713 (Developing applications on STM32Cube with LwIP TCP/IP stack )

I have something like these:

  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_LWIP_Init();

  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
       ethernetif_input(&gnetif);
       sys_check_timeouts();
  }
  /* USER CODE END 3 */

}

 

But, in function HAL_ETH_GetReceivedFrame()
from stm32f2xx_hal_eth.c 
condition if(((heth->RxDesc->Status & ETH_DMARXDESC_LS) != (uint32_t)RESET))  is always false (so, HAL_ETH_GetReceivedFrame returning HAL_ERROR).

At this point, heth->RxDesc->Status is always 0x80000000 and not changing.

Outcomes