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

    

another_one

Участник
  • Публикаций

    293
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о another_one

  • Звание
    Местный

Посетители профиля

3 221 просмотр профиля
  1. Спасибо большое!!
  2. W5300 инициализация

    Я вроде тот же и делаю разницы особо нет с тем что в даташите. что у Вас, что у меня, разница только в том что я делаю это для ПЛИС Я приведенной ниже конфигурацией решил снова послать данные Данные шлются, приходит SEND_OK, вижу их в wiresharke, только вот почему все таки не устанавливается SOCK_UDP после открытия сокета не пойму???( 1) nRESET pin hold in low 10 2) After nRESET release(going to HIGH) wait 10 ms 4) Write to MR (address 0x000) = 0x0000 ; 5) Write to IMR (address 0x004) = 0x70FF ; 6) Write to SHAR (address 0x008) = 0x0008 ; 7) Write to SHAR2 (address 0x00A) = 0xDC01 ; 8) Write to SHAR4 (address 0x00C) = 0x0203 ; 9) Write to GAR (address 0x010) = 0xA9FE ; 10) Write to GAR2 (address 0x012) = 0x0001 ; 11) Write to SUBR (address 0x014) = 0xFFFF ; 12) Write to SUBR2 (address 0x016) = 0x0000 ; 13) Write to SIPR (address 0x018) = 0xA9FE ; 14) Write to SIPR2 (address 0x01A) = 0x0003 ; 15) Write to RTR (address 0x01C) = 0x0FA0 ; 16) Write to RCR (address 0x01E) = 0x0007 ; 17) Write to MTYPER (address 0x030) = 0xFFFF ; 18) Write to TMS01R (address 0x020) = 0x4000 ; 19) Write to TMS23R (address 0x022) = 0x0000 ; 20) Write to TMS45R (address 0x024) = 0x0000 ; 21) Write to TMS67R (address 0x026) = 0x0000 ; 22) Write to RMS01R (address 0x028) = 0x0C00 ; 23) Write to S0_IMR (address 0x204) = 0x001C ; 24) Write to S0_DIP (address 0x214) = 0xA9FE ; 25) Write to S0_DIP2 (address 0x216) = 0xD955 ; 26) Write to S0_DPORTR(address 0x212) = 0x1388 ; 27) Write to S0_MR (address 0x200) = 0x0002 ; 28) Write to S0_PORTR (address 0x20A) = 0x1388 ; 29) Write to S0_CR (address 0x202) = 0x0001 ; 30) Write to S0_TX_WRSR(address 0x220) = 0x0001 ; 31) Write to S0_TX_WRSR2(address 0x222) = 0x0000 ; 32) Write to S0_TX_FIFOR(address 0x22E) = 0x1234 ; 33) Write to S0_CR(address 0x202) = 0x0020 ; В связи с этим вопрос, является ли это потенциальной проблемой или нет и можно двигаться дальше? Спасибо!
  3. Здравствуйте! Подскажите пожалуйста кто знает возможно ли реализовать на spartan 6 1Gb ethernet? Если да то как? Я как понял физуровень отчасти обеспечивают соответствующие диф драйверы, а где брать сам стэк? И вообще динамические характеристики позволяют сделать соответствующую пропускную способность? Заранее благодарен
  4. W5300 инициализация

    я как раз его и смотрю но читаю с него неопределенное состояние Попробовал поиграться с адресами, все тоже самое Из этого вывод - что ошибка в алгоритме Я читаю регистр почти сразу после установки режима UDP, когда как согласно даташиту необходимо ждать пока не установится режим Только вот я не понял зачем закрывать сокет пока он не будет установлен в UDP, - противоречие, или я не правильно понимаю приведенный код ниже { START: Sn_MR = 0x02; /* sets UDP mode */ Sn_PORT R = source_port; /* sets source port number */ Sn_CR = OPEN; /* sets OPEN command */ /* wait until Sn_SSR is changed to SOCK_UDP */ if (Sn_ SSR != SOCK_UDP) Sn_CR = CLOSE; goto START;
  5. W5300 инициализация

    угу, открываю в UDP, S0_SSR почему-то не читается, - читаются ZZZZ... СS формируются правильно.
  6. W5300 инициализация

    Попробовал передать в этих условиях, wireshark не показывает передачу по UDP. Посмотрел посредством netstat какие UDP открыты, использую один из них, указываю DIPR 0.0.0.0, DPORTR 5000. По-прежнему SOCK_UDP не читается Прошу подсказать что не так с инициализацией UDP, видимо что-то в указанием адресов и портов
  7. W5300 инициализация

    Спасибо!, я тоже так подумал, но смущает тот факт что регистры S0_CR и S0_SSR не показывают что прошла инициализация UDP, т.е сокет не открыт в UDP, как я тогда буду что-то посылать?? S0_CR показывает LISTEN...
  8. W5300 инициализация

    Спасибо большое! Теперь пингуется!))) Только вот в режим UDP не входит Мониторю Wireshark'ом, передачу еще пока никакую не делаю Ожидаю факт открытия UDP, которого не происходит согласно данным в S0_CR и S0_SSR Вероятно что-то напутал с адресами, прошу меня подкорректировать Вот моя инициализация конкурирования UDP и его открытие : 1) nRESET pin hold in low 10 2) After nRESET release(going to HIGH) wait 10 ms 3) Write to MR (address 0x000) = 0x0000 ; 4) Write to IMR (address 0x004) = 0x70FE ; 5) Write to SHAR (address 0x008) = 0x0008 ; 6) Write to SHAR2 (address 0x00A) = 0xDC01 ; 7) Write to SHAR4 (address 0x00C) = 0x0203 ; 8) Write to GAR (address 0x010) = 0xA9FE ; 9) Write to GAR2 (address 0x012) = 0xD959 ; 10) Write to SUBR (address 0x014) = 0xFFFF ; 11) Write to SUBR2 (address 0x016) = 0x0000 ; 12) Write to SIPR (address 0x018) = 0xA9FE ; 13) Write to SIPR2 (address 0x01A) = 0xD957 ; 14) Write to RTR (address 0x01C) = 0x0FA0 ; 15) Write to RCR (address 0x01E) = 0x0007 ; 16) Write to MTYPER (address 0x30) = 0x00FF ; 17) Write to TMS01R (address 0x20) = 0x400 ; 18) Write to RMS01R (address 0x028) = 0x0C00 ; 19) Write to S0_MR (address 0x200) = 0x0002 ; 20) Write to S0_IMR (address 0x204) = 0x0011 ; 21) Write to S0_DIP (address 0x214) = 0xA9FE ; 22) Write to S0_DIP2 (address 0x216) = 0xD955 ; 23) Write to S0_PORTR (address 0x20A) = 0x1388 ; 24) Write to S0_DPORTR (address 0x212) = 0x1388 ; 25) Write to S0_CR (address 0x202) = 0x0001 ;
  9. W5300 инициализация

    Похоже именно в этом проблема, я записывал все значения этих регистров как в даташите Прошу подсказать исходя из https://my-files.ru/ear7xp Какие данные нужно записывать в моем случае Заранее благодарен!
  10. W5300 инициализация

    Спасибо! Я посмотрел Ваш WIZNET_Init() и складывается впечатление что достаточно записать MR, SHAR, GAR, SUBR, SIPR, чтобы устройство начало пинговатся... Еще маленький вопрос - есть ли зависимость этих адресов от инициализации, например если я поставлю на свое усмотрение, может ли быть это причиной дальнейших проблем с инициализацией Спасибо! Получается что так Но что-то не заводиться... и уже все что можно перепроверил
  11. W5300 инициализация

    Спасибо! Вроде все так как и у вас на этапе инициализации Но по прежнему ничего нет, регистры пишутся , записываются но режим UDP не устанавливается и INT в HIGH В связи с этим уточняющий вопрос - после какой минимальной конфигурации устройство должно пинговатся? Спасибо!
  12. W5300 инициализация

    Я смотрел их библилотеку, делаю все также, регистры пишутся, читаются, но не пингуеться и wireshark ничего не показывает что записываю. И ножка инит постоянно в высоком уровне.
  13. W5300 инициализация

    Дорогие сотоварищи! У меня есть вопрос о запуске W5300 Я пытаюсь использовать его в режиме UDP (для использования далее с VLC Player) В datasheet W5300 существует неясное описание 1) Не описано определение битов WDF в регистре MR 2) Не описано определение адресации регистра. В одном случае написано big-endian , в другом - в 16-битном режиме наоброт 3) Пример инициализации не состоит из регистров для сокетов? ... Пожалуйста подкорректируйте мои предположение, кто работал с W5300 Ниже приведена инициализация localparam MR_ADR = 16'0000; // Исходный аппаратный адрес физический адрес (MAC-адрес) localparam SHAR = 16'h0008; // milticast datasheet exmp 00.08.DC.01.02.03 localparam SHAR_ADR = 10 часов 008; // localparam SHAR2 = 16'hDC01; localparam SHAR2_ADR = 10'0000A; // localparam SHAR4 = 16'h0203; localparam SHAR4_ADR = 10'0000C; // // Шлюз IP-адрес 192.168.0.1 localparam GAR = 16'hC0A8; localparam GAR_ADR = 10'h010; localparam GAR2 = 16'0000; localparam GAR2_ADR = 10'h012; // Маска подсети с адресом СУБР 255.255.255.0 localparam SUBR = 16'hFFFF; localparam SUBR_ADR = 10'h014; localparam SUBR2 = 16'hFF00; localparam SUBR2_ADR = 10'h016; // Исходный IP-адрес 192.168.0.3 localparam SIPR = 16'hC0A8; localparam SIPR_ADR = 10'h018; localparam SIPR2 = 16'h0003; localparam SIPR2_ADR = 10'h01A; /// Тайм-аут повторной передачи RTR 400 мс localparam RTR = 16'h0fA0; localparam RTR_ADR = 10'h01C; /// RCR количество раз повторной передачи localparam RCR = 16'000000; localparam RCR_ADR = 10'h01E; localparam TMS01R = 16'h4000; // SOCKET0 - 64 КБ, SOCKET1 - 0 КБ localparam TMS01R_ADR = 10'h020; localparam TMS23R = 16'0000; // SOCKET2 - 0 КБ, SOCKET3 - 0 КБ localparam TMS23R_ADR = 10'h022; localparam TMS45R = 16'0000; // SOCKET4 - 0 КБ, SOCKET5 - 0 КБ localparam TMS45R_ADR = 10'h02C; localparam TMS67R = 16'0000; // SOCKET6 - 0 КБ, SOCKET7 - 0 КБ localparam TMS67R_ADR = 10'h026; localparam RMS01R = 16'h0C00; // SOCCKET0 - 12 КБ localparam RMS01R_ADR = 10'h028; localparam RMS23R = 16'0000; // SOCKET2 - 0 КБ, SOCKET3 - 0 КБ localparam RMS23R_ADR = 10'h02A; localparam RMS45R = 16'0000; // SOCKET4 - 0 КБ, SOCKET5 - 0 КБ localparam RMS45R_ADR = 10'h02C; localparam RMS67R = 16'0000; // SOCKET6 - 0 КБ, SOCKET7 - 0 КБ localparam RMS67R_ADR = 10'h02E; localparam MTYPER = 16'h00FF; // TX - 8 блоков, RX- 8 блоков localparam MTYPER_ADR = 10'h030; локальный параметр PTIMER = 16'0000C8; // 5 с эхо-запрос localparam PTIMER_ADR = 10'h036; localparam PMAGICR = 16'0000; // магическое число localparam PMAGICR_ADR = 10'h038; локальный параметр PSIDR = 16'0000; // идентификатор сеанса PPP localparam PSIDR_ADR = 10'h03C; localparam PDHAR = 16'0000; // PPPoE аппаратный адрес назначения 00.01.02.03.04.05 localparam PDHAR_ADR = 10'h040; localparam PDHAR2 = 16'h0203; // localparam PDHAR2_ADR = 10'h042; localparam PDHAR4 = 16'h0405; // localparam PDHAR4_ADR = 10'h044; localparam Pn_BRDYR = 16'0000; // Отключить PIN BRDY localparam P0_BRDYR_ADR = 10'h060; localparam SnMR = 16'000000; // Включить socketn для UDP // = 16'h0082; // Включить socketn для UDP localparam SnMR_RST = 16'h0080; localparam S0MR_ADR = 10'h200; localparam SnCRopen = 16'h0031; // Открыть Socketn (с SEND и SEND_MAC = 1?) localparam S0CR_ADR = 10'h202; localparam SnCclose = 16'0000; // Закрыть Socketn localparam Sn_IMR = 16'0000; // SENDOK разрешение прерывания localparam S0_IMR_ADR = 10'h204; localparam Sn_IR = 16'h0010; // очищаем прерывание SENDOK localparam S0_IR_ADR = 10'h206; localparam Sn_InitDONE = 16'h0032; // SOCKET - это режим UDP после OPEN localparam Sn_CLOSE = 16'0000; // localparam Sn_PORTR = 16'h1388; // Исходный порт номер 5000 localparam S0_PORTR_ADR = 10'h20A; localparam Sn_DHAR = 16'h0008; // Целевой аппаратный адрес Socketn 00.08.DC.01.02.10 localparam S0_DHAR_ADR = 10'h20C; localparam Sn_DHAR2 = 16'hDC01; // localparam S0_DHAR2_ADR = 10'h20E; localparam Sn_DHAR4 = 16'h0210; // localparam S0_DHAR4_ADR = 10'h210; localparam Sn_DPORTR = 16'h1388; // Номер порта назначения Socketn = 5000 localparam S0_DPORTR_ADR = 10'h212; // localparam Sn_DIPR = 16'hC0A8; // Целевой IP-адрес Socketn C0.A8.00.0B localparam Sn_DIPR = 16'hFFFF; // IP-адрес получателя Socketn 255.255.255.255 localparam S0_DIPR_ADR = 10'h214; localparam Sn_DIPR2 = 16'hFFFF; // IP-адрес получателя Socketn 255.255.255.255 localparam S0_DIPR2_ADR = 10'h216; localparam Sn_MSSR = 16'h05B4; // Максимальный размер сегмента localparam S0_MSSR_ADR = 10'h218; localparam Sn_TX_WRSR = 16'h0001; // размер данных 64 КБ, записанных во внутренней памяти TX //// CS_1: case(flag_st) SWreset: if(clk_cnt == 3'b000) comnd = WAIT; WAIT: if(clk_cnt == 3'b000) comnd = MRr; MRr: if(clk_cnt == 3'b000) comnd = S0MR; S0MR: if(clk_cnt == 3'b000) comnd = IMRr; IMRr: if(clk_cnt == 3'b000) comnd = SHARr; SHARr: if(clk_cnt == 3'b000) comnd = SHAR2r; SHAR2r: if(clk_cnt == 3'b000) comnd = SHAR4r; SHAR4r: if(clk_cnt == 3'b000) comnd = GARr; GARr: if(clk_cnt == 3'b000) comnd = GAR2r; GAR2r: if(clk_cnt == 3'b000) comnd = SUBRr; SUBRr: if(clk_cnt == 3'b000) comnd = SUBR2r; SUBR2r: if(clk_cnt == 3'b000) comnd = SIPRr; SIPRr: if(clk_cnt == 3'b000) comnd = SIPR2r; SIPR2r: if(clk_cnt == 3'b000) comnd = RTRr; RTRr: if(clk_cnt == 3'b000) comnd = RCRr; RCRr: if(clk_cnt == 3'b000) comnd = MTYPERr; MTYPERr: if(clk_cnt == 3'b000) comnd = TMSRr; TMSRr: if(clk_cnt == 3'b000) comnd = RMSRr; RMSRr: if(clk_cnt == 3'b000) comnd = DIP; DIP: if(clk_cnt == 3'b000) comnd = DIP2; DIP2: if(clk_cnt == 3'b000) comnd = S0PORTR; S0PORTR: if(clk_cnt == 3'b000) comnd = CR_0; endcase
  14. Y16, stream, RTP, VLC player

    Здравствуйте! Есть монохромная картинка 640х480 с матрицы типа FPA.Получаю картинки с матрицы посредством FPGA. Матрица выдает RAW картинку с частотой 11 Гц(один пиксел 2 байта). Чтобы не писать верхнее ПО хочу использовать для этого VLC player в режиме Stream under UDP(RTP), для этого есть W5300. Но VLC player не поддерживает Y18. Самое относительно простое решение это преобразование RAW(Y18) в Motion-JPEG( VLC player его поддерживает). Вопрос, - как мне енкапсулировать RAW(Y18) в Motion-JPEG в рамках RTP передачи?, по каким нормативным документам? Знаю есть RFC, но какие именно в моем случае необходимы не совсем понимаю, их много, нужно чтобы было понятно как имплементировать в FPGA. Прошу помочь. Вижу как минимум 2 - это RAW(Y18) в Motion-JPEG и Motion-JPEG в RTP. Спасибо!
  15. Спасибо насколько я знаю это не dsp, это мипсовские процессоры