2026-03-23 2:34 AM - last edited on 2026-03-24 3:52 AM by FBL
Hello!
I have been using the STM32H723ZG Nucleo board and am now trying to ping the STM32 device from a PC through an Ethernet connection, but the ping is not working.
For ex:
ping 192.168.10.XX (STM32 Static IP)
No response is received.
My board setup and module details are given below.
Board / Setup
Observed Behavior (STM32 side logs):
Who has 192.168.10.50? Tell 192.168.10.100 (Captured by wireshark).
2. lwIP processes the request and generates an ARP reply.
3. ARP reply frame content (from debug log):
192.168.10.XX is at 00:80:XX:XX:XX:XX
4. Transmission status:
HAL_ETH_Transmit_IT status = HAL_OK
5. TX complete callback is triggered:
HAL_ETH_TxCpltCallback()
Expected Behavior:
Actual Behavior (PC side)
Using Wireshark:
Memory Configuration (lwIP / DMA)
#define MEM_SIZE 16360
#define LWIP_RAM_HEAP_POINTER 0x30040000
Additional Observations
For your reference I have given the STM log that I get while I sent the ping command.
STM log:
RX: ARP request (broadcast)
Sender MAC: XX:XX:XX:XX:XX:XX
Sender IP : 192.168.10.XX
Target IP : 192.168.10.XX
TX: ARP reply
Sender MAC: XX:XX:XX:XX:XX:XX
Sender IP : 192.168.10.XX
Target MAC: XX:XX:XX:XX:XX:XX
Target IP : 192.168.10.XX
HAL_ETH_Transmit_IT status = 0
Questions
Any guidance would be appreciated.
Regards,
Siva
2026-03-23 4:23 AM
It could likely be that some ethernet pins are not configured correctly. Could you please show the Ethernet pin configuration from CubeMX or attach the ioc file?
2026-03-23 4:25 AM
Or ensure D-Cache is disabled, since it could tamper with the Ethernet DMA descriptors
2026-03-23 6:03 PM
2026-03-23 6:03 PM
Currently, both D-cache and I-cache are disabled.
2026-03-23 6:12 PM
@SivaElte On which machine runs the wireshark? Better run it on 3rd machine, not on the PC itself. Use a switch with a mirror port configured for packet capture (copies all other ports). Otherwise the wireshark log cannot be trusted.
2026-03-24 1:28 AM
I can see the TX pins are not the right ones. TXD0 should be PG13 instead of PB12, TX_EN should be PG11. Please check all the pins and compare with the board's schematic. I am running an example on my Nucleo H723 with these changes and all works.
2026-03-24 7:35 PM
Thank you for your response and for pointing out the pin configuration differences.
I have reviewed the Nucleo-H723ZG schematic and updated the pin assignments accordingly. Specifically, I have corrected the RMII pins as suggested (TXD0 -> PG13, TX_EN -> PG11, and TXD1 -> PB13 ), and verified the overall pin configuration in my .ioc file to match the board schematic.
However, even after making these changes, I am still facing the same issue where the ping command is not working. The Ethernet link appears to come up, but there is no response to ping requests.
I would appreciate your guidance on what additional areas I should verify. For example, I am currently checking the PHY configuration, clock settings, and LWIP initialization to identify any potential issues. Please let me know if there are any specific configurations or common pitfalls I should focus on.
Thank you again for your support.
2026-03-24 7:38 PM
Thank you for your suggestion regarding the Wireshark setup.
Currently, I have been capturing packets directly on the PC connected to the STM32 board. Based on your recommendation, I understand that this may not provide fully reliable results.
I will try to set up a proper test environment using a network switch with port mirroring enabled and perform packet capture from a third machine to obtain more accurate results.
2026-03-25 4:31 AM
Just a note on Ping (ICMP) with LWIP, ICMP can be enabled / disabled within the options opt.h or through the Cube configuration menu. The default is enabled #define LWIP_ICMP 1 , but you might want to check it hasn't been overwritten accidentally.