NSergeevich 0 9 апреля, 2015 Опубликовано 9 апреля, 2015 · Жалоба Всем привет. У кого получится подсказать мне буду очень рад и благодарен. Я пробую сконфигурировать Atheros AR8035 ethernet PHY. Отправляю на его вход MDIO след. последовательность (из доки) 1...1(32единицы)01(ST)10(OP)00100(PHYAdd)00010(RegAdd - PHY Identifier)z После этого он должен мне ответить вот это: 16’h004D Но он не отвечает. Что не так? Что забыл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tvcam 0 9 апреля, 2015 Опубликовано 9 апреля, 2015 · Жалоба Нужно быть точно уверенным что правильно выбран PHYAdd, к примеру нужно проверить LED_ACT (это средняя единица в вашем коде PHYAdd), при включении там на ножке должна быть 1. Чтобы это понять нужно увидеть схему, что к этой ножке подключено? А проще перебрать программно три младших бита PHYAdd и на какой то код она должна ответить. Скорее всего в середине PHYAdd 0. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NSergeevich 0 9 апреля, 2015 Опубликовано 9 апреля, 2015 · Жалоба Нужно быть точно уверенным что правильно выбран PHYAdd, к примеру нужно проверить LED_ACT (это средняя единица в вашем коде PHYAdd), при включении там на ножке должна быть 1. Чтобы это понять нужно увидеть схему, что к этой ножке подключено? А проще перебрать программно три младших бита PHYAdd и на какой то код она должна ответить. Скорее всего в середине PHYAdd 0. Прикол в том... только не смеяться))) я уже перебрал все возможные PHYAdd 5bit - 32 штуки))) Кстати, забыл сказать, что я смотрю через ChipScope то, что отправляю и то, что получаю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tvcam 0 9 апреля, 2015 Опубликовано 9 апреля, 2015 · Жалоба Я недавно цеплял тоже 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нс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NSergeevich 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Я недавно цеплял тоже 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 которым я ничего не делаю. Может быть нужно сам чип как-то запустить? Может быть он в состоянии сброса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Ответ от 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NSergeevich 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Из datasheet: RSTn Pin 1 I(Input) System reset, active low. Requires an external pull-up resistor Т.е. я должен на RSTn подать единицу ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Т.е. я должен на RSTn подать единицу ? А у Вас как цепочка сброса выполнена? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NSergeevich 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба А у Вас как цепочка сброса выполнена? Не знаю. На самом фи есть RSTn в доке написано только это: System reset, active low. Requires an external pull-up resistor. Pin1 и Тип инпут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Не знаю. На самом фи есть RSTn в доке написано только это: System reset, active low. Requires an external pull-up resistor. Pin1 и Тип инпут. Я в шоке.Ну организуйте хотя бы RC цепочку для сброса,или с порта FPGA(CPU) сформируйте нужный импульс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NSergeevich 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Я в шоке.Ну организуйте хотя бы RC цепочку для сброса,или с порта FPGA(CPU) сформируйте нужный импульс. RSTn соединен с ножкой на плисине, а та в свою очередь через R217 1K 1/10w на зеилю. На самой плисине я формирую импульс который в случае срабатывания rst выдает 0, а в случае clk выдает 1-цы Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба RSTn соединен с ножкой на плисине, а та в свою очередь через R217 1K 1/10w на зеилю. На самой плисине я формирую импульс который в случае срабатывания rst выдает 0, а в случае clk выдает 1-цы Ну а чего же тогда говорили "не знаю"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
NSergeevich 0 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Ну а чего же тогда говорили "не знаю"? Я не знаю как с RSTn положено работать. И как через него завести chip. Может быть из-за того что я на него с клоком подаю 1-цы он из-за этого все время сбрасывается и у меня PHY не отвечает. На MDC я подаю 2.5 Mhz может быть это слишком быстро? И он не принимает и поэтому не отвечает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andrew_su 1 10 апреля, 2015 Опубликовано 10 апреля, 2015 · Жалоба Я не знаю как с 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. Вроде так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 10 апреля, 2015 Опубликовано 10 апреля, 2015 (изменено) · Жалоба На самой плисине я формирую импульс который в случае срабатывания rst выдает 0, а в случае clk выдает 1-цы вы с этим сигналом определитесь - что выдает 1-цу или 1-цы (меандр), в последнем случае чип работать не будет.. найдите доку на чип физики и почитайте про "ресет" придавили к "0", чип неактивен, выставили уровень "1", чип интится и начинает работу с настройками по умолчанию и ждет обмена по mdc/mdio кстати, часто регламентируют время инита, т.е. если отпустить ресет и пытаться сразу работать через mdc/mdio, а чип еще не готов, то хорошего не будет.. Изменено 10 апреля, 2015 пользователем Jury093 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться