|
STM32F107RB, ethernet не запускается., Какая-то мистика. |
|
|
|
Jun 24 2014, 19:13
|
Местный
  
Группа: Свой
Сообщений: 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 - включен.
|
|
|
|
|
 |
Ответов
|
Jun 25 2014, 13:56
|
Местный
  
Группа: Свой
Сообщений: 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-интерфейса.
|
|
|
|
|
Jun 25 2014, 20:34
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Atridies @ Jun 25 2014, 16:56)  Теперь задался вопросом - можно ли как-то сделать так, чтобы работал и USART2 и MDIO. Но похоже, что нет. Не предусмотрено переключение между Alternate Functions. Да, есть такая штука. Заявлено, что у процессора есть и та и другая периферия, а использовать одновременно и то и другое нет возможности. Столкнулся с этим, выбирал ARM от TI c 3 модулями McASP (EMAC и MMC/SD по возможности) и корпусе с минимальным количеством ног, чтоб плата по-проще получалась. Думал брать AM1705/AM1707, у них как раз по три модуля McASP. Так оказалось используют одни и те же ноги и заюзать все три невозможно. Цитата(Atridies @ Jun 25 2014, 16:56)  Жаль, теперь только вручную дергать ножки SMI-интерфейса. Это, конечно, можно, но как-то некрасиво.
|
|
|
|
|
Jun 26 2014, 06:42
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(jcxz @ Jun 26 2014, 08:58)  С McASP имхо проще - в нём обычно несколько сериализаторов. Я на один McASP умудрялся до 4-х микросхем навешивать и это всего занимало 4 сериализатора из 16-и. И не нужно было два - всё на одном McASP сидело. Это так (если всё синхронно и один клок на все Ваши 4 канала), но мне необходимо было, чтоб каждый из модулей был независим от остальных, т.е. главное устройство внешнее (соответственно их три и, вероятно, они несинхронны) и оно задаёт клоки для McASP. Немного подзабыл, но, как помню, такой вариант там не прокатывал, что-то использовало одни и те же ноги, пришлось выбирать другое решение.
|
|
|
|
Сообщений в этой теме
Atridies STM32F107RB, ethernet не запускается. Jun 24 2014, 19:13 scifi Цитата(Atridies @ Jun 24 2014, 23:13) 1. ... Jun 24 2014, 19:46 kolobok0 Цитата(scifi @ Jun 24 2014, 23:46) ...сна... Jun 24 2014, 20:15  Atridies Цитата(kolobok0 @ Jun 24 2014, 23:15) угу... Jun 24 2014, 20:37 scifi Цитата(Atridies @ Jun 24 2014, 23:13) 2. ... Jun 24 2014, 21:11 adnega В STM32F407 и новее нет проблем с рамипингом. Прав... Jun 26 2014, 05:00
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|