|
|
  |
Atheros AR8035, Не удается сконфигурировать |
|
|
|
Apr 14 2015, 15:08
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(Jury093 @ Apr 10 2015, 22:12)  вы с этим сигналом определитесь - что выдает 1-цу или 1-цы (меандр), в последнем случае чип работать не будет.. найдите доку на чип физики и почитайте про "ресет" придавили к "0", чип неактивен, выставили уровень "1", чип интится и начинает работу с настройками по умолчанию и ждет обмена по mdc/mdio кстати, часто регламентируют время инита, т.е. если отпустить ресет и пытаться сразу работать через mdc/mdio, а чип еще не готов, то хорошего не будет.. Вот мой код. Задержка 50мс (клок 2mhz), после задержки 1. ready инициализирует начало запроса с phy (после задержки). Вообщем.... не заработало) пока... Код module RSTn( input clk, input rst, output RSTn, output ready ); reg [16:0]counter; reg out; reg ready_state;
always @(posedge rst or posedge clk) begin if (rst) begin counter <= 0; out <= 0; ready_state <= 0; end else if (counter < 17'b11000011010100000) begin counter <= counter + 1'b1; end else begin out <= 1; ready_state <= 1; end end assign ready = ready_state; assign RSTn = out; endmodule
Причина редактирования: используйте тег code для оформления кода (с) модератор
|
|
|
|
|
Apr 14 2015, 17:07
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(NSergeevich @ Apr 14 2015, 18:08)  Вот мой код. Задержка 50мс (клок 2mhz), после задержки 1. ready инициализирует начало запроса с phy (после задержки). Вообщем.... не заработало) пока... Код module RSTn( input clk, input rst, output RSTn, output ready я в этих закорючках ничего не понимаю.. для начала, убедитесь, что у вас чип подключен правильно (согласно даташиту), есть все питания, все управляющие сигналы на месте, частота не плавает лучший помощник тут - осциллограф далее, встаете двумя лучами на mdc/mdio и смотрите - все ли правильно с т.з. обмена по шине управления если к электрике и живости чипа претензий нет, то дело в коде кстати, на mdio вероятно нужен пуллап - смотрите доку на чип и свою схему..
|
|
|
|
|
Apr 15 2015, 06:57
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(Jury093 @ Apr 14 2015, 20:07)  далее, встаете двумя лучами на mdc/mdio и смотрите - все ли правильно с т.з. обмена по шине управления Кажется я нашел косяк. Во всяком случае еще один... но он настолько примитивен, что писать о нем не хочется))
|
|
|
|
|
Apr 15 2015, 08:12
|
Знающий
   
Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050

|
Цитата(NSergeevich @ Apr 15 2015, 09:57)  Кажется я нашел косяк. Во всяком случае еще один... но он настолько примитивен, что писать о нем не хочется)) а чего стеснятся то? при разработках создавать (неумышленно) грабли и их находить, имхо, это нормально.. напишете о своем косяке, потом другой человек найдет эту тему через поисковик и получит знания..
|
|
|
|
|
Apr 15 2015, 14:58
|
Местный
  
Группа: Свой
Сообщений: 203
Регистрация: 12-11-10
Из: Poland
Пользователь №: 60 842

|
Цитата(_Anatoliy @ Apr 14 2015, 13:26)  А то я тоже этот чип хочу применить в новых изделиях. Используем, исключительно беспроблемный чип, никаких нареканий.
|
|
|
|
|
Apr 16 2015, 08:20
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(Jury093 @ Apr 15 2015, 11:12)  а чего стеснятся то? при разработках создавать (неумышленно) грабли и их находить, имхо, это нормально.. напишете о своем косяке, потом другой человек найдет эту тему через поисковик и получит знания.. Вообщем у меня дока на AR8035 не совсем информативная и я проглядел, что у меня клок на MDC идет синхронно с данными на MIDIO, а надо с удержанием в 10ns. Вот так)
|
|
|
|
|
Apr 22 2015, 10:30
|
Местный
  
Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647

|
Цитата(NSergeevich @ Apr 21 2015, 16:18)  Последние новости.
phy AR8035
На порт RSTn подаю 0 в течении 10мс и далее 1 (завел чип) ps что завел чип это только мои предположения На порт MDC подал клок 2.5 mhz На порт MIDIO подаю 1...1(32единицы)01(st)10(op)00ххх(phyadd)00010(regadd PHY Identifier)z
MIDIO со здвигом по фазе относительно MDC
Перебрал три младших бита phyadd (т.к. адрес точно не знаю) ответа с phy чип скопом по прежнему не увидел
Есть идеи, что еще мог забыть? Добрый день. А что видите? Все 0 или все 1? Попробуйте прочитать регистр с другим адресом, например с 0-м. Если есть возможность, попробуйте зациклить выдачу команды чтения по MDIO + период чтения и посмотреть сигнал на MDIO осциллографом. Может ChipScope не отрабатывает? Или сигнал до PHY не доходит? Кстати, адрес PHY определяется подтяжкой пинов RXD0(ADDR0), RXD1(ADDR1), LED_ACT(ADDR2) PHY. Если внешних подтяжек нет, то внутренние подтяжки PHY такие - ADDR0=0, ADDR1=0, ADDR2=1. (стр. 7 datasheet).
|
|
|
|
|
Apr 22 2015, 11:10
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(Andrew Su @ Apr 22 2015, 13:30)  Добрый день. А что видите? Все 0 или все 1? Попробуйте прочитать регистр с другим адресом, например с 0-м. Если есть возможность, попробуйте зациклить выдачу команды чтения по MDIO + период чтения и посмотреть сигнал на MDIO осциллографом. Может ChipScope не отрабатывает? Или сигнал до PHY не доходит? Кстати, адрес PHY определяется подтяжкой пинов RXD0(ADDR0), RXD1(ADDR1), LED_ACT(ADDR2) PHY. Если внешних подтяжек нет, то внутренние подтяжки PHY такие - ADDR0=0, ADDR1=0, ADDR2=1. (стр. 7 datasheet). На ChipScop-е вижу только то, что отправляю на phy. Периодично ---набор единиц и нулей(1..1 01 10 00100 00010)---и z состояние----через долгий период несколько тысяч тактов опять набор нулей и единиц с z состоянием Сразу с z состоянием и должен увидеть ответ от phy (которого нету) Осциллографом ткнулся на ножку и действительно все увидел, что отправляю z состояние - мои меандры - z состояние - мои меандры Т.е. до phy все доходит, но он не отвечает. Либо chipscop не ловит ответ, либо с адресами не то... хотя перебрал все (и не только младшие 3 бита)... не знаю, что еще может быть(
|
|
|
|
|
Apr 22 2015, 12:19
|
Частый гость
 
Группа: Участник
Сообщений: 102
Регистрация: 21-01-15
Пользователь №: 84 716

|
Цитата(tvcam @ Apr 22 2015, 14:43)  Я вас в 4-м посте этой темы спрашивал что вы видете 0 или 1? Andrew Su вас тоже спросил "А что видите? Все 0 или все 1?" Вы ответили: "z состояние" Вопрос: как вы узнали или с чего вы решили что это Z ? Там вообще резистор притягивающий к плюсу должен быть. И исходник полностью выложите в виде файла. Правда я только по Altere. Я писал, что вижу "то что отправляю на phy" и z состояние. Почему решил что это z: потому, что я сам его в коде прописал после отправки единиц и нулей на phy нужно перевести в z состояние и ловить ответ. Также я проверил ткнувшись осциллографом на ножку phy mdio и увидел z состояние (чуть меньше 1-цы по уровню) далее 32 единицы и остальную последовательность, потом опять плавно переходит в z состояние. На рисунке: верхний это clock MDC снизу то что отправляю на phy mdio. На чипскопе 1 и z рисуется одним уровнем Какой исходник скинуть? Топ модуля на Verilog-е ?
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 22 2015, 15:45
|
Частый гость
 
Группа: Свой
Сообщений: 75
Регистрация: 10-12-04
Из: spb
Пользователь №: 1 435

|
Диаграмма обмена с PHI может поможет.
Не обращайте внимания на то что тактовая не меандр как у вас, это не принципиально, главное это состояния MDIO когда тактовая переходит из 0 в 1. У меня это всё формирует процессор. Как только я перевожу выход в третье состояние PhyOutMDIO_Z =0 выход из FPGA встаёт в Z, а так как подвешен резистор к +, мы видим на E_MDIO = 1. Затем подаётся такт, PHI понимает и притягивает этот резистор к нулю. Хотя бы исходник топ модуля, хоть с чего то начать искать ошибку. Где у вас сигнал перевода в Z состояние?
|
|
|
|
|
Apr 22 2015, 19:08
|
Местный
  
Группа: Свой
Сообщений: 301
Регистрация: 18-09-07
Из: Украина
Пользователь №: 30 647

|
Добрый день. Для сигнала MDIO надо использовать компонент IOBUF_inst : IOBUF generic map ( DRIVE => 12, -- максимальный ток выхода в мА IOSTANDARD => "DEFAULT", -- надо заменить на нужный вам стандарт SLEW => "SLOW" -- можно оставить или поменять на FAST ) port map ( O => MDIO_O, -- Это сигнал, который вы принимаете от PHY IO => MDIO, -- это ваш сигнал к PHY на пине FPGA I => MDIO_I, -- Это сигнал, который вы отправляете на PHY T => T -- 3-state enable input, high=input, low=output ); У вас так? При этом чипскопом надо смотреть MDIO_O и MDIO_I. В схеме есть PULLUP резистор на пине MDIO? Можно в UCF файле в описании сигнала MDIO добавить атрибут PULLUP Например такое описание Net MDIO LOC = E9(нужный вам пин) | PULLUP;
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|