cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeMX + lwIP + DP83848 RMII

vladsol2009
Associate II
Posted on January 04, 2018 at 16:20

Hi.

I have a project generated using stm32cubemx.

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

returningHAL_ERROR).

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

1 REPLY 1
Rick MC
Associate III
Posted on July 10, 2018 at 14:30

Hello 

Solovei.Vladisla.001

! I have the same problem with my STM32F769 Disco board. 

If I ping the board I get a response, but not all the time: in fact the response is not always received every time I reset the microcontroller. The reason why this happens is because the following statement is alwasy false:

                        if(((heth-&gtRxDesc-&gtStatus & ETH_DMARXDESC_OWN) == (uint32_t)RESET))

in function 

HAL_ETH_GetReceivedFrame().

Did you manage to solve this issue??

Thanks!