I have a weird problem on hand, I never saw it before. Yet, I'm still trying to pinpoint the problem. I have an STM32H753VIT and a LAN8742 ethernet controller connected to it. I run LwIP in NO-SYS mode. It only works fine after a cold power-up, but not after a hardware reset (button or ST-LINK probe). It runs a simple TCP echo server. If it runs, I can ping it, and it responds to a TCP client.
But after a hardware reset, I no longer can ping it, and it does not respond as an echo server. I noticed the green (link) LED on the interface will remain off after the reset.
I could see the LAN8742_Init function executes successful after a hardware reset, but it sees no longer RX data available in the function low_level_input.
On a Nucleo-H743ZI, I run the same code, and this also works after a hardware reset. Note the code is only slightly different as pin mapping is slightly different. Code for well working Nucleo-H743ZI: https://github.com/bkht/Nucleo-H743ZI_LAN8742_LwIP_NO-SYS Code for strange behaving STM32H753VIT: https://github.com/bkht/STM32H753VIT_LAN8742_LwIP_NO-SYS
The nRST of the MCU is connected to the nRST of the LAN8742A and a capacitor of 100nF is used to GND. I've a reset switch and I tried a Pull-up resistor, nut no luck. I have added a reset button, and this found that a longer hardware reset does not work either.
I'm thinking in the direction of timing, or memory contents. Has anybody ever seen such start-up behavior?
NVIC_SystemReset
). If it's longer than the one output by STM, you may later run into issues in the field when you for example perform a firmware upgrade and perform a software reset. – Jacek Ślimok