Перейти к содержанию
    

Проблема с запуском Wiznet W5100

К w5100 я подкинул m328 по spi. Тут все нормально - в регистры пишется и считывается. Я сначала дергаю ногу сброса, потом делаю софтовый сброс, потом гружу в w5100 мак адрес, адрес шлюза, маску подсети и ip адрес. Все стандарно. Хотелось бы послать пинг и получить ответ. К сожалению, когда подключаю кабель, компьютер ни как не реагирует. Кабель всякий пробовал. В том числе и перевернутый. Резистор 1М параллельно кварцу повесил - без него регистры не писались/читались. Когда втыкаю пачкорд, что идет на общую сеть, начинает

мигать желтый светодиод, пару раз загорался зеленый. Воткнул перекрестным к ноутбуку - ноль реакции. Не видит сетевуха компьютера. Все прозвонил на наличие нужных питаний и отсутсвие замыканий. Остается поменять микросхему и транс. Что еще можно глянуть? Нуждаюсь в свежей мысли по сабжу.

1.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остается поменять микросхему и транс. Что еще можно глянуть?
В схеме криминала не видно. А трансформатор точно того типа, что указан на схеме? Другой тип может быть с другой цоколевкой, отношением витков и соединением обмоток. И что с инициализацией? Возможно, собака порылась в ней?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В схеме криминала не видно. А трансформатор точно того типа, что указан на схеме? Другой тип может быть с другой цоколевкой, отношением витков и соединением обмоток. И что с инициализацией? Возможно, собака порылась в ней?

 

Вот такой транс. Попробую микросхему поменять. Может поджарил случайно. Как я выше писал, если воткнуть пачкорд сети, начинает через полминуты мигать желтый светодиод изредка. Значит принимает вероятно схема, но не передает.

 

Инициализация:

 

u8_t config_gateway[4]= {192,168,2,4};
u8_t config_subnet_mask[4] = {255,255,255,0};
u8_t config_mac_address[6] = {0x00, 0x08, 0xDC, 0x01, 0x02, 0x03};
u8_t config_ip_address[4] = {192,168,2,41};

      W5100_Reset_Init();
      W5100_CS_Init();

      W5100_Reset_On();
      OS_Ttimer_Delay(0.5*SEC);
      W5100_Reset_Off();
      OS_Ttimer_Delay(0.5*SEC);

      setMR(MR_RST);

      OS_Ttimer_Delay(0.5*SEC);

      Wiz_WR(MR,0);
      Wiz_WR(IMR,0);
      Wiz_WR(RTR0,0x0F);
      Wiz_WR(RTR0+1,0xA0);
      Wiz_WR(RCR,0x08);

      setGAR(config_gateway);              // Set default gateway
      setSHAR(config_mac_address);         // Set mac address
      setSUBR(config_subnet_mask);         // Set subnet mask
      setSIPR(config_ip_address);          // Set ip address

DOC000223145.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем сделал я вторую плату - те же яйца. W5100 тепленькая, пишу в нее данные, читаю - все как надо. А сеть не видит. Пробовал и другой разъем подкидывать, и питатель менял и схему многократно вызванивал. Отличие от референца только, что на земле адрес и данные. Но это, как я понимаю, влияет только на работу с регистрами. Остаеттся только кварц поменять - вдруг перемаркированный :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может быть ошибка в процедуре записи/чтения регистров? Может вы пишете не туда? И вместо правильной маски и IP записывается что-то другое?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем сделал я вторую плату - те же яйца. W5100 тепленькая, пишу в нее данные, читаю - все как надо. А сеть не видит. Пробовал и другой разъем подкидывать, и питатель менял и схему многократно вызванивал. Отличие от референца только, что на земле адрес и данные. Но это, как я понимаю, влияет только на работу с регистрами. Остаеттся только кварц поменять - вдруг перемаркированный :)

 

У вас скорость/дуплекс принудительно ногами выставлена или в auto negotiation? Такая же беда была когда выставлял принудительно 10мбит. Комп не видел сети. Весь извелся, уже почти отчаялся, втыкаю мой W5100 в китайский свитч - работает свинота! Показывает 10 мбит. Втыкаю в комп - не работает - нет сети. Втыкаю в свитч комп и W5100 - все пингуется, все ок. Что за беда - непонятно, на компе пробовал в параметрах сетевухи и auto negotiation, и принудительно 10 мбит - ну не видит и все тут. А когда ставил на W5100 auto negotiation и на компе auto negotiation - сеть появляется, все работает на 100 мбит. Любые другие настройки на компе или W5100 (в части дуплекса и 10/100мбит)- сеть пропадает. А если через свитч - в любой конфигурации работает. Вот такая загадка китая... Кстати, не удивляйтесь что греется, это для нее похоже нормально, уже больше 100 девайсов на ней спаяли - все ок, некоторые уже 5 лет пашут...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может быть ошибка в процедуре записи/чтения регистров? Может вы пишете не туда? И вместо правильной маски и IP записывается что-то другое?

В этом плане я почти уверен. Я сначала записываю IP, маску, MAC, потом считываю по SPI 100 байт в буфер и вижу драконом как записанные данные в ячейках соответсвующих карте памяти, так и значия, выставляемые при сбросе самой микросхемой - размер буфер приема и передачи = 0x55, тоже в правильном месте. Тем не мене, прикручу родной драйвер, да попробую им.

 

По поводу auto negotiation - ноги OPMODE2-0 микросхемы, которыми задается режим работы PHY у меня сидят на земле - срисовал так с референсной схемы. Я пробовал в настройках сетевой карты компьютера менять настройки скорости. При переключении кратковременно загорается желтый сведодиод моей платы - FDXLED. Если поставить 10 мбит, то постоянно горит зеленый - LINKLED. Все это вселяет надежду, что дело не такое уж и пропащее :) Отчикаю от земли ноги OPMODE2-0 и попробую другие комбинации. Также думаю отчикать от земли адресные ноги и ноги данных - много пересмотрел схем на сабже, везде они в воздухе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, не удивляйтесь что греется, это для нее похоже нормально, уже больше 100 девайсов на ней спаяли - все ок, некоторые уже 5 лет пашут...

..уважаемый, не могли бы вы выложить вашу схему включения этой микросхемы , спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

..уважаемый, не могли бы вы выложить вашу схему включения этой микросхемы , спасибо.

Да рефренс один в один, адреса, данные - в воздухе, читаю/пишу тоже через SPI, тока резисторы на трансе не 49.9 Ом, а что под рукой доступное есть - 56 Ом паяем, на 10 мбит все нормально в условиях пром. помех на длине линии аж 270 м. 100 мбит - поменьше, стабильно работало где-то на 90м, длиннее - линк пропадал время от времени. Если сильно нагревается - пропадает линк, поэтому ставим маленькие радиаторы. Ну и бывает у нее - зависает - хз от чего. Поначалу (в 2007) вобще непонятно из-за чего было. Недавно смотрел - errata появилась. На одну из проблем китайцы (или корейцы ли) говорят: мол решение как обойти проблему не найдено. Но у нас софт постоянно к девайсу по сети лезет, поэтому мне легко отловить зависание. Нет обращений - ресет, железный, прямо ногой reset, и конфигурирование заново. Да, ноги OPMODE все соединил вместе и повесил на одну из ног проца. Получается молу делать либо auto negotiation, либо 10 мбит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, схема проста как валенки. В полном объеме в референсе представлена. Вот еще образцы..

 

А в моей проблеме наметился просвет. Лопухнулся я - оставил GNDA висеть в воздухе. Внутри чипа она наверное связана с цифровой землей (или погорела :) ) - сопротивление ом 10, когда тестером по ногам проверял не увидел. А сегодня стал мерять уровни на ногах и увидел, что какого-то на GNDA 0.8 вольта висит. Соединил с общей землей и линк поднялся. Правда только на 10 мбитах принудительно выставленных и без пинга, но уже лучше - втыкаешь кабель, сразу в трее значок появляется.

post-1263-1347514196_thumb.png

Arduino_Ethernet_v112pg.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем запустился дивайс. Пингуется на 100 мегабитах, определяется с полтыка. Как я говорил - причина неработы в висящем в воздухе сигнале GNDA. Работает на плате, где адресные сигналы и данных сидят на земле. На прямом пачкорде компьютер не видит плату. Только на кроссовом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На прямом пачкорде компьютер не видит плату. Только на кроссовом.

Странно, у меня и с прямым, и с кроссовым работает при auto negotiation

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Странно, у меня и с прямым, и с кроссовым работает при auto negotiation

Попробовал прямой кабель, действительно отлично работает. Возможно пачкорд кривой до этого пробовал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, схема проста как валенки. В полном объеме в референсе представлена. Вот еще образцы..

..спасибо, а такой вопрос - если шину данных / адреса w5100 я на асинхронную шину блекфина повешу - напрямую заработает или надо костыли какие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

vesago, а почему у Вас два сигнала W_SCS и W_SEN подвешены к +U пит. ?

 

там же надо (в WIZ811MJ так) /SCS выбирать, а SEN через инвертор подается на др. вход. А у Вас оба в + 3,3.

 

И если выбор SPI, то /SCS активен в лог. нуле, зачем его подвешивать на + 3,3 ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...