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

 
 
> STM32F107RB, ethernet не запускается., Какая-то мистика.
Atridies
сообщение Jun 24 2014, 19:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 445
Регистрация: 7-02-05
Из: Зеленоград
Пользователь №: 2 468



Пытаюсь запустить ethernet на обозначенном микроконтроллере. Взял из примера (LwIP c http-сервером) кусок, отвечающий за Ethernet, интегрировал его в свою программу и .... ничего не работает.

Доковырялся до следующего:
1. На строчке
Код
while (ETH_GetSoftwareResetStatus() == SET);
зависаем. Это - тупое ожидания снятия бита ETH_DMABMR_SR в регистре ETH->DMABMR.
Причем совсем иногда (не заметил коррелляции с чем-либо) перестает подвисать. Потом опять начинает. Видел на форумах замечания об этом, но не нашел решения.

2. Есть проблема с работой по MDC/MDIO (SMI - по наименованию st-шников). Т.е. MDC - четко выдает тактирование, а на MDIO - всегда единица (из-за подтяжки к питанию). Настроен так - как рекомендуют в Reference Manual: AF push-pull output - 50 Mhz.
Для передачи команды - используется функция из примера: ETH_WritePHYRegister.
Вроде и интерфейс банальный, и настройка элементарная - но никак не пойму в чем дело. Клок на GPIOA - включен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Jun 24 2014, 19:46
Сообщение #2


Гуру
******

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



Цитата(Atridies @ Jun 24 2014, 23:13) *
1. На строчке
Код
while (ETH_GetSoftwareResetStatus() == SET);
зависаем. Это - тупое ожидания снятия бита ETH_DMABMR_SR в регистре ETH->DMABMR.

Кажется, у меня такое было, когда снаружи не было подано тактирование на RMII CLOCK (или как там его). На днях при отладке новой платы повторилось, но не стал разбираться, так как было не актуально.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Jun 24 2014, 20:15
Сообщение #3


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(scifi @ Jun 24 2014, 23:46) *
...снаружи не было подано тактирование на RMII CLOCK (или как там его)...


угумс. банальный не пропай. обычно резонаторы, теплоёмкость выше - немного прогреть побольше на пол, секунду.
и вроде как ещё была фишка - когда нет кабелюки и включен автодетектирование скорости...

попробуйте воткнуть кабель, и коснуться резонатора. обычно сразу видно - что пошёл...светодиодики активируются и код дальше бежит...
Go to the top of the page
 
+Quote Post
Atridies
сообщение Jun 24 2014, 20:37
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 445
Регистрация: 7-02-05
Из: Зеленоград
Пользователь №: 2 468



Цитата(kolobok0 @ Jun 24 2014, 23:15) *
угумс. банальный не пропай. обычно резонаторы, теплоёмкость выше - немного прогреть побольше на пол, секунду.
и вроде как ещё была фишка - когда нет кабелюки и включен автодетектирование скорости...

попробуйте воткнуть кабель, и коснуться резонатора. обычно сразу видно - что пошёл...светодиодики активируются и код дальше бежит...


Да, спасибо, эта проблема решилась ! Действительно: при отсутствии клока на REF_CLK - сброс не снимается.

Но второй вопрос - пока не снят.
Go to the top of the page
 
+Quote Post



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

 


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


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