Уже ничего не соображаю

Собственно ситуация выглядит следующим образом:
Разработку кода начал для платы от Олимекса. Там стоит микросхема от Микрела ksz8721bl (кажется не ошибся). Свой код разрабатывал на базе примеров от FreeRTOS которые написаны под плату разработчика от Атмела там тоже другая микросхема физического уровня. Пошагово проанализировал код, прочитал документацию, разобрался что к чему, подправил код - запустил работу с сетью на плате Олимекса. Но програма разрабатывается для устройства где в качестве чипа физуровня будет использоваться Риалтековская rtl8201bl. Но когда попробовал запустить код на пробной новой плате устройства возникла проблема - никак не могу заставить заработать чип сети. В качестве управляющего процесора используется ATSAM7X256. Разница между Олимексовской платой разработчика и спроектированным устройством в том, что на плате разработчика все управляющие ножки (включая конфигурационные) чипа физуровня подключены на ножки процесора, то-есть ими можна управлять, а на разработаном устройстве конфигурационные ножки посаженны резисторами на ноль или питание. А именно:
44 (MII), 41 (LDPS), 39 (SPEED), 38 (DUPLEX), 37 (ANE), 9 (PHYAD0) подтянуты к питанию;
43 (ISOLATE), 40 (RPTR) и остальные ножки установки адреса чипа посаженны на ноль.
То-есть чип должен бы быть сконфигурированным на адрес 1, автосогласование скорости, интерфейс MII.
Кроме того 24 ножка (режим UTP) резистором посажена на ноль.
Конфигурация модуля сети в процесоре используется одинаковая для обоих плат. Для Олимексовской платы дополнительно добавляется програмная конфигурация нескольким ножек. Дальше я пробую считать регистры ID чипа физуровня. Выполняется один и тот же код. Интерфейс управления стандартизованный. На Олимексовкой плате всё работает, на разработаной плате никак не могу запустить чип. При этом поведение его весьма странно.
Во-первых после подачи питания (при подключенном кабеле сети), что-бы я с ним не делал светодиоды статуса не загораются, сеть не появляется. Но если он постоит минут 10-20 (всё это время в цикле програма опрашивает его регистры), то вдруг появляется сеть (при этом канал управления всё равно не работает). Если переподключить кабель сети или питание, сеть появляется сразу, но если выключить питание минут на 20, то опять он минут 10 не реагирует на сеть.
А во вторых, подозревая, что конфигурация номера чипа может быть немного неправильной (немножко некоректно подключенны диоды статуса к ножкам установки номера), в програме я запустил по бесконечному циклу с выводом результатов на USB опрос регистров ID чипа постоянно изменяя номер чипа от которого я хочу получить ответ. Так вот, если код запускается на Олимексовской плате - все работает коректно, при обращении по правильному номеру чипа приходит нужный ответ, на все остальные запросы возвращается FF. При использовании кода на разработаной плате какие-то непонятные ответы приходят на номера 1, 2, 4, 8, 16 (то-есть один бит единицы, остальные 0), при этом от цикла к циклу цифры меняются (чипу выставлен номер 1).
Возможно я что-то не учёл, но вроде бы уже досконально изучил документацию, проверил схему, осцилографом посмотрел ножки конфигурации, вроде бы помехи нигде не пролазят. Разработчик платы, говорит, что этот чип физуровня именно в такой обвязке у него работает в другом устройстве где управление заводиться от ПЛИСок. Сделано три экземпляра платы, на всех одни и те же симптомы.
Как можно ещё попробовать локализировать проблему? Даже не знаю она на уровне железа или программы.
Помогите, пожалуйста

Спасибо
Сообщение отредактировал OlegHmt - Dec 21 2006, 00:07