SapegoAL 0 26 марта Опубликовано 26 марта · Жалоба По ощущениям как-то очень недоволен как данная конструкция работает. Изначально проект ST из куба не запустился на демоплате. Нашли пример работающий... Прикрутили. В текущий момент ситуация выглядит так... Компилю проект и запускаю его на целевой плате (IAR/STLink). Всё прекрасно работает. Если отключить отладчик - продолжает прекрасно работать. Если после этого передёрнуть питание - не работает. Причём отваливается сразу ping. То есть где-то в самом низу... PHY по виду работает. LINK видит. Буду конечно ковыряться, но может кто-нибудь с таким сталкивался... Хоть наводку какую даст... Я что-то совсем туплю. В чём разница? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 26 марта Опубликовано 26 марта · Жалоба ничего отсюда не поможет? How to make Ethernet and lwIP working on STM32 - STMicroelectronics Community Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 26 марта Опубликовано 26 марта · Жалоба Они (ST) попытались все эти замечания устранить. Обновления вышли в августе 23. Но что-то пошло не так... )) Меня больше интересует, какая разница при старте под дебагером и без оного? Код тот же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 26 марта Опубликовано 26 марта · Жалоба 2 часа назад, SapegoAL сказал: какая разница при старте под дебагером и без оного? Может отладчик при запуске отладки прописывает какие-то регистры? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 26 марта Опубликовано 26 марта · Жалоба 4 часа назад, SapegoAL сказал: Они (ST) попытались все эти замечания устранить. Обновления вышли в августе 23. Но что-то пошло не так... )) Меня больше интересует, какая разница при старте под дебагером и без оного? Код тот же. Не запускается именно LwIP или проект вообще? Если вообще не стартует- может с линкером что-то. А если именно LWiP - то может с инициализацией пинов (которые к PHY идут) хитрость. Ну и до кучи: может, там какой-то пин железячно не подключен как надо, и подключенный программатор помогает (ресет, или даже питание) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 60 26 марта Опубликовано 26 марта · Жалоба Я вангую за BOOT0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 27 марта Опубликовано 27 марта · Жалоба Прошу всех прощения. Не чётко описал проблему. Итак: Проект значительный. Там куча всего. Включая внешнюю рам, флэш QSPI, 3 COM порта, Ethernet и прочее... Написан по мотивам другого проекта на основе 32f407. Существенные отличия QSPI + TFT + SD. Как надо работает SRAM + TFT + COM. Претензий нет. По QSPI какие-то отличия есть при работе из под отладчика и при автономной работе... Пока не разбирался. Так как при автономной работе всё работает как ожидалось. По Ethernet Наблюдается такая картина (на текущий момент): При запуске из-под отладчика работает всё как ожидалось. То есть плата пингуется и работает TCP/MODBUS. Работает DHCP. UDP не проверял - просто руки не дошли, но поскольку это всё перенесено с прошлого проекта, то думаю проблем не будет. Если я после запуска из-под stlink-а откидываю отладчик, то всё продолжает работать как надо без исключений. После рестарта процессора (выключаю и включаю питание). Всё работает как работало, за исключением Ethernet. Не проходит ping ну и соответственно не работают остальные протоколы. Хотя физика работает. Вижу светодиод LINK отрабатывает и второй моргает на пакеты... Такое ощущение, что ARP на начальном этапе как-то съедается и всё. Сеть не знает о существовании моего устройства. )) Буду сейчас возвращаться назад. Смотреть на каком этапе это произошло.. Но просто не могу понять. Один и тот же код... Что такого делает отладчик? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 27 марта Опубликовано 27 марта (изменено) · Жалоба Раз остальное работает, начните с чтения регистров статистики PHY и MAC. 1 hour ago, SapegoAL said: Что такого делает отладчик? Например, немного задерживает исполнение старт программы, в результате чего PHY успевает выйти из сброса. Изменено 27 марта пользователем aaarrr Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardWareMan 3 27 марта Опубликовано 27 марта · Жалоба 6 minutes ago, aaarrr said: Например, немного задерживает исполнение программы, в результате чего PHY успевает выйти из сброса. Вот, кстати, да. Я, например, помню когда ATXMega отлаживал, у меня наоборот PLL в 32МГц поднимался под отладкой, но отлично работало при штатном запуске. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 27 марта Опубликовано 27 марта · Жалоба 1 час назад, SapegoAL сказал: Хотя физика работает. Вижу светодиод LINK отрабатывает и второй моргает на пакеты... Буквально сегодня ночью собирал очередную плату F107 + LAN8720, симптомы были те же. Оказалось замыкание под LAN8720 между TXEN и TXD0. Сам LAN8720 при этом светил желтым и мигал зеленым светодиодом при втыкании кабеля. Так что со стороны проца может быть все, что угодно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 27 марта Опубликовано 27 марта · Жалоба 2 часа назад, SapegoAL сказал: Но просто не могу понять. Один и тот же код... Что такого делает отладчик? Много чего. Например - инитит регистры отладки и включает таймер DWT. Если этот таймер используется в коде, но не проинициализирован, то будут проблемы. 2 часа назад, SapegoAL сказал: После рестарта процессора (выключаю и включаю питание). Наверное нужно всё-таки проверить просто рестарт, а не вкл. питания? С помощью сигнала RESET и с помощью соответствущего регистра сброса ядра или WDT. Если у вас инит регистров физики реализован криво, то он может не срабатывать из-за того, что физика ещё не закончила power-on reset. А вы уже пытаетесь в неё что-писать. Без контроля готовности. В этом случае после сброса по WDT или через ядро, старт должен быть нормальным, как из под отладчика. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 27 марта Опубликовано 27 марта · Жалоба Спасибо всем за ответы. Перепроверю, что смогу... Мысли дельные. Как минимум 2 комплекта работают. Тоже надо перепроверить. На предмет хитрого аппаратного хомута. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 27 марта Опубликовано 27 марта · Жалоба Да. Всё правильно. Скорее всего инициализация PHY (DP83848) начиналась слишком быстро, а он ещё не вышел из сброса. Поставил задержку в начале задачи eth_init_task, и проблема решилась. Надо будет вообще всю периферию просмотреть. Даташиты перечитать. Всем огромное спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardWareMan 3 27 марта Опубликовано 27 марта · Жалоба 2 hours ago, SapegoAL said: Поставил задержку в начале задачи eth_init_task, и проблема решилась. Надо будет вообще всю периферию просмотреть. Даташиты перечитать. А у него что, нет какого-то флага готовности? Тупая задержка не всегда хорошее решение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 27 марта Опубликовано 27 марта · Жалоба 4 часа назад, HardWareMan сказал: А у него что, нет какого-то флага готовности? Тупая задержка не всегда хорошее решение. Наверняка есть. Но это же документацию читать надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться