cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H723 (lwIP) – Ping not working, ARP reply generated but not visible on PC

SivaElte
Associate II

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

  • MCU: STM32H723ZG (Nucleo)
  • Interface: Ethernet (RMII)
  • PHY: (e.g., LAN8742 – please confirm)
  • Stack: lwIP (CubeMX generated)
  • RTOS: FreeRTOS
  • Connection: Ethernet cable through splitter (PC ↔ STM32)
  • PC IP: 192.168.10.XX (static)
  • STM32 IP: 192.168.10.XX (static)
  • STM cube IDE version: 1.18.1

Observed Behavior (STM32 side logs):

  1. STM32 successfully receives ARP requests from PC.

          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:

  • PC should receive ARP reply
  • PC should update ARP table
  • ICMP Echo Request / Reply should occur
  • Ping should succeed

Actual Behavior (PC side)

Using Wireshark:

  • ARP request from PC is visible
  • No ARP reply from STM32 is visible
  • PC does not learn STM32 MAC
  • Ping fails

Memory Configuration (lwIP / DMA)

  • Ethernet DMA descriptors placed in D2 SRAM:
  • lwIP heap configuration (lwipopts.h:(

          #define MEM_SIZE 16360

          #define LWIP_RAM_HEAP_POINTER 0x30040000

  • D2 SRAM size: 32 KB
  • Heap size adjusted to fit within D2 SRAM

Additional Observations

  • STM32 receives Ethernet frames correctly (ARP and IPv4 traffic visible)
  • lwIP stack appears functional
  • ARP reply frame format is correct
  • Transmission completes at software level

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

  1. Can TX complete callback be triggered even if the frame is not physically transmitted on the cable?
  2. Are there known STM32H7 RMII TX issues where RX works but TX does not?
  3. Any recommended way to verify TX signal activity without oscilloscope?
  4. Any CubeMX configuration that is critical for TX but easy to miss?

Any guidance would be appreciated.

Regards,

Siva

 

12 REPLIES 12

It could be an issue with the ETH DMA descriptors. Can you check at which address in memory are they stored? Run the code with the debugger and look for the DMARxDscrTab/DMATxDscrTab variables, see at which address are located. Some domain areas of the SRAM, like 0x20000000, are not accessible by the ETH DMA controller... 0x24000000 or 0x30000000 domains on the other hand should be good.

Given that the TX complete callback triggers, I think the issue is at the low-level, not at lwip level, most likely due to DMA failing to transmit. Or maybe the pins are not configured properly (pull and speed options)... you could try having a look at this ioc file as a reference and compare ETH pin setup against your own, it's part of a project that was tested and works.

Thank you for your suggestion regarding the ICMP configuration.

I have verified the LWIP configuration, and LWIP_ICMP is enabled. It has not been overwritten in my current setup

STackPointer64
ST Employee

Hello @SivaElte, and welcome to ST Community!

To ensure your board works flawlessly, could you please try running this example and let me know if it successfully pings? If it does you could compare configurations.

Best regards,

To improve visibility of answered topics, please click 'Accept as Solution' on the reply that resolved your issue or answered your question.