|
|
  |
W3150A+RTL8201BL, RTL8201 стартует через раз |
|
|
|
Jun 2 2007, 16:50
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Схема из рекомендаций к W3150A, за тем лишь исключением, что забыли резисторы подтяжки PHYAD0...4, но насколько я понял даташит, этот адрес используется только при общении через ноги MDC, MDIO (я прав?), а они у меня не используются. Ресет на обе микросхемы подается с ноги процесора. Симптомы: запускаю проц. Система не пингуется, визнет при попытке передачи зависает в состоянии ARP. Останавливаю проц, рестартую программу - все работает. Останавливаю, рестартую - снова не работает. Снова рестартую - работает. Если в состоянии "не работает" подать ресет пинцетом только на RTL8201 - все начинает работать. Пробовал задерживать ресет 8201 RC-цепочкой - не помогает. Оторвал ресет RTL8201 от схемы, оставил только подтяжку - все работает, но это не решение. На трех ногах PHYAD висят светодиоды, проверял - уровень на них в ресете выше половины питания, т.е. адрес должен защелкнуться ненулевой и 8201 не должа войти в power down. Эффект стабильно повторяется на 9 платах. Смущает, что предыдущая версия этой же платы на W3100A и такой же RTL8201BL работала прекрасно без этих подтяжек. Какие будут мысли у коллег, что ей не нравится теперь?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 2 2007, 21:30
|
Частый гость
 
Группа: Новичок
Сообщений: 84
Регистрация: 24-05-07
Пользователь №: 27 947

|
Цитата(Сергей Борщ @ Jun 2 2007, 20:50)  ...уровень на них в ресете выше половины питания, т.е. адрес должен защелкнуться ненулевой и 8201 не должа войти в power down А Вы проверьте на всякий случай осциллографом - в power down кварц не запускается.
|
|
|
|
|
Jun 14 2007, 14:32
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Сергей Борщ @ Jun 2 2007, 19:50)  Система не пингуется, визнет при попытке передачи зависает в состоянии ARP. Останавливаю проц, рестартую программу - все работает. Останавливаю, рестартую - снова не работает. Снова рестартую - работает. Фууух... Разобрался. Красивые грабли себе подложил. Если вдруг кто-то наступит, вот что было: Один из выводов ADDR/LED RTL8201 используется как сигнал FullDuplex для W3150. При включении питания емкости разряжены, RTL считывает с вывода ноль и считает активным уровнем высокий. Договорившись со свичем о Full-Duplex, RTL выставляет активный (высокий) уровень на этот вывод. В то время как W3150 ожидает, что высокий уровень сигнализирует о Half Duplex. Все не работает. Делаю сброс RTL8201. На емкостях вывода держится выкий уровень, который считывается RTL как ADDR и сигнализирует, что активным уровнем будет низкий. Договорившись со свичем RTL выставляет низкий уровень, все работает. Снова делаю сброс - круг повторяется. Такой вот забавный триггер получился. Найдя и устранив эту ошибку обнаружил, что в старой версии платы (с W3100) резистор подтяжки был, но то ли разводчик неправильно понял мои указания когда менял 3100 на 3150, то ли проявил инициативу - факт, что резистор исчез. Кто виноват теперь уже установить не удатся - два месяца назад он уволился.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jun 16 2007, 07:21
|
Участник

Группа: Новичок
Сообщений: 40
Регистрация: 26-05-05
Пользователь №: 5 438

|
Цитата(Сергей Борщ @ Jun 14 2007, 18:32)  Фууух... Разобрался. Красивые грабли себе подложил. Если вдруг кто-то наступит, вот что было: Один из выводов ADDR/LED RTL8201 используется как сигнал FullDuplex для W3150. При включении питания емкости разряжены, RTL считывает с вывода ноль и считает активным уровнем высокий. Договорившись со свичем о Full-Duplex, RTL выставляет активный (высокий) уровень на этот вывод. В то время как W3150 ожидает, что высокий уровень сигнализирует о Half Duplex. Все не работает. Делаю сброс RTL8201. На емкостях вывода держится выкий уровень, который считывается RTL как ADDR и сигнализирует, что активным уровнем будет низкий. Договорившись со свичем RTL выставляет низкий уровень, все работает. Снова делаю сброс - круг повторяется. Такой вот забавный триггер получился. Найдя и устранив эту ошибку обнаружил, что в старой версии платы (с W3100) резистор подтяжки был, но то ли разводчик неправильно понял мои указания когда менял 3100 на 3150, то ли проявил инициативу - факт, что резистор исчез. Кто виноват теперь уже установить не удатся - два месяца назад он уволился. Ребята у меняы проблема небольшая тоже появилась, наверное что то в схематике. У меня модуль на Визнете и РТЛ работает нормально со свичом, а если крос линком к компу подсоединяю то даже не пингуется. Может у кого есть какие нибудь догадки или уже сталкивался с этим
|
|
|
|
|
Jul 3 2007, 09:33
|
Участник

Группа: Участник
Сообщений: 68
Регистрация: 19-07-06
Пользователь №: 18 918

|
Цитата(siriasis @ Jun 16 2007, 11:21)  Ребята у меняы проблема небольшая тоже появилась, наверное что то в схематике. У меня модуль на Визнете и РТЛ работает нормально со свичом, а если крос линком к компу подсоединяю то даже не пингуется. Может у кого есть какие нибудь догадки или уже сталкивался с этим Я так понимаю линк есть... Нужно проверить адрес шлюза установленный в модуле. Для того чтоб с компом была связь адрес шлюза и адрес компа должны совпадать. У меня все работало.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|