|
Работает наполовину. Странно... Подскажите, где может быть ошибка., ARM AT90RM9200 + PHY RTL8201BL + транс с разъемом LU1T516-43 |
|
|
|
May 23 2007, 08:48
|

Участник

Группа: Свой
Сообщений: 61
Регистрация: 2-08-05
Из: Коломна
Пользователь №: 7 283

|
Нашел на форуме достаточно информации, вопросов, советов по по этой теме, но не помогло.
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). Принимать пакеты - принимает, отправлять не хочет... В чем может быть дело? Может у кого похожие проблемы были... как локализовать, где неработоспособность конкретно...
|
|
|
|
|
 |
Ответов
|
May 23 2007, 17:38
|

Участник

Группа: Свой
Сообщений: 61
Регистрация: 2-08-05
Из: Коломна
Пользователь №: 7 283

|
Цитата(d__ @ May 23 2007, 20:41)  Не должен софт под DM работать с RTL, там другие регистры внутрях. Поэтому надо взять ETH драйвер от Линукса и посличать. Отличий там немного, но они существенны для инициализации PHY. Желаю успехов. Спасибо за пожелание. Мы не используем пока ни Линукс, ни другую ОС. Может подскажете, неправильная настройка каких параметров может привести к таким симптомам. Когда стоял DM, мы не меняли ничего в нем - все значения по умолчанию были и все работало. Единственное - читали скорость и дуплекс, это требуется для настройки регистров АРМа. И самое неприятное - то, что я не пойму, где ошибка. Неверная настройка регистров АРМа? Регистров PHY? Подключение К трансу? Плохая разводка (хотя не должно - четырехслойка, отдельная аналоговая земля, отдельное питание - все на бусинках висит).
|
|
|
|
|
May 23 2007, 18:54
|

Участник

Группа: Свой
Сообщений: 61
Регистрация: 2-08-05
Из: Коломна
Пользователь №: 7 283

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

Участник

Группа: Свой
Сообщений: 61
Регистрация: 2-08-05
Из: Коломна
Пользователь №: 7 283

|
Цитата(IgorKossak @ May 24 2007, 01:00)  Брал отсюда. Трансы аналогичные. Интересно. У меня аналогичная схема для моего RTL8201BL. Там средние точки висят в воздухе. А здесь, для RTL8201CL/CP, они к 2.5 В подключены. Незнаю, щас попробую так... Нашел один косячок, но не думаю, что это существенно. В нашей плате танталовый конденсатор в цепи PWFBIN - PWFBOUT не 20 мкФ, как рекомендовано, а 10. Не думаю, что это критично. 2.5 вольта держится, я мерял..
|
|
|
|
|
May 26 2007, 19:00
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 2-01-07
Из: Ростовская область
Пользователь №: 24 044

|
Цитата(Gemm @ May 26 2007, 14:06)  При передаче нет данных на линиях TXD2, TXD3 - 3.3 всегда. На TXD0 и TXD1 все нормально. Эти пары находятся на разных портах (PB, PA соответственно)... Возможно сопли на питание... Возможно так выдает контроллер. В любом случае это уже некоторая локализация проблемы.
|
|
|
|
|
May 26 2007, 20:35
|

Участник

Группа: Свой
Сообщений: 61
Регистрация: 2-08-05
Из: Коломна
Пользователь №: 7 283

|
Цитата(Mc_off @ May 26 2007, 23:00)  Возможно сопли на питание... Возможно так выдает контроллер. В любом случае это уже некоторая локализация проблемы. Проблема решена  . Человек, который писал самый низкий уровень, использовал функцию AT91F_EMAC_CfgPIO из файла lib_AT91RM9200.h. Я не знаю, откуда этот файл - то-ли с ИАРом пришел, то-ли с Атмела скачали, но мы его активно пользуем. Эта функция назначает нужную периферию для выводов порта А. Для RMII этого хватает, а для MII нужно это сделать и для некоторых линий порта B. Я вот только не могу понять, как работал прием корректно...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|