реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> STM32F107RBT6 + RTL8201BL + LwIP, не работает :(
squli
сообщение Oct 9 2012, 17:17
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 16
Регистрация: 7-08-10
Пользователь №: 58 798



Добрый вечер!

Имеется желание разобраться с ethernet в STM32F107. Сделана плата по схеме на картинке:
http://smotr.im/7Ukj

К плате взят пример LwIP в нем исправлены только части, касающиеся распиновки MII интерфейса, закомменчен LCD, сделан вывод дебажных сообщений по SWO, убран DHCP и включен вывод отладочных сообщений.
резет RTL к единице, пробовал в конец ETH_Init дописывать ETH_Start, не помогает, вроде бы все.

Подключаю плату к компу, комп видит непонятную сеть, скорость определяет, пинга нет. На разъеме езернета на плате горит линк, мигает нужный (100 или 10).
айди ртл считывается верно, в регистрах (нулевом и первом) все как и планировалось, только в регистре, считающем принятые пакеты - 0. В STM не попадаю в функцию разбора принятого пакета вообще.
На RX и ТX клоки по 25 МГц, на MDIO вроде данные, когда конфигурируется ртлка.
разъем с трансформатором проверил со всех сторон вроде. питание от усб. в настройках компа статический айпи и маска, ничего больше. вайршекер видит только пакеты от компа.
все многочисленные темы с RTL8201BL и не только, прочитаны не по разу уже. sm.gif)

в примере: http://www.st.com/internet/com/SOFTWARE_RE...WARE/an3102.zip должна ли пинговаться плата?
да и в общем, как завтавить все это работать?

спасибо!
Go to the top of the page
 
+Quote Post
smk
сообщение Sep 30 2013, 18:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Чем дело-то кончилось? Год как никак прошел.


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
bureau
сообщение Apr 28 2014, 05:32
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Кажется мне что проблема состоит в отсутствии прерываний на импульсы от вывода PHY:RXVD. Где-то писали что в коде происходит remapp пинов...
Кто-то уже сталкивался с подобным? Интересно на что еще придется нарваться при переделке проекта...
Go to the top of the page
 
+Quote Post
qwqw
сообщение Jan 18 2015, 23:27
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



Подниму тему, так как картина очень похожая.

Работаю с платой TE-STM32F107 от Терры.
Среда - IAR7.30.
Без ОС.
Пытаюсь запустить пример от ST.

Основное отличия моей платы от той для которой написан пример - другая микросхема физического уровня.
Прочитал кучу смежных тем, вроде бы правильно подправил пример.
Не работает. Не отвечает ни на arp запросы ни на пинги, соответственно.

Регистры PHY читаются правильно (проверил чтением ID из регистров PHY).
А пакеты от PHY не приходят.

Осциллографа под рукой сейчас нет.

На одном из форумов нашелся работающий проект под кейл (прямо под мою плату и тот самый пример). Собрал, запустил в keil'е - все работает (пинг и WebServer).
Перенес исходники в IAR. Собираю, прошиваю - не работает. При компиляции есть warning'и, но они по отладочным ф-ям стека.

Кто-нибудь запускал lwIP для STM32 под IAR?
Go to the top of the page
 
+Quote Post
den_po
сообщение Jan 19 2015, 07:31
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



Цитата(qwqw @ Jan 19 2015, 03:27) *
Подниму тему, так как картина очень похожая.
...
Основное отличия моей платы от той для которой написан пример - другая микросхема физического уровня.
Прочитал кучу смежных тем, вроде бы правильно подправил пример.
Не работает. Не отвечает ни на arp запросы ни на пинги, соответственно.
...
Кто-нибудь запускал lwIP для STM32 под IAR?

http://electronix.ru/forum/index.php?showtopic=123810 и эту?
Go to the top of the page
 
+Quote Post
qwqw
сообщение Jan 19 2015, 13:23
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



Еще раз внимательно пересобрал проект в IAR'е и он заработал.
Если кому понадобится, пишите в личку.
Go to the top of the page
 
+Quote Post
Aner
сообщение Jan 19 2015, 13:39
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



QUOTE (qwqw @ Jan 19 2015, 03:27) *
Подниму тему, так как картина очень похожая.

Работаю с платой TE-STM32F107
...

Кто-нибудь запускал lwIP для STM32 под IAR?

Давно запустили, отладили, оттестировали запустили в массы. Все там работает оч неплохо с lwIP, RTOS_ом под IAR_ом начиная с версии 5.8 до 7.3. Ну если конечно есть опыт, знания как и чего делать, всмысле не начитать с нуля и тне тупить.
Go to the top of the page
 
+Quote Post
qwqw
сообщение Feb 9 2015, 21:08
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



Плата стартует очень долго при отстутствии link'а (когда сетевой кабель не подключен).
Стал разбираться и обнаружил, что ф-ия инициализации ETH_Init(...) в примере вызывается однократно при старте платы.

При использовании AutoNegotation необходимо дождаться появления link'а чтобы произвести переговоры и настроить MAC по их результатам.
Соответственно, там все долго и висит пока счетчик не досчитает до предела и ф-я не "сдасться" так и не дождавшись link'а.
Понятно, что пример есть пример.

Не могу понять, как правильно реализовать этот механизм.
Так как плату могут переподключать к разным устройствам в процессе работы (перекоммутировать другой конец сетевого кабеля руками),
хочется чтобы процедура AutoNegotation выполнялась каждый раз при появлении link'а.
Посмотрел несколько даташитов на разные PHY, везде все одинаково: процедура переговоров подразумевает участие программы контроллера.
Вопрос: как оследить состояние link'а чтобы инициировать этот процесс? Неужели надо постоянно поллить соответствующий регистр PHY?
Go to the top of the page
 
+Quote Post
qwqw
сообщение Feb 11 2015, 08:16
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-11-05
Из: г. Москва
Пользователь №: 11 307



Посмотрел еще даташиты на разные трансиверы PHY. У них в комплекте с MDIO есть выход прерывания, который можно в том числе использовать для контроля link'а. Видимо RTL8201CP, который стоит на моей плате, - исключение. Он немного устарел, но по прежнему весьма популярен.

Я заведу сигнал со светодиода LED0 (выход RTL8201CP, 9 пин), который индицирует link на GPIO контроллера и буду по прерыванию его отслеживать.
Вроде логичное решение, но не нашел такого ни в одной схеме в сети.

Все же хотелось бы узнать: в проектах с RTL8201CP (или RTL8201BL) контроллер обычно поллит регистр для контроля состояния link'а?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01425 секунд с 7
ELECTRONIX ©2004-2016