cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H75x LwIP Implementation Failing

CMHenway
Associate II

Hello,

 

I have been following a few different Ethernet tutorials for my MCU (STM32H750VBT6TR) I have on a dedicated PCB. Thus far, I have been unable to get a simple ping test working. For reference, I am mostly using this tutorial in combination with this one, but I am not using freeRTOS at this time. I simply want to get LwIP to set up correctly and ping the board so I can then adapt it to a UDP server.

 

I know my memory locations for the rx/tx designators, and rx pool base, and the LwIP heap are in the right locations (assuming they are as the tutorial states), but my code fails when the LwIP.c file calls netif_add(), which makes me think the issue does not lie within the memory.

 

Can anyone who is more experienced in simple LwIP implementations help me out here? I am not sure where to turn at this point, as it does not seem people on other posts are having the same issues. I will attach my project files, namely the IOC, so anyone can look to see if there are any issues.

 

Thanks in advance! 

CMHenway_0-1759841818221.png

CMHenway_1-1759841842967.png

CMHenway_2-1759841851818.png

CMHenway_3-1759841897984.png

CMHenway_4-1759841907256.png

 

 

 

 

12 REPLIES 12
LCE
Principal II

... PHY datasheet

... H7 ref manual (I guess it's rather the PHY)

STackPointer64
ST Employee

I'm glad it solved your issue. Regarding the timeout problem, it appears your ARP cache is being cleared too quickly, so each time you leave the board unattended, its ARP entry is removed. Try checking your interface parameters with these steps:

  1. Open Command Prompt as an administrator.
  2. Get the interface index by running:
    netsh interface ipv4 show interfaces​
  3. Check the current Base Reachable Time by running:
    netsh interface ipv4 show interface <InterfaceIndex>​
  4. Set a longer timeout (e.g., 60,000 ms or 60 seconds) by running:
    netsh interface ipv4 set interface <InterfaceIndex> basereachable=60000​
To improve visibility of answered topics, please click 'Accept as Solution' on the reply that resolved your issue or answered your question.

All,

 

I implemented a basic UDP client, and I verified I can send and receive data packets without issue, so I am calling this entire thread solved. I will keep in mind that my PHY may enter a sleep mode as I go forward and will tackle it as it is relevant.

 

Thank you all for your help; it is much appreciated.