Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Адаптация примера с LwIP + FreeRTOS для SK-STM32F217
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Fellrond
Доброе время суток, товарищи.

Имеется следующий набор: SK-STM32F217 (на борту камень STM32F217ZG и PHY KS8721BL), JetLink Ultra и Keil в качестве среды разработки. Также присутствуют примеры от starterkit (чистый uIP, без операционки, переписанный видимо со старой отладки на STM32F1) и от STM (тот самый FreeRTOS с LwIP с сокетами, что так необходимы).

Изначально пример от STM без изменений не мог пройти инициализацию PHY вообще, застрявал на строке

Код
while (ETH_GetSoftwareResetStatus() == SET);


Разумно предположив, что PHY все-таки на SK-STM32F217 и STM322xG_EVAL разные, внес изменения в драйвер: переключил камень в RMII режим, изменил адрес регистра PHY на 0x1f. Инициализацию теперь проходит, но видимо теперь плата не обрабатывает никакие пакеты - ping не проходят, на HTTP запросы плата тоже не отвечает. Циклы FreeRTOS при этом крутятся, LwIP сыпет отладочную информацию в USART и как бы все хорошо. Пакеты только не обрабатываются. +(

После чего посмотрел повнимательнее, и узрел, что и GPIO настраивается несколько иначе: нужно добавить инициализацию PB11 для ETH _RMII_TX_EN, и убрать лишнее по аналогии с примером starterkit, что и было сделано. Теперь код инициализации проходит, но при ресете Ethernet-порт не мигает светодиодами как ему положено, из чего делаю вывод, что PHY не проинициализировался, хотя соответствующий код отработал.

Прилагаю код инициализации Ethernet, принципиальную схему платы и main.c.

Помогите пожалуйста разобраться, в чем же дело.

Оригинал примера от STM можно найти по ссылке http://www.st.com/internet/com/SOFTWARE_RE...x7_eth_lwip.zip
Huston007
Цитата(Fellrond @ Aug 1 2011, 18:40) *
Доброе время суток, товарищи.

Имеется следующий набор: SK-STM32F217 (на борту камень STM32F217ZG и PHY KS8721BL), JetLink Ultra и Keil в качестве среды разработки. Также присутствуют примеры от starterkit (чистый uIP, без операционки, переписанный видимо со старой отладки на STM32F1) и от STM (тот самый FreeRTOS с LwIP с сокетами, что так необходимы).

Изначально пример от STM без изменений не мог пройти инициализацию PHY вообще, застрявал на строке

Код
while (ETH_GetSoftwareResetStatus() == SET);


Разумно предположив, что PHY все-таки на SK-STM32F217 и STM322xG_EVAL разные, внес изменения в драйвер: переключил камень в RMII режим, изменил адрес регистра PHY на 0x1f. Инициализацию теперь проходит, но видимо теперь плата не обрабатывает никакие пакеты - ping не проходят, на HTTP запросы плата тоже не отвечает. Циклы FreeRTOS при этом крутятся, LwIP сыпет отладочную информацию в USART и как бы все хорошо. Пакеты только не обрабатываются. +(

После чего посмотрел повнимательнее, и узрел, что и GPIO настраивается несколько иначе: нужно добавить инициализацию PB11 для ETH _RMII_TX_EN, и убрать лишнее по аналогии с примером starterkit, что и было сделано. Теперь код инициализации проходит, но при ресете Ethernet-порт не мигает светодиодами как ему положено, из чего делаю вывод, что PHY не проинициализировался, хотя соответствующий код отработал.

Прилагаю код инициализации Ethernet, принципиальную схему платы и main.c.

Помогите пожалуйста разобраться, в чем же дело.

Оригинал примера от STM можно найти по ссылке http://www.st.com/internet/com/SOFTWARE_RE...x7_eth_lwip.zip


Посмотри вот сюда тыц
Под FREERtos то же самое - я пробовал. Правда у меня PHY микросхема RTL8200, и она на MII интерфейсе
the_spirit
Не могли бы вы еще раз выложить пофиксенный пример?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.