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

 
 
> 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
Ответов
doom13
сообщение Jun 24 2014, 21:14
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Цитата(Atridies @ Jun 24 2014, 22:13) *
2. Есть проблема с работой по MDC/MDIO (SMI - по наименованию st-шников). Т.е. MDC - четко выдает тактирование, а на MDIO - всегда единица (из-за подтяжки к питанию). Настроен так - как рекомендуют в Reference Manual: AF push-pull output - 50 Mhz.
Для передачи команды - используется функция из примера: ETH_WritePHYRegister.
Вроде и интерфейс банальный, и настройка элементарная - но никак не пойму в чем дело. Клок на GPIOA - включен.

pinmux-a там никакого не может быть с неверной настройкой?
Go to the top of the page
 
+Quote Post
Atridies
сообщение Jun 25 2014, 13:56
Сообщение #3


Местный
***

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



Цитата(doom13 @ Jun 25 2014, 01:14) *
pinmux-a там никакого не может быть с неверной настройкой?


Да, дело оказалось в этом. Я хотел использовать USART2_RX, а USART2_TX - как раз приходится на ту же ножку, что и MDIO (PA2, ножка 16).
Выключил USART2 - и все стало нормально работать.

Теперь задался вопросом - можно ли как-то сделать так, чтобы работал и USART2 и MDIO. Но похоже, что нет. Не предусмотрено переключение между Alternate Functions.
Жаль, теперь только вручную дергать ножки SMI-интерфейса.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:44
Рейтинг@Mail.ru


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