|
Управление PHY через MDC/MDIO, подсажите кто делал |
|
|
|
Jan 26 2009, 09:58
|
Группа: Новичок
Сообщений: 14
Регистрация: 10-10-06
Пользователь №: 21 187

|
Необходимо сделать проет, который бы читал/записывал данные из внутренних регистров PHY, при этом использовался бы интерфейс MDC/MDIO. При подачи этих сигналов в режиме чтения физика ни как не реагирует. Сигналы формировал согласно стандарту. Тактовый сигнал менял от 25кГц до 3МГц, но реакции ни какой. Смотрел осциллографом, сигналы до физики доходят такие какие я подовал, после перехода в Z состояние и начало приема, на сигнале MDIO постоянно весит "1", т.к. на плате этот сигнал подтянут к питанию. Адрес физики использовал 0 (стандартный) и 7 (таким она хардово сконфигурирована), адрес регистра ставил любой (менял), реакции тоже ни какой. Подскажите в чем может быть проблема?
|
|
|
|
|
 |
Ответов
|
Jan 26 2009, 13:26
|
Знающий
   
Группа: Свой
Сообщений: 740
Регистрация: 24-07-06
Из: Minsk
Пользователь №: 19 059

|
Делал. Работало. Вот Вам пример. Конфигурирование PHY на 100М линк Код ----------------------------------------------------------------------------------
entity mii_mem is Port ( clk : in STD_LOGIC; en : in STD_LOGIC; addr : in STD_LOGIC_VECTOR (6 downto 0); do : out STD_LOGIC ); end mii_mem;
architecture Behavioral of mii_mem is type rom_type is array (0 to 127) of std_logic; signal rom : rom_type := ( --preambl '1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1', --ST '0','1', --OP CODE '0','1', --PHY ADDR '0','0','0','0','0', --REG ADDR '0','0','0','0','0', --TAR '1','0', --DATA '0','0','1','0','0','0','0','0', --DATA '0','0','0','0','0','0','0','0', --post --'1','1','1','1', --preambl '1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1', --ST '0','1', --OP CODE '0','1', --PHY ADDR '0','0','0','0','0', --REG ADDR '0','0','0','0','0', --TAR '1','0', --DATA '1','0','1','0','0','0','0','0', --DATA '0','0','0','0','0','0','0','0' --post --'1','1','1','1' ); attribute rom_style: string; attribute rom_style of rom: signal is "distributed";
begin process(clk) begin if clk'event and clk = '1' then if en = '1' then do <= rom(conv_integer(addr)); end if; end if; end process; end Behavioral; сигнал addr инкрементирутся по каждому clk
|
|
|
|
|
Oct 23 2009, 18:52
|
Знающий
   
Группа: Свой
Сообщений: 529
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032

|
Цитата(Костян @ Jan 26 2009, 23:56)  Делал. Работало. Вот Вам пример. Конфигурирование PHY на 100М линк Код ----------------------------------------------------------------------------------
entity mii_mem is Port ( clk : in STD_LOGIC; en : in STD_LOGIC; addr : in STD_LOGIC_VECTOR (6 downto 0); do : out STD_LOGIC ); end mii_mem;
architecture Behavioral of mii_mem is type rom_type is array (0 to 127) of std_logic; signal rom : rom_type := ( --preambl '1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1', --ST '0','1', --OP CODE '0','1', --PHY ADDR '0','0','0','0','0', --REG ADDR '0','0','0','0','0', --TAR '1','0', --DATA '0','0','1','0','0','0','0','0', --DATA '0','0','0','0','0','0','0','0', --post --'1','1','1','1', --preambl '1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1','1', --ST '0','1', --OP CODE '0','1', --PHY ADDR '0','0','0','0','0', --REG ADDR '0','0','0','0','0', --TAR '1','0', --DATA '1','0','1','0','0','0','0','0', --DATA '0','0','0','0','0','0','0','0' --post --'1','1','1','1' ); attribute rom_style: string; attribute rom_style of rom: signal is "distributed";
begin process(clk) begin if clk'event and clk = '1' then if en = '1' then do <= rom(conv_integer(addr)); end if; end if; end process; end Behavioral; сигнал addr инкрементирутся по каждому clk простите, а нет ли у вас примера для слейва?
--------------------
Россия это даже не страна. Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
|
|
|
|
Сообщений в этой теме
beles Управление PHY через MDC/MDIO Jan 26 2009, 09:58 beles Попробывал сделать как вы предложили, но конфигури... Jan 26 2009, 14:49 Костян Цитата(beles @ Jan 26 2009, 12:49) Попроб... Jan 27 2009, 14:05 cioma Какой PHY используете? Jan 27 2009, 09:18 beles Использую отладочную плату от Xilinx ML507, физика... Jan 27 2009, 09:32 beles > при включении phy по умолчанию на 10Мбит наст... Jan 27 2009, 15:19 cioma Может стандарт IEEE 802.3 поможет - там должно быт... Jan 27 2009, 21:37 iosifk Цитата(beles @ Jan 26 2009, 12:58) Подска... Jan 28 2009, 06:20 beles После нескольких опытов с разными PHY от MARVELL, ... Feb 2 2009, 06:52 MKS Здравствуйте.
Пытаюсь начать работать с PHY smsc 8... Oct 23 2009, 09:47 iosifk Цитата(MKS @ Oct 23 2009, 13:47) На них п... Oct 23 2009, 10:00 MKS Спасибо за разяснения, iosifk. Но тогда мне непоня... Oct 23 2009, 10:34 iosifk Цитата(MKS @ Oct 23 2009, 14:34) Спасибо ... Oct 23 2009, 10:57 Костян Цитата(MKS @ Oct 23 2009, 09:34) Спасибо ... Oct 23 2009, 11:11 MKS Цитата(Костян @ Oct 23 2009, 14:11) ....
... Oct 23 2009, 20:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|