Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работает наполовину. Странно... Подскажите, где может быть ошибка.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Gemm
Нашел на форуме достаточно информации, вопросов, советов по по этой теме, но не помогло.

ARM AT90RM9200 + PHY RTL8201BL + транс с разъемом LU1T516-43. PHY подключил по схемке, которая валяется здесь на форуме: ANE (37 нога), DUPLEX (38), SPEED (39), LDPS (41), MII (44) подтянуты к питанию (без резисторов). RPTR (40), ISOLATE (43) - к земле. Светодиодные выходы, которыми еще и задается адрес вначале подтянул все к 0. По поводу схемы подключения PHY к трансу. Тут на форуме много написано, как правильно подключать центральный выход обмотки... короче я его оставил висящим, как здесь и рекомендовали. На отладочной плате, которую мы купили у аргуссофта, этот выход подтянут к питанию через бусинку, но там PHY DM9161 стоит. Да еще у них перемычкой, напаянной сверху, средние точки Rx и Tx закорочены...

Теперь о траблах. Запитываю плату. Вначале, когда адресные концы на нулях были, ничего не светилось (это правильно?). Когда подтянул PHYADR0 к единице, светодиодики заморгали. Я так понимаю, PHY работает: втыкаю 10Мбит - светится один светодиод, 100Мбит - другой. Регистры его читаю нормально. Запускаю прогу, которую написали для Аргусовой платы под DM9161 (только обнулив AT91C_EMAC_RMII в EMAC_CF, тк сейчас не reduce MII). Принимать пакеты - принимает, отправлять не хочет... В чем может быть дело? Может у кого похожие проблемы были... как локализовать, где неработоспособность конкретно...
d__
Не должен софт под DM работать с RTL, там другие регистры внутрях. Поэтому надо взять ETH драйвер от Линукса и посличать. Отличий там немного, но они существенны для инициализации PHY. Желаю успехов.
Gemm
Цитата(d__ @ May 23 2007, 20:41) *
Не должен софт под DM работать с RTL, там другие регистры внутрях. Поэтому надо взять ETH драйвер от Линукса и посличать. Отличий там немного, но они существенны для инициализации PHY. Желаю успехов.


Спасибо за пожелание.

Мы не используем пока ни Линукс, ни другую ОС. Может подскажете, неправильная настройка каких параметров может привести к таким симптомам. Когда стоял DM, мы не меняли ничего в нем - все значения по умолчанию были и все работало. Единственное - читали скорость и дуплекс, это требуется для настройки регистров АРМа.

И самое неприятное - то, что я не пойму, где ошибка. Неверная настройка регистров АРМа? Регистров PHY? Подключение К трансу? Плохая разводка (хотя не должно - четырехслойка, отдельная аналоговая земля, отдельное питание - все на бусинках висит).
IgorKossak
Цитата(Gemm @ May 23 2007, 20:38) *
...Плохая разводка (хотя не должно - четырехслойка, отдельная аналоговая земля, отдельное питание - все на бусинках висит).

Это врядли. У меня связка ATmega32+W3150+RTL8201BL+LU1T516-43 и на двух слоях прекрасно на 100М работает.
Хотя такая связка может и не аргумент.
Gemm
Цитата(IgorKossak @ May 23 2007, 22:27) *
Это врядли. У меня связка ATmega32+W3150+RTL8201BL+LU1T516-43 и на двух слоях прекрасно на 100М работает.
Хотя такая связка может и не аргумент.

Можно посмотреть вашу схему подключения PHY к трансу.
IgorKossak
Цитата(Gemm @ May 23 2007, 21:54) *
Можно посмотреть вашу схему подключения PHY к трансу.

Брал отсюда. Трансы аналогичные.
Gemm
Цитата(IgorKossak @ May 24 2007, 01:00) *
Брал отсюда. Трансы аналогичные.


Интересно. У меня аналогичная схема для моего RTL8201BL. Там средние точки висят в воздухе. А здесь, для RTL8201CL/CP, они к 2.5 В подключены. Незнаю, щас попробую так... Нашел один косячок, но не думаю, что это существенно. В нашей плате танталовый конденсатор в цепи PWFBIN - PWFBOUT не 20 мкФ, как рекомендовано, а 10. Не думаю, что это критично. 2.5 вольта держится, я мерял..
Gemm
Попробовал схему - не заработало. Не помогла и замена кондера на 20мкФ. Шлю в цикле пакет - светодиодик "Link 100-Activity" мигает, "Link" и "Full duplex" светятся, типа все нормально. На свиче, куда подключена плата тоже мигает соответствующий светодиодик... а пакетов в сетке нету... crying.gif
Gemm
При передаче нет данных на линиях TXD2, TXD3 - 3.3 всегда. На TXD0 и TXD1 все нормально. Эти пары находятся на разных портах (PB, PA соответственно)...
Mc_off
Цитата(Gemm @ May 26 2007, 14:06) *
При передаче нет данных на линиях TXD2, TXD3 - 3.3 всегда. На TXD0 и TXD1 все нормально. Эти пары находятся на разных портах (PB, PA соответственно)...


Возможно сопли на питание...
Возможно так выдает контроллер.
В любом случае это уже некоторая локализация проблемы.
Gemm
Цитата(Mc_off @ May 26 2007, 23:00) *
Возможно сопли на питание...
Возможно так выдает контроллер.
В любом случае это уже некоторая локализация проблемы.

Проблема решена yeah.gif . Человек, который писал самый низкий уровень, использовал функцию AT91F_EMAC_CfgPIO из файла lib_AT91RM9200.h. Я не знаю, откуда этот файл - то-ли с ИАРом пришел, то-ли с Атмела скачали, но мы его активно пользуем. Эта функция назначает нужную периферию для выводов порта А. Для RMII этого хватает, а для MII нужно это сделать и для некоторых линий порта B.

Я вот только не могу понять, как работал прием корректно...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.