doom13 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Как я понял настройка происходит автоматически. Потому как больше никаких воздействий кроме вышеописанных я оказать не могу. Как я разобрался сигналы MDC(клок) и MDI для чтения контрольных регистров трансивера, никаких настроек ими не производится. Сигнал MDIO - двунаправленная линия, используется для чтения-записи регистров PHY. А настройка происходит автоматически при старте платы, судя по схеме, Ваш трансивер после старта работает в: "100Base-TX Half Duplex. Auto-negotiation enabled." Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба А ресет снять не надо с физики, через ее контрольный регистр? Задан режим такой настройки, но она должна пройти, потом надо убедиться что Автонегатенация прошла, на какую скорость настроился трансивер - опять же по битам внутренних регистров. Если я не ошибаюсь в зависимости от того на какую скорость настроилась физика будут разные режимы обмена по MII. Кстати Half Duplex - это намек на то что мак контроллер должен правильно отрабатывать коллизии в линии) так что поверните выключатель:)... воткните так сказать прибор в розетку) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба судя по схеме, Ваш трансивер после старта работает в: "100Base-TX Half Duplex. Auto-negotiation enabled." 10К на ногах по схеме - это не похоже на pull-down. С учетом внутренних pull-up'ов (Datasheet, Table 7.10), думаю что посде старта будет "All capable. Auto-negotiation enabled" А ресет снять не надо с физики, через ее контрольный регистр? По умолчанию (после аппаратного ресета) этот ресет снят Если я не ошибаюсь в зависимости от того на какую скорость настроилась физика будут разные режимы обмена по MII. От скорости в коде управления физикой по MII ничего не меняется. Меняется от дуплекса (коллизия и все такое). То есть, насколько я помню, отличие поведения физики от скорости только в том, что при приеме пакета по RXD - при 100 преамбула приходит полностью, при 10 приходит только SFD (хотя передавать преамбулу полностью надо в любом случае). По крайней мере 3 или 4 опробованных трансивера от разных производителей вели себя именно так. Если правильно построить приемную часть (т.е. ждать SFD после поднятия RXDV), то установленную скорость можно даже не анализировать. Ну если ее не надо например выводить на дисплей... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба 10К на ногах по схеме - это не похоже на pull-down. С учетом внутренних pull-up'ов (Datasheet, Table 7.10), думаю что посде старта будет "All capable. Auto-negotiation enabled" Не нахожу в доке описание наличия внутренних pull-up'ов для пинов MODE[2:0]. Какой даташит Вы смотрите? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Не нахожу в доке описание наличия внутренних pull-up'ов для пинов MODE[2:0]. Datasheet на трансивер lan8710ai. Стр. 71. Table 7.10 nINT/TXER/TXD4 Pull-up TXEN Pull-down RXD0/MODE0 Pull-up RXD1/MODE1 Pull-up RXD2/RMIISEL Pull-down RXD3/PHYAD2 Pull-down RXER/RXD4/PHYAD0 Pull-down RXCLK/PHYAD1 Pull-down COL/CRS_DV/MODE2 Pull-up CRS Pull-down LED1/REGOFF Pull-down LED2/nINTSEL Pull-up MDIO Pull-up nRST Pull-up Это копи-паст из таблицы этого pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Datasheet на трансивер lan8710ai. Стр. 71. Table 7.10 nINT/TXER/TXD4 Pull-up TXEN Pull-down RXD0/MODE0 Pull-up RXD1/MODE1 Pull-up RXD2/RMIISEL Pull-down RXD3/PHYAD2 Pull-down RXER/RXD4/PHYAD0 Pull-down RXCLK/PHYAD1 Pull-down COL/CRS_DV/MODE2 Pull-up CRS Pull-down LED1/REGOFF Pull-down LED2/nINTSEL Pull-up MDIO Pull-up nRST Pull-up Это копи-паст из таблицы этого pdf Нет такой таблицы вообще в даташите, тем более на 71 странице. Давайте сюда Ваш даташит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба http://ww1.microchip.com/downloads/en/DeviceDoc/8710a.pdf 30 страничка интересна. У вас MII или RMII? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба http://ww1.microchip.com/downloads/en/DeviceDoc/8710a.pdf 30 страничка интересна. У вас MII или RMII? Железно вабирается MII. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба В моем даташите в названии lan8710ai-ezk.pdf, а по тексту lan8710i (без a). Не досмотрел, извиняюсь. Но в Вашем - наличие pull-up'ов показано в таблице 2.1 в графе buffer type (PU), а в таблице 2.9 раскрывается что PU это internal pull-up. Так вот в табл. 2.1 как раз все mode - PU. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба с этой информацией все еще MII? кстати еще про ресет после питания поглядите, может все таки дернуть ножечку? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба В моем даташите в названии lan8710ai-ezk.pdf, а по тексту lan8710i (без a). Не досмотрел, извиняюсь. Но в Вашем - наличие pull-up'ов показано в таблице 2.1 в графе buffer type (PU), а в таблице 2.9 раскрывается что PU это internal pull-up. Так вот в табл. 2.1 как раз все mode - PU. Да, соглашусь, подтяжка внутренняя есть, но работает всё же внешняя, можете посмотреть Nexys3 Board Manual на 11 стр. описан режим работы после старта: MII mode interface 100Base-TX with auto negotiation enabled, advertising half-duplex, with CRS active duringreceive PHY address = 000 Да, подтяжка рассчитана на ток 50 мкА, если взять напряжение питания 3.6 В, то получим сопротивление порядка 72 кОм. Т.о. 10 кОм на ногах по схеме - это pull-down. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Вот эту часть кода (включая .ucf) хотя бы можете выложить? Содержимое ROM и сторона ПК пока не нужны. в схемантике модули чтение по 4 бита и формирование txen module SerialToPar( input clk2x, input clk1x, input [7:0] Tx_data, input [6:0] addr_count, output tx_en, output [3:0] Tx_to_phy ); reg tmp, cnt = 1'b1; reg [3:0] tx_tmp; always @(posedge clk2x) begin cnt <= ~ cnt; end always @(posedge clk2x) begin case (cnt) 1'b1: tx_tmp <= Tx_data[7:4]; 1'b0: tx_tmp <= Tx_data[3:0]; endcase end //always @(posedge clk2x) begin // Tx_to_phy <= tx_tmp; // end assign Tx_to_phy = tx_tmp; always@(addr_count) begin if (addr_count <= 72) begin tmp = 1'b1; end else begin tmp = 1'b0; end end assign tx_en = tmp; endmodule клок для чтения ROM и счетчика адреса module clk_gen( input tx_clk, output clk1x, output clk2x ); reg [1:0] cnt = 2'b0; assign clk1x = ~cnt[0]; always @(posedge tx_clk) begin cnt <= cnt + 2'b1; end endmodule UCF ## SMSC ethernet PHY NET "PhyRstn" LOC = "P3" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L2N, Sch name = ETH-RST #NET "PhyCrs" LOC = "N3" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L1N_VREF, Sch name = ETH-CRS #NET "PhyCol" LOC = "P4" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L2P, Sch name = ETH-COL #NET "PhyClk25Mhz" LOC = "N4" | IOSTANDARD = "LVCMOS33"; #Unconnected if R172 is not loaded, Bank = 3, Pin name = IO_L1P, Sch name = ETH-CLK25MHZ NET "PhyTxd<3>" LOC = "T1" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L33N_M3DQ13, Sch name = ETH-TXD3 NET "PhyTxd<2>" LOC = "T2" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L33P_M3DQ12, Sch name = ETH-TXD2 NET "PhyTxd<1>" LOC = "U1" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L32N_M3DQ15, Sch name = ETH-TXD1 NET "PhyTxd<0>" LOC = "U2" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L32P_M3DQ14, Sch name = ETH-TXD0 NET "PhyTxEn" LOC = "L2" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L37P_M3DQ0, Sch name = ETH-TX_EN NET "PhyTxClk" LOC = "L5" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L43P_GCLK23_M3RASN, Sch name = ETH-TX_CLK #NET "PhyTxEr" LOC = "P2" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L34P_M3UDQS, Sch name = ETH-TXD4 #NET "PhyRxd<3>" LOC = "M3" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L36P_M3DQ8, Sch name = ETH-RXD3 #NET "PhyRxd<2>" LOC = "N1" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L35N_M3DQ11, Sch name = ETH-RXD2 #NET "PhyRxd<1>" LOC = "N2" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L35P_M3DQ10, Sch name = ETH-RXD1 #NET "PhyRxd<0>" LOC = "P1" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L34N_M3UDQSN, Sch name = ETH-RXD0 #NET "PhyRxDv" LOC = "L1" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L37N_M3DQ1, Sch name = ETH-RX_DV #NET "PhyRxEr" LOC = "M1" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L36N_M3DQ9, Sch name = ETH-RXD4 #NET "PhyRxClk" LOC = "H4" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L44P_GCLK21_M3A5, Sch name = ETH-RX_CLK #NET "PhyMdc" LOC = "M5" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L31N_VREF, Sch name = ETH-MDC #NET "PhyMdio" LOC = "L6" | IOSTANDARD = "LVCMOS33"; #Bank = 3, Pin name = IO_L31P, Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Да, соглашусь, подтяжка внутренняя есть, но работает всё же внешняя, можете посмотреть Nexys3 Board Manual на 11 стр. описан режим работы после старта: MII mode interface 100Base-TX with auto negotiation enabled, advertising half-duplex, with CRS active duringreceive PHY address = 000 Да, действительно полудуплекс. Но автоопределение включено, поэтому может ковыряние регистров и не понадобится (а может и понадобится). Это все выяснится после того как задышит трансивер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aleksei_Rostov 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Проект загрузил и проверил питающие. Напряжения соответствуют даеашиту. Внешние 25 МГц вижу, txclk и rx clk отсутствуют :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 22 мая, 2014 Опубликовано 22 мая, 2014 · Жалоба Проект загрузил и проверил питающие. Напряжения соответствуют даеашиту. Внешние 25 МГц вижу, txclk и rx clk отсутствуют :laughing: Попробуйте сделать нормальный сигнал nReset, FPGA стартует, какое-то время (пару мс) держит PHY в состоянии сброса, выставляет nReset в 1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться