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

Всем привет. У кого получится подсказать мне буду очень рад и благодарен.

Я пробую сконфигурировать Atheros AR8035 ethernet PHY.

Отправляю на его вход MDIO след. последовательность (из доки)

1...1(32единицы)01(ST)10(OP)00100(PHYAdd)00010(RegAdd - PHY Identifier)z

После этого он должен мне ответить вот это: 16’h004D

Но он не отвечает. Что не так? Что забыл?

 

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


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

Нужно быть точно уверенным что правильно выбран PHYAdd, к примеру нужно проверить LED_ACT (это средняя единица в вашем коде PHYAdd), при включении там на ножке должна быть 1. Чтобы это понять нужно увидеть схему, что к этой ножке подключено? А проще перебрать программно три младших бита PHYAdd и на какой то код она должна ответить. Скорее всего в середине PHYAdd 0.

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


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

Нужно быть точно уверенным что правильно выбран PHYAdd, к примеру нужно проверить LED_ACT (это средняя единица в вашем коде PHYAdd), при включении там на ножке должна быть 1. Чтобы это понять нужно увидеть схему, что к этой ножке подключено? А проще перебрать программно три младших бита PHYAdd и на какой то код она должна ответить. Скорее всего в середине PHYAdd 0.

Прикол в том... только не смеяться))) я уже перебрал все возможные PHYAdd 5bit - 32 штуки))) Кстати, забыл сказать, что я смотрю через ChipScope то, что отправляю и то, что получаю.

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


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

Я недавно цеплял тоже PHY, как раз в адресе ошибся, как исправил так сразу ответила. Использовал код отсюда:

http://micropendousx.googlecode.com/svn/tr...ebserver/mdio.c

И что PHY отвечает? 1 или 0. Проверить что вы правильно принимаете от PHY (нужно правильно и во время переключиться на вход), для этого притянуть резистором сначала на 1 (он там должен быть Management data, 1.5K pull-up) т.е. в ответе 16’hFFFF (это если PHI не отвечает) , а затем его отключить и к 0 подтянуть, тогда у вас в ответе будет 16’h0000, опять же если PHI не отвечает . Моя PHY переключалась о начинала отвечать через 40нс.

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


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

Я недавно цеплял тоже PHY, как раз в адресе ошибся, как исправил так сразу ответила. Использовал код отсюда:

http://micropendousx.googlecode.com/svn/tr...ebserver/mdio.c

И что PHY отвечает? 1 или 0. Проверить что вы правильно принимаете от PHY (нужно правильно и во время переключиться на вход), для этого притянуть резистором сначала на 1 (он там должен быть Management data, 1.5K pull-up) т.е. в ответе 16’hFFFF (это если PHI не отвечает) , а затем его отключить и к 0 подтянуть, тогда у вас в ответе будет 16’h0000, опять же если PHI не отвечает . Моя PHY переключалась о начинала отвечать через 40нс.

 

Ответ от PHY я пытаюсь поймать при помощи VIO (это модуль в xilinx-е который работает с ChipScope). На PHY на вход MDC подаю клок 2.5 mhz, а на MIDIO (он кстати двунаправленный I/O) подаю 1...1 01 10 00001 00010 z. На ChipScope вижу только то, что отправляю, потом период с z-состоянием (во время которого должен прийти ответ от PHY). Так как MIDIO двунаправленный, я полагаю, что после получения моих нулей и единиц он должен по той же линии сам ответить. Там еще есть выход INT (interrupt) c которым я ничего не делаю. Может быть нужно сам чип как-то запустить? Может быть он в состоянии сброса?

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


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

Ответ от PHY я пытаюсь поймать при помощи VIO (это модуль в xilinx-е который работает с ChipScope). На PHY на вход MDC подаю клок 2.5 mhz, а на MIDIO (он кстати двунаправленный I/O) подаю 1...1 01 10 00001 00010 z. На ChipScope вижу только то, что отправляю, потом период с z-состоянием (во время которого должен прийти ответ от PHY). Так как MIDIO двунаправленный, я полагаю, что после получения моих нулей и единиц он должен по той же линии сам ответить. Там еще есть выход INT (interrupt) c которым я ничего не делаю. Может быть нужно сам чип как-то запустить? Может быть он в состоянии сброса?

 

Из datasheet:

 

RSTn Pin 1 I(Input) System reset, active low. Requires an external pull-up resistor

 

 

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


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

Из datasheet:

 

RSTn Pin 1 I(Input) System reset, active low. Requires an external pull-up resistor

 

Т.е. я должен на RSTn подать единицу ?

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


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

Т.е. я должен на RSTn подать единицу ?

А у Вас как цепочка сброса выполнена?

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


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

А у Вас как цепочка сброса выполнена?

 

Не знаю. На самом фи есть RSTn в доке написано только это: System reset, active low. Requires an external pull-up resistor. Pin1 и Тип инпут.

 

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


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

Не знаю. На самом фи есть RSTn в доке написано только это: System reset, active low. Requires an external pull-up resistor. Pin1 и Тип инпут.

Я в шоке.Ну организуйте хотя бы RC цепочку для сброса,или с порта FPGA(CPU) сформируйте нужный импульс.

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


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

Я в шоке.Ну организуйте хотя бы RC цепочку для сброса,или с порта FPGA(CPU) сформируйте нужный импульс.

 

RSTn соединен с ножкой на плисине, а та в свою очередь через R217 1K 1/10w на зеилю. На самой плисине я формирую импульс который в случае срабатывания rst выдает 0, а в случае clk выдает 1-цы

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


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

RSTn соединен с ножкой на плисине, а та в свою очередь через R217 1K 1/10w на зеилю. На самой плисине я формирую импульс который в случае срабатывания rst выдает 0, а в случае clk выдает 1-цы

Ну а чего же тогда говорили "не знаю"?

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


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

Ну а чего же тогда говорили "не знаю"?

 

Я не знаю как с RSTn положено работать. И как через него завести chip. Может быть из-за того что я на него с клоком подаю 1-цы он из-за этого все время сбрасывается и у меня PHY не отвечает. На MDC я подаю 2.5 Mhz может быть это слишком быстро? И он не принимает и поэтому не отвечает?

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


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

Я не знаю как с RSTn положено работать. И как через него завести chip. Может быть из-за того что я на него с клоком подаю 1-цы он из-за этого все время сбрасывается и у меня PHY не отвечает. На MDC я подаю 2.5 Mhz может быть это слишком быстро? И он не принимает и поэтому не отвечает?

RESET - активный низкий уровень, т.е. при RESET=0 микросхема сбрасывается. Удерживать RESET=0 надо после включения питания, согласно datasheet (стр.26) ..

 

For a reliable power on reset, suggest to keep asserting the reset low long enough (10ms) to ensure the clock is stable and clock-to-reset 1ms requirement is satisfied.

 

Если вывод подтянут, как вы пишете, к 0, то на микросхему будет воздействовать RESET=0 до тех пор, пока плис на него не выдаст 1. Для того, чтобы RESET сработал, надо, чтобы во время

RESET=0 минимум на протяжении 1 миллисекунды присутствовал стабильный CLK. Под сигналом CLK понимается поступающие на вход XTLI 25МГц от внешнего генератора или частота, вырабатываемая внутренним генератором, если к XTLI XTLО подключен кварц.

 

После загрузки конфигурации плис подержите RESET=0 несколько миллисекунд, а потом переведите его в 1.

 

Вроде так.

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


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

На самой плисине я формирую импульс который в случае срабатывания rst выдает 0, а в случае clk выдает 1-цы

вы с этим сигналом определитесь - что выдает 1-цу или 1-цы (меандр), в последнем случае чип работать не будет..

найдите доку на чип физики и почитайте про "ресет"

придавили к "0", чип неактивен, выставили уровень "1", чип интится и начинает работу с настройками по умолчанию и ждет обмена по mdc/mdio

кстати, часто регламентируют время инита, т.е. если отпустить ресет и пытаться сразу работать через mdc/mdio, а чип еще не готов, то хорошего не будет..

Изменено пользователем Jury093

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


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

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

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

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

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

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

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

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

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

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