У меня есть странная проблема, я никогда не видел ее раньше.Тем не менее, я все еще пытаюсь определить проблему.У меня есть STM32H753VIT и Ethernet-контроллер LAN8742, подключенный к нему.Я запускаю LwIP в режиме NO-SYS.Он работает нормально только после холодного включения, но не после аппаратного сброса (кнопка или датчик ST-LINK).Он запускает простой TCP эхо-сервер.Если он запускается, я могу пропинговать его, и он отвечает на TCP-клиент.
Но после сброса оборудования я больше не могу пропинговать его, и он не отвечает как эхо-сервер.Я заметил, что зеленый (ссылка) светодиод на интерфейсе останется выключенным после сброса.
Я мог видеть, что функция LAN8742_Init успешно выполняется после аппаратного сброса, но больше не видит данных RX, доступных в функции low_level_input.
На Nucleo-H743ZI я запускаю тот же код, и это также работает после аппаратного сброса.Обратите внимание, что код немного отличается, так как расположение контактов немного отличается.Код для хорошо работающего Nucleo-H743ZI: https://github.com/bkht/Nucleo-H743ZI_LAN8742_LwIP_NO-SYS Код для странного поведения STM32H753VIT: https://github.com/bkht/STM32H753VIT_LAN8742_LwIP_NO-SYS
nRST MCU подключен к nRST LAN8742A, а конденсатор 100 нФ используется дляGND.У меня есть переключатель сброса, и я попытался подтянуть резистор, гайка не повезло.Я добавил кнопку сброса, и это обнаружило, что более длительный аппаратный сброс также не работает.
Я думаю о направлении времени или содержимого памяти.Кто-нибудь когда-либо видел такое поведение при запуске?